feathersdk.comms.comms_manager Module

exception feathersdk.comms.comms_manager.CanNotEnabledError(*args: Any, **kwargs: Any)

Bases: Exception

Error raised when a CAN interface is not enabled.

exception feathersdk.comms.comms_manager.CanOverloadError

Bases: Exception

Error raised when the CAN bus is overloaded.

class feathersdk.comms.comms_manager.CommsManager(*args, **kwargs)

Bases: object

Handles sending and receiving messages over CAN and TCP.

Provides a single point of entry for sending and receiving messages over CAN and TCP. Any new instances of this class will point to the same instance.

The manager also checks for message overload on the CAN bus and will raise an error if the message rate is too high.

You can

add_callback(*args, **kwargs)
add_endpoint(*args, **kwargs)
cansend(*args, **kwargs)
clear_endpoints(*args, **kwargs)
is_running() bool

Check if the background polling thread is currently running.

on_abort(*args, **kwargs)
on_fork() None

Called when the process forks.

register_single_msg_checker(*args, **kwargs)
remove_callback(*args, **kwargs)
remove_endpoint(*args, **kwargs)
reset(*args, **kwargs)
set_is_dry(*args, **kwargs)
set_single_message_mode(*args, **kwargs)
tcpsend_modbus(*args, **kwargs)
exception feathersdk.comms.comms_manager.CommsManagerNotRunningError(*args: Any, **kwargs: Any)

Bases: Exception

Error raised when the comms manager is not running.

class feathersdk.comms.comms_manager.LoadAndTime(load, last_message_time)

Bases: tuple

last_message_time

Alias for field number 1

load

Alias for field number 0

exception feathersdk.comms.comms_manager.MissingMotorUIDError(*args: Any, **kwargs: Any)

Bases: Exception

Error raised when a motor UID is required but not provided.

exception feathersdk.comms.comms_manager.PendingReceiveMessageError(*args: Any, **kwargs: Any)

Bases: Exception

Error raised when a message is to be sent to a motor when we are awaiting a response in single message mode.

class feathersdk.comms.comms_manager.SendCanMessage(*args: Any, **kwargs: Any)

Bases: object

Data class representing a CAN message that is about to be sent. Only used for WireHawk

can_id: int
data: bytes
extended: bool
iface: str
motor_uid: str | None = None
class feathersdk.comms.comms_manager.SendTCPMessage(*args: Any, **kwargs: Any)

Bases: object

Data class representing a TCP message that is about to be sent. Only used for WireHawk

fcode: int
ip: str
reg_addr: int
reg_val: int
tid: int
uid: int
exception feathersdk.comms.comms_manager.SocketCANLibError

Bases: Exception

Error raised when the socketcan library returns a non-zero error code.

exception feathersdk.comms.comms_manager.UnknownInterfaceError(*args: Any, **kwargs: Any)

Bases: Exception

Error raised when the interface is not an interface, or is not being tracked by CommsManager.