wrapyfi.middlewares package
Submodules
wrapyfi.middlewares.mqtt module
- class wrapyfi.middlewares.mqtt.MqttMiddlewarePubSub(*args, **kwargs)[source]
Bases:
object
MQTT middleware wrapper. This class is a singleton, so it can be instantiated only once. The activate method should be called to initialize the middleware. The deinit method should be called to deinitialize the middleware and destroy all connections.
- static activate(broker_address: str = 'broker.emqx.io', broker_port: int = 1883, **kwargs)[source]
Activate the MQTT middleware. Initializes the MQTT client with the provided address and options.
- Parameters:
broker_address – str: The MQTT broker address
broker_port – int: The MQTT broker port
kwargs – dict: Additional keyword arguments for the middleware
- __init__(broker_address: str = 'broker.emqx.io', broker_port: int = 1883, client_id: str | None = None, **kwargs)[source]
Initialize the MQTT middleware. This method is automatically called when the class is instantiated.
- Parameters:
broker_address – str: The MQTT broker address
broker_port – int: The MQTT broker port
client_id – str: The MQTT client ID
kwargs – dict: Additional keyword arguments for compatibility with the interface
- register_callback(topic: str, callback)[source]
Register an event handler for a specific topic.
- Parameters:
topic – str: The topic to subscribe to
callback – callable: The function to call when a message is received on this topic
wrapyfi.middlewares.ros module
- class wrapyfi.middlewares.ros.ROSMiddleware(*args, **kwargs)[source]
Bases:
object
ROS middleware wrapper. This class is a singleton, so it can be instantiated only once. The
activate
method should be called to initialize the middleware. Thedeinit
method should be called to deinitialize the middleware and destroy all connections. Theactivate
anddeinit
methods are automatically called when the class is instantiated and when the program exits, respectively.- static activate(**kwargs)[source]
Activate the ROS middleware. This method should be called to initialize the middleware.
- Parameters:
kwargs – dict: Keyword arguments to be passed to the ROS initialization function
- __init__(node_name: str = 'wrapyfi', anonymous: bool = True, disable_signals: bool = True, *args, **kwargs)[source]
Initialize the ROS middleware. This method is automatically called when the class is instantiated.
- Parameters:
node_name – str: The name of the ROS node
anonymous – bool: Whether the ROS node should be anonymous
disable_signals – bool: Whether the ROS node should disable signals
args – list: Positional arguments to be passed to the ROS initialization function
kwargs – dict: Keyword arguments to be passed to the ROS initialization function
wrapyfi.middlewares.ros2 module
- class wrapyfi.middlewares.ros2.ROS2Middleware(*args, **kwargs)[source]
Bases:
object
ROS 2 middleware wrapper. This class is a singleton, so it can be instantiated only once. The
activate
method should be called to initialize the middleware. Thedeinit
method should be called to deinitialize the middleware and destroy all connections. Theactivate
anddeinit
methods are automatically called when the class is instantiated and when the program exits, respectively.- static activate(**kwargs)[source]
Activate the ROS 2 middleware. This method should be called to initialize the middleware.
- Parameters:
kwargs – dict: Keyword arguments to be passed to the ROS 2 initialization function
- __init__(*args, **kwargs)[source]
Initialize the ROS 2 middleware. This method is automatically called when the class is instantiated.
- Parameters:
args – list: Positional arguments to be passed to the ROS 2 initialization function
kwargs – dict: Keyword arguments to be passed to the ROS 2 initialization function
wrapyfi.middlewares.websocket module
- class wrapyfi.middlewares.websocket.WebSocketMiddlewarePubSub(*args, **kwargs)[source]
Bases:
object
WebSocket middleware wrapper. This class is a singleton, so it can be instantiated only once. The activate method should be called to initialize the middleware. The deinit method should be called to deinitialize the middleware and destroy all connections.
- static activate(socket_address: str = 'http://127.0.0.1:5000', **kwargs)[source]
Activate the WebSocket middleware. Initializes the WebSocket client with the provided address and options.
- Parameters:
socket_address – str: The WebSocket server address
kwargs – dict: Additional keyword arguments for the middleware
- __init__(socket_address: str = 'http://127.0.0.1:5000', monitor_listener_spawn: str | None = None, websocket_kwargs: dict | None = None, **kwargs)[source]
Initialize the WebSocket middleware. This method is automatically called when the class is instantiated.
- Parameters:
socket_address – str: The WebSocket server address
monitor_listener_spawn – str: Determines the type of listener spawn
websocket_kwargs – dict: Additional keyword arguments for the WebSocket connection
kwargs – dict: Additional keyword arguments for compatibility with the interface
- register_callback(topic: str, callback)[source]
Register an event handler for a specific topic.
- Parameters:
topic – str: The topic/event to listen to
callback – callable: The function to call when the event occurs
wrapyfi.middlewares.yarp module
- class wrapyfi.middlewares.yarp.YarpMiddleware(*args, **kwargs)[source]
Bases:
object
YARP middleware wrapper. This class is a singleton, so it can be instantiated only once. The
activate
method should be called to initialize the middleware. Thedeinit
method should be called to deinitialize the middleware and destroy all connections. Theactivate
anddeinit
methods are automatically called when the class is instantiated and when the program exits, respectively.- static activate(**kwargs)[source]
Activate the YARP middleware. This method should be called to initialize the middleware.
- Parameters:
kwargs – dict: Keyword arguments to be passed to the YARP initialization function
wrapyfi.middlewares.zeromq module
- class wrapyfi.middlewares.zeromq.ZeroMQMiddlewarePubSub(*args, **kwargs)[source]
Bases:
object
ZeroMQ PUB/SUB middleware wrapper. This class is a singleton, so it can be instantiated only once. The
activate
method should be called to initialize the middleware. Thedeinit
method should be called to deinitialize the middleware and destroy all connections. Theactivate
anddeinit
methods are automatically called when the class is instantiated and when the program exits, respectively.Bases:
object
Shared data class for the ZeroMQ PUB/SUB monitor. This class is used to share data between the main process and the monitor listener process/thread.
Initialize the shared data class.
- Parameters:
use_multiprocessing – bool: Whether to use multiprocessing or threading
Add a topic to the shared data class.
- Parameters:
topic – str: The topic to add
Remove a topic from the shared data class.
- Parameters:
topic – str: The topic to remove
Get the list of topics in the shared data class.
- Returns:
list: The list of topics
Update the connection data for a topic, e.g. the number of subscribers.
- Parameters:
topic – str: The topic to update
data – dict: The connection data
Remove the connection data for a topic.
- Parameters:
topic – str: The topic to remove
Get the connection data for all topics.
- Returns:
dict: The connection data for all topics
Check whether a topic is connected.
- Parameters:
topic – str: The topic to check
- static activate(**kwargs)[source]
Activate the ZeroMQ PUB/SUB middleware. This method should be called to initialize the middleware.
- Parameters:
kwargs – dict: Keyword arguments to be passed to the ZeroMQ initialization function
- __init__(zeromq_proxy_kwargs: dict | None = None, zeromq_post_kwargs: dict | None = None, **kwargs)[source]
Initialize the ZeroMQ PUB/SUB middleware. This method is automatically called when the class is instantiated.
- Parameters:
zeromq_proxy_kwargs – Optional[dict]: Keyword arguments to be passed to the ZeroMQ proxy initialization function
zeromq_post_kwargs – Optional[dict]: Keyword arguments to be passed to the ZeroMQ initialization function (these are ZeroMQ options)
kwargs – dict: Keyword arguments to be passed to the ZeroMQ initialization function
- static proxy_thread(socket_pub_address: str = 'tcp://127.0.0.1:5555', socket_sub_address: str = 'tcp://127.0.0.1:5556', inproc_address: str = 'inproc://monitor')[source]
Proxy thread for the ZeroMQ PUB/SUB proxy.
- Parameters:
socket_pub_address – str: The address of the PUB socket
socket_sub_address – str: The address of the SUB socket
inproc_address – str: The address of the inproc socket (connections within the same process, for exchanging subscription data between the proxy and the monitor)
- static subscription_monitor_thread(inproc_address: str = 'inproc://monitor', socket_sub_address: str = 'tcp://127.0.0.1:5556', pubsub_monitor_topic: str = 'ZEROMQ/CONNECTIONS', verbose: bool = False)[source]
Subscription monitor thread for the ZeroMQ PUB/SUB proxy.
- Parameters:
inproc_address – str: The address of the inproc socket (connections within the same process, for exchanging subscription data between the proxy and the monitor)
socket_sub_address – str: The address of the SUB socket
pubsub_monitor_topic – str: The topic to use for publishing subscription data
verbose – bool: Whether to print debug messages
- class wrapyfi.middlewares.zeromq.ZeroMQMiddlewareReqRep(*args, **kwargs)[source]
Bases:
object
ZeroMQ REQ/REP middleware wrapper. This class is a singleton, so it can be instantiated only once. The
activate
method should be called to initialize the middleware. Thedeinit
method should be called to deinitialize the middleware and destroy all connections. Theactivate
anddeinit
methods are automatically called when the class is instantiated and when the program exits, respectively.- static activate(**kwargs)[source]
Activate the ZeroMQ REQ/REP middleware. This method should be called to initialize the middleware.
- Parameters:
kwargs – dict: Keyword arguments to be passed to the ZeroMQ initialization function
- __init__(zeromq_proxy_kwargs: dict | None = None, zeromq_post_kwargs: dict | None = None, *args, **kwargs)[source]
Initialize the ZeroMQ REQ/REP middleware. This method is automatically called when the class is instantiated.
- Parameters:
zeromq_proxy_kwargs – Optional[dict]: Keyword arguments to be passed to the ZeroMQ proxy initialization function
zeromq_post_kwargs – Optional[dict]: Keyword arguments to be passed to the ZeroMQ initialization function (these are ZeroMQ options)
args – list: Positional arguments to be passed to the ZeroMQ initialization function
kwargs – dict: Keyword arguments to be passed to the ZeroMQ initialization function
- class wrapyfi.middlewares.zeromq.ZeroMQMiddlewareParamServer(*args, **kwargs)[source]
Bases:
object
ZeroMQ parameter server middleware wrapper. This class is a singleton, so it can be instantiated only once. The
activate
method should be called to initialize the middleware. Thedeinit
method should be called to deinitialize the middleware and destroy all connections. Theactivate
anddeinit
methods are automatically called when the class is instantiated and when the program exits, respectively.Note: This parameter server is experimental and not fully tested.
- __init__(zeromq_proxy_kwargs: dict | None = None, zeromq_post_kwargs: Optional = None, *args, **kwargs)[source]
Initialize the ZeroMQ parameter server middleware. This method is automatically called when the class is instantiated.
- Parameters:
zeromq_proxy_kwargs – Optional[dict]: Keyword arguments to be passed to the ZeroMQ proxy initialization function
zeromq_post_kwargs – Optional[dict]: Keyword arguments to be passed to the ZeroMQ initialization function (these are ZeroMQ options)
kwargs – dict: Keyword arguments to be passed to the ZeroMQ initialization function
- static publish_params(param_server, params: dict, cached_params: dict, root_topics: set, update_trigger: bool)[source]
Publish parameters to the parameter server.
- Parameters:
param_server – zmq.Socket: The parameter server socket
params – dict: The parameters to be published
cached_params – dict: The cached parameters. This is used to check whether the parameters have changed
root_topics – set: The root topics. This is used to check whether there are any active subscribers
update_trigger – bool: Whether to trigger an update of the parameters
- Returns:
Tuple[bool, dict]: Whether to trigger an update of the parameters and the cached parameters