|
def | __init__ (self, can_driver, node_id=None, node_status_interval=None, mode=None, node_info=None, catch_handler_exceptions=True, **_extras) |
|
def | add_handler (self, uavcan_type, handler, **kwargs) |
|
def | add_transfer_hook (self, hook, **kwargs) |
|
def | broadcast (self, payload, priority=None) |
|
def | can_driver (self) |
|
def | close (self) |
|
def | is_anonymous (self) |
|
def | node_id (self) |
|
def | node_id (self, value) |
|
def | remove_handlers (self, uavcan_type) |
|
def | request (self, payload, dest_node_id, callback, priority=None, timeout=None) |
|
def | respond (self, payload, dest_node_id, transfer_id, priority) |
|
def | spin (self, timeout=None) |
|
def | __init__ (self) |
|
def | defer (self, timeout_seconds, callback) |
|
def | has_pending_events (self) |
|
def | periodic (self, period_seconds, callback) |
|
Definition at line 226 of file node.py.
◆ __init__()
def pyuavcan_v0.node.Node.__init__ |
( |
|
self, |
|
|
|
can_driver, |
|
|
|
node_id = None , |
|
|
|
node_status_interval = None , |
|
|
|
mode = None , |
|
|
|
node_info = None , |
|
|
|
catch_handler_exceptions = True , |
|
|
** |
_extras |
|
) |
| |
It is recommended to use make_node() rather than instantiating this type directly.
:param can_driver: CAN bus driver object. Calling close() on a node object closes its driver instance.
:param node_id: Node ID of the current instance. Defaults to None, which enables passive mode.
:param node_status_interval: NodeStatus broadcasting interval. Defaults to DEFAULT_NODE_STATUS_INTERVAL.
:param mode: Initial operating mode (INITIALIZATION, OPERATIONAL, etc.); defaults to INITIALIZATION.
:param node_info: Structure of type pyuavcan_v0.protocol.GetNodeInfo.Response, responded with when the local
node is queried for its node info.
:param catch_handler_exceptions: If true, exceptions raised from message
handlers will be caught and logged. If
False, spin() will raise exceptions
raised from callbacks.
Definition at line 227 of file node.py.
◆ _fill_node_status()
def pyuavcan_v0.node.Node._fill_node_status |
( |
|
self, |
|
|
|
msg |
|
) |
| |
|
private |
◆ _next_transfer_id()
def pyuavcan_v0.node.Node._next_transfer_id |
( |
|
self, |
|
|
|
key |
|
) |
| |
|
private |
◆ _recv_frame()
def pyuavcan_v0.node.Node._recv_frame |
( |
|
self, |
|
|
|
raw_frame |
|
) |
| |
|
private |
◆ _send_node_status()
def pyuavcan_v0.node.Node._send_node_status |
( |
|
self | ) |
|
|
private |
◆ _throw_if_anonymous()
def pyuavcan_v0.node.Node._throw_if_anonymous |
( |
|
self | ) |
|
|
private |
◆ add_handler()
def pyuavcan_v0.node.Node.add_handler |
( |
|
self, |
|
|
|
uavcan_type, |
|
|
|
handler, |
|
|
** |
kwargs |
|
) |
| |
Adds a handler for the specified data type.
:param uavcan_type: DSDL data type. Only transfers of this type will be accepted for this handler.
:param handler: The handler. This must be either a callable or a class.
:param **kwargs: Extra arguments for the handler.
:return: A remover object that can be used to unregister the handler as follows:
x = node.add_handler(...)
# Remove the handler like this:
x.remove()
# Or like this:
if x.try_remove():
print('The handler has been removed successfully')
else:
print('There is no such handler')
Definition at line 365 of file node.py.
◆ add_transfer_hook()
def pyuavcan_v0.node.Node.add_transfer_hook |
( |
|
self, |
|
|
|
hook, |
|
|
** |
kwargs |
|
) |
| |
:param hook: Callable hook; expected signature: hook(transfer).
:param kwargs: Extra arguments for the hook.
:return: A handle object that can be used to unregister the hook by calling remove() on it.
Definition at line 357 of file node.py.
◆ broadcast()
def pyuavcan_v0.node.Node.broadcast |
( |
|
self, |
|
|
|
payload, |
|
|
|
priority = None |
|
) |
| |
◆ can_driver()
def pyuavcan_v0.node.Node.can_driver |
( |
|
self | ) |
|
◆ close()
def pyuavcan_v0.node.Node.close |
( |
|
self | ) |
|
◆ is_anonymous()
def pyuavcan_v0.node.Node.is_anonymous |
( |
|
self | ) |
|
◆ node_id() [1/2]
def pyuavcan_v0.node.Node.node_id |
( |
|
self | ) |
|
◆ node_id() [2/2]
def pyuavcan_v0.node.Node.node_id |
( |
|
self, |
|
|
|
value |
|
) |
| |
◆ remove_handlers()
def pyuavcan_v0.node.Node.remove_handlers |
( |
|
self, |
|
|
|
uavcan_type |
|
) |
| |
Removes all handlers for the specified DSDL data type.
Definition at line 383 of file node.py.
◆ request()
def pyuavcan_v0.node.Node.request |
( |
|
self, |
|
|
|
payload, |
|
|
|
dest_node_id, |
|
|
|
callback, |
|
|
|
priority = None , |
|
|
|
timeout = None |
|
) |
| |
◆ respond()
def pyuavcan_v0.node.Node.respond |
( |
|
self, |
|
|
|
payload, |
|
|
|
dest_node_id, |
|
|
|
transfer_id, |
|
|
|
priority |
|
) |
| |
◆ spin()
def pyuavcan_v0.node.Node.spin |
( |
|
self, |
|
|
|
timeout = None |
|
) |
| |
Runs background processes until timeout expires.
Note that all processing is implemented in one thread.
:param timeout: The method will return once this amount of time expires.
If None, the method will never return.
If zero, the method will handle only those events that are ready, then return immediately.
Definition at line 388 of file node.py.
◆ _can_driver
pyuavcan_v0.node.Node._can_driver |
|
private |
◆ _handler_dispatcher
pyuavcan_v0.node.Node._handler_dispatcher |
|
private |
◆ _next_transfer_ids
pyuavcan_v0.node.Node._next_transfer_ids |
|
private |
◆ _node_id
pyuavcan_v0.node.Node._node_id |
|
private |
◆ _outstanding_request_callbacks
pyuavcan_v0.node.Node._outstanding_request_callbacks |
|
private |
◆ _outstanding_requests
pyuavcan_v0.node.Node._outstanding_requests |
|
private |
◆ _transfer_hook_dispatcher
pyuavcan_v0.node.Node._transfer_hook_dispatcher |
|
private |
◆ _transfer_manager
pyuavcan_v0.node.Node._transfer_manager |
|
private |
◆ health
pyuavcan_v0.node.Node.health |
◆ mode
pyuavcan_v0.node.Node.mode |
◆ node_info
pyuavcan_v0.node.Node.node_info |
◆ start_time_monotonic
pyuavcan_v0.node.Node.start_time_monotonic |
◆ vendor_specific_status_code
pyuavcan_v0.node.Node.vendor_specific_status_code |
The documentation for this class was generated from the following file: