|
Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
|
The framework is organized in three layers. Applications only ever call into Platform_RTE - never directly into the OS/RTOS - so retargeting to a different platform means registering a different OSAdapter (ADR-005), not rewriting application code.
Application Manager sits above all three layers, giving an application a single init/execute/shutdown lifecycle entry point.
For SIL 3/4 dual-channel deployments, ADR-008 covers build-diversity mitigation (two independently-configured toolchains compiling channel A and channel B); Cross-Comparator (2-way channel comparison) (ADR-025) is the framework primitive that answers "do channel A's and channel B's results agree?" for exactly that kind of independent peer pair - it supersedes the ADR-008-era standalone comparator module, which was never built and has since been removed outright.
Cross-compilation (Linux, QNX, etc.): docs/CROSS_COMPILATION.dox
+----------------------------------------------------------------------—+ | Generic Platform (RBC_GP) | | (ERTMS Procedures, Handover FSM, Route Management, 2oo2 Voter) | +----------------------------------------------------------------------—+ │ ▼ (rte_channel_open / rte_flow_write) +----------------------------------------------------------------------—+ | Safe Computing Platform (Platform_RTE) | +----------------------------------------------------------------------—+ │ ┌────────────────────────┼────────────────────────┐ ▼ ▼ ▼ +------------------—+ +------------------—+ +------------------—+ | safeApiProtocol- | | safeApiProtocol- | | safeApiProtocol- | | AdapterDDS | | AdapterSS098 | | AdapterEuroRadio | | (Trackside Bus) | | (RBC-RBC Fixed IP) | | (EVC-RBC Radio) | +------------------—+ +------------------—+ +------------------—+ │ │ │ │ └────────────┬───────────┘ │ ▼ │ +-----------------------------------—+ │ | safeCommFramework | │ | (SaF State Machine, 3DES MAC, KSMAC, | │ | CFM, ALE, Future RaSTA Engine) | │ +-----------------------------------—+ ▼ ▼ +----------------------------------------------------------------------—+ | OSAdapter (Platform_OS_POSIX) | | (Timers, Memory Pools, Raw OS Sockets) | +----------------------------------------------------------------------—+