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
ab_gp_proc_position.h File Reference

ERTMS Subset-026 §5.6 Supervised Location and Position Reporting Procedure. More...

Include dependency graph for ab_gp_proc_position.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool ab_gp_proc_position_update (ab_gp_ertms_train_context_t *ctx, 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)
 Processes an inbound Position Report (Msg 136 + Packet 0).
bool ab_gp_proc_position_is_train_in_route (const ab_gp_ertms_train_context_t *ctx, uint16_t route_id)
 Checks if the train is currently located within a specific interlocking route.
bool ab_gp_proc_position_has_exceeded_ma (const ab_gp_ertms_train_context_t *ctx)
 Checks if the train has reached or exceeded its Limit of Authority (LOA / EOA).

Detailed Description

ERTMS Subset-026 §5.6 Supervised Location and Position Reporting Procedure.

Implements SIL 4 C99 train position supervision, track segment tracking, route progress computation, and balise passage verification.

Definition in file ab_gp_proc_position.h.

Function Documentation

◆ ab_gp_proc_position_update()

bool ab_gp_proc_position_update ( ab_gp_ertms_train_context_t * ctx,
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 )

Processes an inbound Position Report (Msg 136 + Packet 0).

Parameters
[in,out]ctxTrain ERTMS context.
[in]nid_lrbgLast Relevant Balise Group NID.
[in]d_lrbg_mReported distance from LRBG in meters.
[in]q_dirlrbgReported direction relative to LRBG orientation.
[in]v_train_kmhReported train speed in km/h.
[in]m_modeActive ETCS mode.
[in]m_levelActive ETCS level.
[in]cycleCurrent RTE execution cycle.
[in]timestamp_msCurrent timestamp in milliseconds.
Returns
true if position is valid and updated, false otherwise.

Definition at line 10 of file ab_gp_proc_position.c.

◆ ab_gp_proc_position_is_train_in_route()

bool ab_gp_proc_position_is_train_in_route ( const ab_gp_ertms_train_context_t * ctx,
uint16_t route_id )

Checks if the train is currently located within a specific interlocking route.

Parameters
[in]ctxTrain ERTMS context.
[in]route_idInterlocking route ID to check.
Returns
true if train is within the route, false otherwise.

Definition at line 108 of file ab_gp_proc_position.c.

◆ ab_gp_proc_position_has_exceeded_ma()

bool ab_gp_proc_position_has_exceeded_ma ( const ab_gp_ertms_train_context_t * ctx)

Checks if the train has reached or exceeded its Limit of Authority (LOA / EOA).

Parameters
[in]ctxTrain ERTMS context.
Returns
true if train is past granted MA length, false otherwise.

Definition at line 135 of file ab_gp_proc_position.c.