|
SimCore
Shared transport-layer plumbing for the ADR-029 Train/IL/CTC RBC simulators
|
Public Member Functions | |
| __init__ (self, log, host, port, message_size) | |
| ensure_connected (self) | |
| sockets (self) | |
| connected_sites (self) | |
| disconnect (self, site=None) | |
| send_all (self, payload) | |
| poll_recv (self, timeout=0.0) | |
Public Attributes | |
| message_size = int(message_size) | |
Protected Member Functions | |
| _close (self, site=None) | |
| _frame (self, payload) | |
Protected Attributes | |
| _log = log | |
| _host = host | |
| _port = int(port) | |
| _sock = None | |
| _rx = bytearray() | |
| float | _last_attempt = 0.0 |
| bool | _ever_connected = False |
Single TCP link to a CommServer, framed as fixed-size messages. Auto-reconnecting: any send/recv error drops the socket, and the next ensure_connected() re-dials (rate-limited).
Definition at line 42 of file safecomm.py.
| simcore.safecomm.SafeCommLink.__init__ | ( | self, | |
| log, | |||
| host, | |||
| port, | |||
| message_size ) |
Definition at line 47 of file safecomm.py.
|
protected |
Definition at line 102 of file safecomm.py.
|
protected |
Definition at line 112 of file safecomm.py.
| simcore.safecomm.SafeCommLink.connected_sites | ( | self | ) |
Definition at line 96 of file safecomm.py.
| simcore.safecomm.SafeCommLink.disconnect | ( | self, | |
| site = None ) |
Definition at line 99 of file safecomm.py.
| simcore.safecomm.SafeCommLink.ensure_connected | ( | self | ) |
One non-blocking (re)connect attempt, rate-limited. Safe to call every cycle - a no-op once connected. Returns True if connected.
Definition at line 58 of file safecomm.py.
| simcore.safecomm.SafeCommLink.poll_recv | ( | self, | |
| timeout = 0.0 ) |
Yield ``(site, message_bytes)`` for every whole framed message available within ``timeout`` seconds.
Definition at line 132 of file safecomm.py.
| simcore.safecomm.SafeCommLink.send_all | ( | self, | |
| payload ) |
Send one message to the CommServer (padded/truncated to ``message_size``). Silently drops if not connected - the caller's own ``ensure_connected()`` loop re-establishes.
Definition at line 120 of file safecomm.py.
| simcore.safecomm.SafeCommLink.sockets | ( | self | ) |
DualHomedLink-compatible view: WEST slot carries the one TCP socket, EAST slot is always None.
Definition at line 91 of file safecomm.py.
|
protected |
Definition at line 55 of file safecomm.py.
|
protected |
Definition at line 49 of file safecomm.py.
|
protected |
Definition at line 54 of file safecomm.py.
|
protected |
Definition at line 48 of file safecomm.py.
|
protected |
Definition at line 50 of file safecomm.py.
|
protected |
Definition at line 53 of file safecomm.py.
|
protected |
Definition at line 52 of file safecomm.py.
| simcore.safecomm.SafeCommLink.message_size = int(message_size) |
Definition at line 51 of file safecomm.py.