RTE RBC 2oo2 Generic Application 0.1.0 build 308eda7
IL/CTC route and train logic for the RBC_GP reference RBC
Loading...
Searching...
No Matches
ab_ga_ctc.h
Go to the documentation of this file.
1
35#ifndef RTE_EXAMPLE_AB_GA_CTC_H
36#define RTE_EXAMPLE_AB_GA_CTC_H
37
38#include <stdint.h>
39
40#include "rte/utils/status/rte_status.h"
41
42#include "rbc_wire_types.h"
43#include "ga_interface.h" /* ab_gp_train_session_t (opaque), session getters/setters,
44 * GP registration - the ONLY GP header this module
45 * (or any GA module) ever includes */
46#include <stdbool.h>
47
57void ab_ga_ctc_on_route_context_changed(const ab_gp_route_context_t *ctx, ab_gp_route_update_type_t update_type);
58
67void ab_ga_ctc_on_train_context_changed(const ab_gp_train_context_t *ctx, ab_gp_train_update_type_t update_type);
68
80void ab_ga_ctc_build_connected(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t d_lrbg);
81
88void ab_ga_ctc_build_ma_granted(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t ma_seq,
89 uint32_t ma_length);
90
96void ab_ga_ctc_build_ma_extended(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t ma_seq,
97 uint32_t ma_length);
98
110
142void ab_ga_ctc_build_train_info(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t d_lrbg,
143 uint32_t ma_seq, uint32_t granted_length, bool ma_granted,
144 uint16_t front_signal, uint32_t dist_to_front_signal, uint16_t target_signal,
145 uint32_t nid_lrbg, uint32_t v_train, uint32_t m_mode);
146
152
191uint8_t ab_ga_ctc_build_outputs(const ab_gp_train_session_t *sessions, ab_gp_db_t *db,
192 ab_gp_ctc_pending_output_t out[AB_GP_CTC_MAX_PENDING_OUTPUTS]);
193
214void ab_ga_ctc_confirm_outputs_sent(ab_gp_train_session_t *sessions);
215
216#endif /* RTE_EXAMPLE_AB_GA_CTC_H */
void ab_ga_ctc_build_connected(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t d_lrbg)
Builds and wire-encodes the outbound CTC_CONNECTED indication for train_id (kind=RBC_MSG_CTC_CONNECTE...
Definition ab_ga_ctc.c:109
void ab_ga_ctc_build_ma_granted(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t ma_seq, uint32_t ma_length)
Builds and wire-encodes the outbound CTC_MA_GRANTED indication for train_id (kind=RBC_MSG_CTC_MA_GRAN...
Definition ab_ga_ctc.c:120
void ab_ga_ctc_build_train_info(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t d_lrbg, uint32_t ma_seq, uint32_t granted_length, bool ma_granted, uint16_t front_signal, uint32_t dist_to_front_signal, uint16_t target_signal, uint32_t nid_lrbg, uint32_t v_train, uint32_t m_mode)
Builds and wire-encodes a severity-leveled operational alarm (kind=RBC_MSG_CTC_ALARM) directly into o...
Definition ab_ga_ctc.c:149
void ab_ga_ctc_confirm_outputs_sent(ab_gp_train_session_t *sessions)
Consumes what the immediately-preceding ab_ga_ctc_build_outputs() call actually included in its own o...
Definition ab_ga_ctc.c:288
void ab_ga_ctc_on_train_context_changed(const ab_gp_train_context_t *ctx, ab_gp_train_update_type_t update_type)
GA's dispatch module fans every train-context change here - stores the received snapshot and marks th...
Definition ab_ga_ctc.c:337
uint8_t ab_ga_ctc_build_outputs(const ab_gp_train_session_t *sessions, ab_gp_db_t *db, ab_gp_ctc_pending_output_t out[AB_GP_CTC_MAX_PENDING_OUTPUTS])
Decides which trains need a CTC indication THIS cycle and builds all of them - see this file's own mo...
Definition ab_ga_ctc.c:186
void ab_ga_ctc_build_ma_extended(uint8_t out[RBC_ENVELOPE_WIRE_SIZE], uint8_t train_id, uint32_t ma_seq, uint32_t ma_length)
Builds and wire-encodes the outbound CTC_MA_EXTENDED indication for train_id (kind=RBC_MSG_CTC_MA_EXT...
Definition ab_ga_ctc.c:133
void ab_ga_ctc_on_route_context_changed(const ab_gp_route_context_t *ctx, ab_gp_route_update_type_t update_type)
GA's single dispatch module (safeAPIRBC2oo2GA/src/AB/main/ ab_ga_dispatch.c) is the ONLY thing that r...
Definition ab_ga_ctc.c:323