RTE RBC 2oo2 Reference Application 0.1.0 build 0006685
SIL 4 2oo2 Dual-Site Fault-Tolerant ERTMS Radio Block Centre Reference Architecture
Loading...
Searching...
No Matches
rbc_envelope_t Struct Reference

One decoded envelope - see this file's own module doc for where the wire<->struct conversion now lives (per-domain, not one shared codec). More...

#include <rbc_wire_types.h>

Data Fields

rbc_msg_kind_t kind
uint8_t train_id
uint8_t nid_message
uint16_t l_message
uint32_t t_train
uint32_t cycle
uint32_t d_lrbg
uint32_t msg_type
uint32_t route_len
uint32_t ma_seq
uint32_t ma_length
uint32_t t_train_ack
uint32_t nid_lrbg
uint32_t q_dirlrbg
uint32_t q_dlrbg
uint32_t l_doubtover
uint32_t l_doubtunder
uint32_t q_length
uint32_t v_train
uint32_t q_dirtrain
uint32_t m_mode
uint32_t m_level
uint32_t start_signal
uint32_t end_signal
uint32_t route_type
uint32_t route_status

Detailed Description

One decoded envelope - see this file's own module doc for where the wire<->struct conversion now lives (per-domain, not one shared codec).

Definition at line 371 of file rbc_wire_types.h.

Field Documentation

◆ kind

rbc_msg_kind_t rbc_envelope_t::kind

Wire routing discriminator (0-11) - UNCHANGED meaning/values for 0-9; still what every decode switch in this codebase dispatches on.

Definition at line 373 of file rbc_wire_types.h.

◆ train_id

uint8_t rbc_envelope_t::train_id

1 or 2 - which Train/IL instance this concerns. 0 = unset/not applicable (never a valid train_id on the wire).

Definition at line 375 of file rbc_wire_types.h.

◆ nid_message

uint8_t rbc_envelope_t::nid_message

REQ-RBC-001 (revised): the real Subset-026 NID_MESSAGE this kind corresponds to where one exists (e.g. kind=RBC_MSG_M146 -> nid_message=146U), or 0U for a kind with no real counterpart (P0/M24_M15/ROUTE_ADD/CTC_*) - see TrainRBCSim's message_catalog.json for which. Informational header field only, calculated by rbc_wire_encode() from kind - never used for routing/dispatch (kind still is), so it carries no collision risk with kind's own small, already-allocated value space (e.g. ROUTE_ADD is kind=3, unrelated to real NID_MESSAGE=3 Movement Authority).

Definition at line 377 of file rbc_wire_types.h.

◆ l_message

uint16_t rbc_envelope_t::l_message

REQ-RBC-001 (revised): total envelope length in bytes (header + content), calculated by rbc_wire_encode() from kind - see this struct's own file header for the exact per-kind values. Read (not trusted blindly) by rbc_wire_decode() to know how much content this particular envelope actually carries within the fixed RBC_ENVELOPE_WIRE_SIZE slot.

Definition at line 386 of file rbc_wire_types.h.

◆ t_train

uint32_t rbc_envelope_t::t_train

REQ-RBC-001 (revised): message origination timestamp (real Subset-026 header field) - caller-supplied (this codec has no clock source of its own), not yet consumed by any decision logic in this codebase.

Definition at line 392 of file rbc_wire_types.h.

◆ cycle

uint32_t rbc_envelope_t::cycle

M136: this train's own free-running cycle number. M24_M15: echoes the M136 cycle being acked.

Definition at line 395 of file rbc_wire_types.h.

◆ d_lrbg

uint32_t rbc_envelope_t::d_lrbg

M136/CTC_CONNECTED: reported position.

Definition at line 397 of file rbc_wire_types.h.

◆ msg_type

uint32_t rbc_envelope_t::msg_type

M24_M15: RTE_EXAMPLE_MSG_M24 or _M15 (common_config.h).

Definition at line 398 of file rbc_wire_types.h.

◆ route_len

uint32_t rbc_envelope_t::route_len

ROUTE_ADD: length (meters) this route grants/extends the MA by.

Definition at line 399 of file rbc_wire_types.h.

◆ ma_seq

uint32_t rbc_envelope_t::ma_seq

M3/M146/CTC_MA_*: monotonic MA sequence number for this train.

Definition at line 400 of file rbc_wire_types.h.

◆ ma_length

uint32_t rbc_envelope_t::ma_length

M3/CTC_MA_*: cumulative granted MA length (meters) as of ma_seq.

Definition at line 401 of file rbc_wire_types.h.

◆ t_train_ack

uint32_t rbc_envelope_t::t_train_ack

M146 only (REQ-RBC-001 revised): real Subset-026 message 146's own content field - echoes the T_TRAIN timestamp of the message being acknowledged (the real ack mechanism; distinct from ma_seq, which this codebase's OWN, non-real M146 usage still also carries and acks by - see ab_gp_channel.c's own RBC_MSG_M146 case). 0 when kind != RBC_MSG_M146 (not present on the wire at all then - l_message says so).

Definition at line 402 of file rbc_wire_types.h.

◆ nid_lrbg

uint32_t rbc_envelope_t::nid_lrbg

M136: identity of the last relevant balise group.

Definition at line 419 of file rbc_wire_types.h.

◆ q_dirlrbg

uint32_t rbc_envelope_t::q_dirlrbg

M136: train orientation according to reference direction.

Definition at line 420 of file rbc_wire_types.h.

◆ q_dlrbg

uint32_t rbc_envelope_t::q_dlrbg

M136: train front position according to reference direction.

Definition at line 421 of file rbc_wire_types.h.

◆ l_doubtover

uint32_t rbc_envelope_t::l_doubtover

M136: overreading confidence interval.

Definition at line 422 of file rbc_wire_types.h.

◆ l_doubtunder

uint32_t rbc_envelope_t::l_doubtunder

M136: underreading confidence interval.

Definition at line 423 of file rbc_wire_types.h.

◆ q_length

uint32_t rbc_envelope_t::q_length

M136: train length confirmation status.

Definition at line 424 of file rbc_wire_types.h.

◆ v_train

uint32_t rbc_envelope_t::v_train

M136: reported train speed.

Definition at line 425 of file rbc_wire_types.h.

◆ q_dirtrain

uint32_t rbc_envelope_t::q_dirtrain

M136: actual running direction according to reference direction.

Definition at line 426 of file rbc_wire_types.h.

◆ m_mode

uint32_t rbc_envelope_t::m_mode

M136: reported ETCS mode.

Definition at line 427 of file rbc_wire_types.h.

◆ m_level

uint32_t rbc_envelope_t::m_level

M136: reported ETCS level.

Definition at line 428 of file rbc_wire_types.h.

◆ start_signal

uint32_t rbc_envelope_t::start_signal

ROUTE_ADD/ROUTE_RELEASE/TRAIN_POSITION_IN_ROUTE: route identity - the signal this route starts at.

Definition at line 442 of file rbc_wire_types.h.

◆ end_signal

uint32_t rbc_envelope_t::end_signal

ROUTE_ADD/ROUTE_RELEASE/TRAIN_POSITION_IN_ROUTE: route identity - the signal this route ends at.

Definition at line 444 of file rbc_wire_types.h.

◆ route_type

uint32_t rbc_envelope_t::route_type

ROUTE_ADD only: rbc_route_type_t (RBC_ROUTE_TYPE_FS/_OS/_SH) - the supervision mode IL is granting this route under.

Definition at line 446 of file rbc_wire_types.h.

◆ route_status

uint32_t rbc_envelope_t::route_status

TRAIN_POSITION_IN_ROUTE only: rbc_route_status_t (RBC_ROUTE_STATUS_NO_TRAIN/_TRAIN_IN_ROUTE).

Definition at line 448 of file rbc_wire_types.h.


The documentation for this struct was generated from the following file: