9#ifndef RTE_EXAMPLE_AB_GP_ERTMS_ENGINE_H
10#define RTE_EXAMPLE_AB_GP_ERTMS_ENGINE_H
77 uint32_t v_maxtrain_kmh,
79 uint8_t m_loadinggauge,
81 uint32_t timestamp_ms);
94 uint32_t timestamp_ms);
143 uint8_t nid_textmessage,
145 uint8_t q_textconfirm,
154 uint8_t nid_textmessage,
155 uint32_t timestamp_ms);
161 uint16_t target_nid_c,
162 uint16_t target_nid_rbc,
163 uint64_t target_nid_radio,
A/B's own simplified Train/Route database - fixed-size arrays describing the domain objects logic/ (p...
bool ab_gp_ertms_remove_tsr(uint8_t train_id, uint8_t nid_tsr)
Removes an active Temporary Speed Restriction (Packet 66) for a train path.
bool ab_gp_ertms_add_tsr(uint8_t train_id, uint8_t nid_tsr, uint32_t v_tsr_kmh, uint32_t d_start_m, uint32_t d_end_m)
Adds a Temporary Speed Restriction (Packet 65) for a train path.
ab_gp_ertms_train_context_t * ab_gp_ertms_engine_get_train_context(uint8_t train_id)
Retrieves the ERTMS procedure context for a given train slot.
bool ab_gp_ertms_handle_text_ack(uint8_t train_id, uint8_t nid_textmessage, uint32_t timestamp_ms)
Handles driver acknowledgement of a text message (Msg 146/158).
bool ab_gp_ertms_calc_ma_for_route(uint8_t train_id, uint16_t route_id, uint32_t ma_seq)
Computes a Movement Authority for a train on a given route.
bool ab_gp_ertms_complete_handover(uint8_t train_id)
Completes the RBC handover procedure for a train.
bool ab_gp_ertms_request_shunting(uint8_t train_id)
Requests shunting authorization for a train.
bool ab_gp_ertms_update_train_position(uint8_t train_id, uint32_t nid_lrbg, uint32_t d_lrbg_m, rbc_q_dirlrbg_t q_dirlrbg, uint32_t v_train_kmh, uint32_t m_mode, uint32_t m_level, uint32_t cycle, uint32_t timestamp_ms)
Updates train position and evaluates segment/route occupancy.
bool ab_gp_ertms_revoke_emergency_stop(uint8_t train_id, uint8_t nid_em)
Revokes an active emergency stop for a train.
bool ab_gp_ertms_validate_train_data(uint8_t train_id, uint32_t l_train_m, uint32_t v_maxtrain_kmh, uint8_t m_axleload, uint8_t m_loadinggauge, bool m_airtight, uint32_t timestamp_ms)
Validates train characteristics against site route topology.
bool ab_gp_ertms_authorize_shunting(uint8_t train_id, bool authorized)
Authorizes or rejects shunting mode for a train.
void ab_gp_ertms_engine_init(ab_gp_db_t *db)
Initializes the ERTMS procedure engine and all train contexts.
bool ab_gp_ertms_trigger_emergency_stop(uint8_t train_id, bool is_conditional, uint8_t nid_em, uint32_t d_ref_m, uint32_t d_es_m)
Triggers an emergency stop (UES or CES) for a train.
bool ab_gp_ertms_extend_ma_for_route(uint8_t train_id, uint16_t route_id)
Extends an existing Movement Authority with an additional route.
bool ab_gp_ertms_send_text_message(uint8_t train_id, uint8_t nid_textmessage, uint8_t q_textclass, uint8_t q_textconfirm, uint32_t duration_s, const char *text, rbc_packet_72_text_message_t *out_p72)
Sends a Driver Text Message (Packet 72) to a train.
bool ab_gp_ertms_announce_handover(uint8_t train_id, uint16_t target_nid_c, uint16_t target_nid_rbc, uint64_t target_nid_radio, uint32_t d_rbctr_m)
Announces an RBC handover transition order (Packet 131) for a train.
bool ab_gp_ertms_terminate_mission(uint8_t train_id, ab_gp_db_t *db)
Handles End of Mission teardown for a train.
void ab_gp_ertms_engine_step(ab_gp_db_t *db, uint32_t cycle, uint32_t timestamp_ms, uint32_t elapsed_ms)
Executes one cyclic evaluation of all active ERTMS train procedures.
ERTMS Subset-026 §5.7 Emergency Stop Management Procedure.
ERTMS Subset-026 §5.9 End of Mission (EoM) Procedure.
ERTMS Subset-026 §5.11 RBC-to-RBC Handover Procedure (Packet 131).
ERTMS Subset-026 §5.5 Movement Authority (MA) Management Procedure.
ERTMS Subset-026 §5.6 Supervised Location and Position Reporting Procedure.
ERTMS Subset-026 §5.3 Communication Session Management Procedure.
ERTMS Subset-026 5.6 Shunting initiated by driver (Level 2).
ERTMS Subset-026 §5.12 Plain Text Message to Driver (Packet 72) Procedure.
ERTMS Subset-026 §5.4 & §5.2 Validated Train Data and Start of Mission Procedure.
ERTMS Subset-026 §5.10 Temporary Speed Restriction (TSR) Procedure.
rbc_q_dirlrbg_t
Balise Group Orientation (Q_DIRLRBG) Subset-026 Section 7.5.1.16: 0 = Reverse 1 = Nominal 2 = Unknown...
ERTMS Subset-026 Chapter 5 Operational Procedure Data Types and Enums.
Complete ERTMS state and procedure context for one train slot.