Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
pyuavcan_v0.node.Node Class Reference
Inheritance diagram for pyuavcan_v0.node.Node:
Inheritance graph
[legend]

Public Member Functions

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)
 
- Public Member Functions inherited from pyuavcan_v0.node.Scheduler
def __init__ (self)
 
def defer (self, timeout_seconds, callback)
 
def has_pending_events (self)
 
def periodic (self, period_seconds, callback)
 

Public Attributes

 health
 
 mode
 
 node_info
 
 start_time_monotonic
 
 vendor_specific_status_code
 

Private Member Functions

def _fill_node_status (self, msg)
 
def _next_transfer_id (self, key)
 
def _recv_frame (self, raw_frame)
 
def _send_node_status (self)
 
def _throw_if_anonymous (self)
 

Private Attributes

 _can_driver
 
 _handler_dispatcher
 
 _next_transfer_ids
 
 _node_id
 
 _outstanding_request_callbacks
 
 _outstanding_requests
 
 _transfer_hook_dispatcher
 
 _transfer_manager
 

Detailed Description

Definition at line 226 of file node.py.

Constructor & Destructor Documentation

◆ __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.

Member Function Documentation

◆ _fill_node_status()

def pyuavcan_v0.node.Node._fill_node_status (   self,
  msg 
)
private

Definition at line 343 of file node.py.

◆ _next_transfer_id()

def pyuavcan_v0.node.Node._next_transfer_id (   self,
  key 
)
private

Definition at line 334 of file node.py.

◆ _recv_frame()

def pyuavcan_v0.node.Node._recv_frame (   self,
  raw_frame 
)
private

Definition at line 303 of file node.py.

◆ _send_node_status()

def pyuavcan_v0.node.Node._send_node_status (   self)
private

Definition at line 349 of file node.py.

◆ _throw_if_anonymous()

def pyuavcan_v0.node.Node._throw_if_anonymous (   self)
private

Definition at line 339 of file node.py.

◆ 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 
)

Definition at line 491 of file node.py.

◆ can_driver()

def pyuavcan_v0.node.Node.can_driver (   self)

Definition at line 300 of file node.py.

◆ close()

def pyuavcan_v0.node.Node.close (   self)

Definition at line 506 of file node.py.

◆ is_anonymous()

def pyuavcan_v0.node.Node.is_anonymous (   self)

Definition at line 282 of file node.py.

◆ node_id() [1/2]

def pyuavcan_v0.node.Node.node_id (   self)

Definition at line 286 of file node.py.

◆ node_id() [2/2]

def pyuavcan_v0.node.Node.node_id (   self,
  value 
)

Definition at line 290 of file node.py.

◆ 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 
)

Definition at line 424 of file node.py.

◆ respond()

def pyuavcan_v0.node.Node.respond (   self,
  payload,
  dest_node_id,
  transfer_id,
  priority 
)

Definition at line 470 of file node.py.

◆ 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.

Member Data Documentation

◆ _can_driver

pyuavcan_v0.node.Node._can_driver
private

Definition at line 250 of file node.py.

◆ _handler_dispatcher

pyuavcan_v0.node.Node._handler_dispatcher
private

Definition at line 248 of file node.py.

◆ _next_transfer_ids

pyuavcan_v0.node.Node._next_transfer_ids
private

Definition at line 256 of file node.py.

◆ _node_id

pyuavcan_v0.node.Node._node_id
private

Definition at line 251 of file node.py.

◆ _outstanding_request_callbacks

pyuavcan_v0.node.Node._outstanding_request_callbacks
private

Definition at line 255 of file node.py.

◆ _outstanding_requests

pyuavcan_v0.node.Node._outstanding_requests
private

Definition at line 254 of file node.py.

◆ _transfer_hook_dispatcher

pyuavcan_v0.node.Node._transfer_hook_dispatcher
private

Definition at line 261 of file node.py.

◆ _transfer_manager

pyuavcan_v0.node.Node._transfer_manager
private

Definition at line 253 of file node.py.

◆ health

pyuavcan_v0.node.Node.health

Definition at line 264 of file node.py.

◆ mode

pyuavcan_v0.node.Node.mode

Definition at line 265 of file node.py.

◆ node_info

pyuavcan_v0.node.Node.node_info

Definition at line 276 of file node.py.

◆ start_time_monotonic

pyuavcan_v0.node.Node.start_time_monotonic

Definition at line 258 of file node.py.

◆ vendor_specific_status_code

pyuavcan_v0.node.Node.vendor_specific_status_code

Definition at line 266 of file node.py.


The documentation for this class was generated from the following file:


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:04