ILRBCSim
ADR-029 Interlocking simulator — grants/extends Movement Authority against the RBC wire protocol
Loading...
Searching...
No Matches
il.il_wire Namespace Reference

Functions

 _slot (payload)
 encode_route_cmd (route_type=ROUTE_TYPE_NO_ROUTE, route_status=ROUTE_STATUS_NO_STATUS, degraded_status=DEGRADED_STATUS_NO_STATUS, release_route_request=0, first_route_in_path=0, route_id=-1, start_signal=-1, end_signal=-1)
 encode_il_status (il_status=IL_STATUS_DOWN)
 decode_route_indication (frame)
 route_fsm_state_name (v)
 kind_name (kind_byte)

Variables

int KIND_IL_ROUTE_CMD = 25
int KIND_IL_STATUS = 26
int KIND_IL_ROUTE_INDICATION = 27
int ROUTE_TYPE_NO_ROUTE = 0
int ROUTE_TYPE_LOCKED = 1
int ROUTE_STATUS_NO_STATUS = 0
int ROUTE_STATUS_FS = 1
int ROUTE_STATUS_OS = 2
int ROUTE_STATUS_SH = 3
int ROUTE_STATUS_USED = 4
int ROUTE_STATUS_DEGRADED = 5
int DEGRADED_STATUS_NO_STATUS = 0
int DEGRADED_STATUS_LOW = 1
int DEGRADED_STATUS_MEDIUM = 2
int DEGRADED_STATUS_HIGH = 3
int IL_STATUS_DOWN = 0
int IL_STATUS_RESTARTING = 1
int IL_STATUS_UP = 2
int EMERGENCY_TYPE_NONE = -1
int EMERGENCY_TYPE_SAM = 0
int EMERGENCY_TYPE_CEM = 1
int EMERGENCY_TYPE_UEM = 2
dict _NAME_BY_KIND
list ROUTE_FSM_STATE_NAMES = ["NO_ROUTE", "LOCKED", "FS", "OS", "SH", "USED", "DEGRADED"]

Detailed Description

Byte-identical Python mirror of safeAPIRBC2oo2GA/src/AB/il/ab_ga_il_wire.h -
the dedicated IL <-> RBC messages (wire kinds 25/26/27).

These do NOT use SimCore's generic flat 96-byte envelope codec
(rbc_wire.py / MessageCatalog); each has its own small packed layout,
still shipped inside the fixed 96-byte relay slot (rest zero). Keep this
in exact lockstep with ab_ga_il_wire.h - there is no shared schema, same
"by-hand port" precedent as SimCore/rbc_wire.py for the flat scheme and
TrainRBCSim/rbc_ertms_wire.py for the ERTMS scheme.

All multi-byte fields little-endian. See ab_ga_il_wire.h for the
authoritative byte-offset table.

Function Documentation

◆ _slot()

_slot ( payload)
protected
Zero-pads @payload out to the full 96-byte relay slot.

Definition at line 56 of file il_wire.py.

◆ decode_route_indication()

decode_route_indication ( frame)
RBC_MSG_IL_ROUTE_INDICATION (RBC -> IL) -> flat dict, or None if
@frame is not this kind / too short. emergency_type is a SIGNED byte
(-1 = none). route_fsm_state is ab_ga_route_state_t (0..6:
NO_ROUTE/LOCKED/FS/OS/SH/USED/DEGRADED).

Definition at line 90 of file il_wire.py.

◆ encode_il_status()

encode_il_status ( il_status = IL_STATUS_DOWN)
RBC_MSG_IL_STATUS (IL -> RBC).

Definition at line 84 of file il_wire.py.

◆ encode_route_cmd()

encode_route_cmd ( route_type = ROUTE_TYPE_NO_ROUTE,
route_status = ROUTE_STATUS_NO_STATUS,
degraded_status = DEGRADED_STATUS_NO_STATUS,
release_route_request = 0,
first_route_in_path = 0,
route_id = -1,
start_signal = -1,
end_signal = -1 )
RBC_MSG_IL_ROUTE_CMD (IL -> RBC). Fields default to the SPEC
defaults ("first value is default value"). route_id/start_signal/
end_signal are int32, -1 = unset.

Definition at line 63 of file il_wire.py.

◆ kind_name()

kind_name ( kind_byte)

Definition at line 121 of file il_wire.py.

◆ route_fsm_state_name()

route_fsm_state_name ( v)

Definition at line 117 of file il_wire.py.

Variable Documentation

◆ _NAME_BY_KIND

dict il.il_wire._NAME_BY_KIND
protected
Initial value:
= {
KIND_IL_ROUTE_CMD: "IL_ROUTE_CMD",
KIND_IL_STATUS: "IL_STATUS",
KIND_IL_ROUTE_INDICATION: "IL_ROUTE_INDICATION",
}

Definition at line 49 of file il_wire.py.

◆ DEGRADED_STATUS_HIGH

int il.il_wire.DEGRADED_STATUS_HIGH = 3

Definition at line 38 of file il_wire.py.

◆ DEGRADED_STATUS_LOW

int il.il_wire.DEGRADED_STATUS_LOW = 1

Definition at line 36 of file il_wire.py.

◆ DEGRADED_STATUS_MEDIUM

int il.il_wire.DEGRADED_STATUS_MEDIUM = 2

Definition at line 37 of file il_wire.py.

◆ DEGRADED_STATUS_NO_STATUS

int il.il_wire.DEGRADED_STATUS_NO_STATUS = 0

Definition at line 35 of file il_wire.py.

◆ EMERGENCY_TYPE_CEM

int il.il_wire.EMERGENCY_TYPE_CEM = 1

Definition at line 46 of file il_wire.py.

◆ EMERGENCY_TYPE_NONE

int il.il_wire.EMERGENCY_TYPE_NONE = -1

Definition at line 44 of file il_wire.py.

◆ EMERGENCY_TYPE_SAM

int il.il_wire.EMERGENCY_TYPE_SAM = 0

Definition at line 45 of file il_wire.py.

◆ EMERGENCY_TYPE_UEM

int il.il_wire.EMERGENCY_TYPE_UEM = 2

Definition at line 47 of file il_wire.py.

◆ IL_STATUS_DOWN

int il.il_wire.IL_STATUS_DOWN = 0

Definition at line 40 of file il_wire.py.

◆ IL_STATUS_RESTARTING

int il.il_wire.IL_STATUS_RESTARTING = 1

Definition at line 41 of file il_wire.py.

◆ IL_STATUS_UP

int il.il_wire.IL_STATUS_UP = 2

Definition at line 42 of file il_wire.py.

◆ KIND_IL_ROUTE_CMD

int il.il_wire.KIND_IL_ROUTE_CMD = 25

Definition at line 20 of file il_wire.py.

◆ KIND_IL_ROUTE_INDICATION

int il.il_wire.KIND_IL_ROUTE_INDICATION = 27

Definition at line 22 of file il_wire.py.

◆ KIND_IL_STATUS

int il.il_wire.KIND_IL_STATUS = 26

Definition at line 21 of file il_wire.py.

◆ ROUTE_FSM_STATE_NAMES

list il.il_wire.ROUTE_FSM_STATE_NAMES = ["NO_ROUTE", "LOCKED", "FS", "OS", "SH", "USED", "DEGRADED"]

Definition at line 114 of file il_wire.py.

◆ ROUTE_STATUS_DEGRADED

int il.il_wire.ROUTE_STATUS_DEGRADED = 5

Definition at line 33 of file il_wire.py.

◆ ROUTE_STATUS_FS

int il.il_wire.ROUTE_STATUS_FS = 1

Definition at line 29 of file il_wire.py.

◆ ROUTE_STATUS_NO_STATUS

int il.il_wire.ROUTE_STATUS_NO_STATUS = 0

Definition at line 28 of file il_wire.py.

◆ ROUTE_STATUS_OS

int il.il_wire.ROUTE_STATUS_OS = 2

Definition at line 30 of file il_wire.py.

◆ ROUTE_STATUS_SH

int il.il_wire.ROUTE_STATUS_SH = 3

Definition at line 31 of file il_wire.py.

◆ ROUTE_STATUS_USED

int il.il_wire.ROUTE_STATUS_USED = 4

Definition at line 32 of file il_wire.py.

◆ ROUTE_TYPE_LOCKED

int il.il_wire.ROUTE_TYPE_LOCKED = 1

Definition at line 26 of file il_wire.py.

◆ ROUTE_TYPE_NO_ROUTE

int il.il_wire.ROUTE_TYPE_NO_ROUTE = 0

Definition at line 25 of file il_wire.py.