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
RBC_GA

Product: RBC_GA, the Generic Application of the reference RBC (repository RBC_GA). Layer: Generic Application, above RBC_GP. Language: C99. Output: librte_rbc2oo2_ga.{dylib,so} (rbc2oo2::ga). Assessment unit: Generic Application (assessed per application class), see ../../docs/safety/CERTIFICATION_PLAN.dox.

Responsibility

The signalling adaptation logic that turns interlocking and CTC events into decisions for RBC_GP:

  • IL adapter: tracks route add and release from the interlocking; on GP's route connect and disconnect it grants or shrinks the Movement Authority.
  • CTC adapter: builds the CTC indications (train connected, MA granted, MA extended, and the on-change CTC_TRAIN_INFO telemetry).
  • MA logic adaptation: the single entry point GP calls; registers GA's callbacks with GP.
  • Site projection: a route-only view of site data (ab_siteGA.h), implemented by RBC_SA.

It does not own train sessions, the route and train database, ERTMS procedures, cross-comparison or communication. Those belong to RBC_GP. It never decides which train a route belongs to; GP's position-based connect gate does.

Everything marked project-specific (the site projection and any project rules) is replaced per project.

Interfaces exposed to other products

Interface Form Consumed by Notes
Init entry point ab_ga_ma_adaptation_init() C function, declared in RBC_GP's ga_interface.h RBC_GP The only bare call from GP into GA
Shared library librte_rbc2oo2_ga rbc2oo2::ga, installed by RBC_GP into dist/<platform>/lib/ RBC_GP at run time Must sit next to the real librte_gp
Site contract include/ab_siteGA.h Reduced route table (id, start_signal, end_signal, length_m) RBC_SA implements it as sa::site::ga Hand-kept in sync with GP's full topology

Interfaces required

Needs From How
ga_interface.h, common/ (wire types, site config) RBC_GP Header-only reach into GP's source tree (RTE_RBC2OO2GP_DIR)
sa::site::ga RBC_SA Static library, RTE_RBC2OO2SA_DIR or installed package
Status, buffer, logging, app manager Platform_RTE rte::* targets

Build and test

cmake -S . -B build # standalone: just the shared library
cmake --build build && ctest --test-dir build --output-on-failure

Where to read next

In practice GA is built as part of RBC_GP, which adds it as a subdirectory and also produces the role C IL and CTC gateway binaries. Rules and details: CLAUDE.md; design history: docs/DESIGN_NOTES.dox.