pyrtma.manager.MessageManager

class MessageManager(ip_address='', port=7111, timecode=False, debug=False, send_msg_timing=True)[source]

Bases: object

MessageManager class

RTMA Message Manager server implemented in python.

MessageManager class

RTMA Message Manager server implemented in python.

Parameters:
  • ip_address (str, optional) – server IP address. Defaults to “”.

  • timecode (bool, optional) – Flag to use message header with timecode values. Defaults to False.

  • debug (bool, optional) – Flag for debug mode. Defaults to False.

  • send_msg_timing (bool, optional) – Flag to send TIMING_MSG. Defaults to True.

  • port (int) –

Methods

add_subscription

Add message subscription

assign_module_id

Assign module ID dynamically to connecting module

close

Close manager server

connect_module

Connect module

disconnect_module

Disconnect module

forward_message

Forward a message from other modules

pause_subscription

Pause message subscription

process_message

Process incoming message

read_message

Read an incoming message

register_module_ready

Handle MODULE_READY message and register PID

remove_module

Remove connected module

remove_subscription

Remove message subscription

resume_subscription

Resume message subscription

run

Start the message manager server

send_ack

Send ACKNOWLEDGE signal header

send_failed_message

Send FAILED_MESSAGE

send_timing_message

Send TIMING_MESSAGE

send_to_loggers

Forward message to registered logger modules

Attributes

header

message

add_subscription(src_module, msg)[source]

Add message subscription

Parameters:
  • src_module (Module) – Subscribing module

  • msg (Message) – incoming SUBSCRIBE message

assign_module_id()[source]

Assign module ID dynamically to connecting module

Raises:

RuntimeError – Exceeded maximum number of allowed dynamic modules

Returns:

module ID

Return type:

int

close()[source]

Close manager server

connect_module(src_module, msg)[source]

Connect module

Parameters:
  • src_module (Module) – Connecting module

  • msg (Message) – Incoming connect message

Returns:

success code

Return type:

bool

disconnect_module(src_module)[source]

Disconnect module

Parameters:

src_module (Module) – Module object to disconnect

forward_message(header, data, wlist)[source]

Forward a message from other modules

The given message will be forwarded to:

  • all subscribed logger modules (ALWAYS)

  • if the message has a destination address, and it is subscribed to by that destination it will be forwarded only there

  • if the message has no destination address, it will be forwarded to all subscribed modules

Parameters:
pause_subscription(src_module, msg)[source]

Pause message subscription

Parameters:
  • src_module (Module) – Subscribing module

  • msg (Message) – incoming PAUSE_SUBSCRIPTION message

process_message(src_module, wlist)[source]

Process incoming message

Parameters:
  • src_module (Module) – Message source module

  • wlist (List[socket.socket]) – Sockets ready for writing

read_message(sock)[source]

Read an incoming message

Parameters:

sock (socket.socket) – socket to read from

Returns:

Success code

Return type:

bool

register_module_ready(src_module, msg)[source]

Handle MODULE_READY message and register PID

Parameters:
  • src_module (Module) – Module that is ready

  • msg (Message) – Incoming MODULE_READY message

remove_module(module)[source]

Remove connected module

Parameters:

module (Module) – Module object to remove

remove_subscription(src_module, msg)[source]

Remove message subscription

Parameters:
  • src_module (Module) – Unsubscribing module

  • msg (Message) – incoming UNSUBSCRIBE message

resume_subscription(src_module, msg)[source]

Resume message subscription

Parameters:
  • src_module (Module) – Subscribing module

  • msg (Message) – incoming RESUME_SUBSCRIPTION message

run()[source]

Start the message manager server

send_ack(src_module, wlist)[source]

Send ACKNOWLEDGE signal header

Parameters:
  • src_module (Module) – Module to send ACK to

  • wlist (List[socket.socket]) – Sockets ready for writing

send_failed_message(dest_module, header, time_of_failure, wlist)[source]

Send FAILED_MESSAGE

Parameters:
  • dest_module (Module) – Intended destination

  • header (MessageHeader) – Header of failed message

  • time_of_failure (float) – Time of send failure

  • wlist (List[socket.socket]) – Sockets ready for writing

send_timing_message(wlist)[source]

Send TIMING_MESSAGE

Parameters:

wlist (List[socket.socket]) – Sockets ready for writing

send_to_loggers(header, payload, wlist)[source]

Forward message to registered logger modules

Parameters: