|
Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
|
RTE_DUAL_FRAME_KIND_STATE payload - rte_dual_negotiator_t's own periodic beacon. More...
#include <rte_dual_frames.h>
Data Fields | |
| rte_dual_frame_header_t | header |
| uint8_t | state |
| uint8_t | channel_degraded |
| uint16_t | reserved |
| uint64_t | timestamp_ms |
RTE_DUAL_FRAME_KIND_STATE payload - rte_dual_negotiator_t's own periodic beacon.
Definition at line 85 of file rte_dual_frames.h.
| rte_dual_frame_header_t rte_dual_state_frame_t::header |
Definition at line 87 of file rte_dual_frames.h.
| uint8_t rte_dual_state_frame_t::state |
Sender's own rte_dual_state_t, stored as uint8_t for a stable wire size.
Definition at line 90 of file rte_dual_frames.h.
| uint8_t rte_dual_state_frame_t::channel_degraded |
Sender's own DualChannel aggregate status at beacon time: 0 = RTE_DUAL_CHANNEL_STATUS_FULL, 1 = RTE_DUAL_CHANNEL_STATUS_DEGRADED or RTE_DUAL_CHANNEL_STATUS_DOWN. This is what lets the peer distinguish HOTSTANDBY from COLDSTANDBY for itself - see ADR-020 section 3.
Definition at line 96 of file rte_dual_frames.h.
| uint16_t rte_dual_state_frame_t::reserved |
Definition at line 97 of file rte_dual_frames.h.
| uint64_t rte_dual_state_frame_t::timestamp_ms |
Sender's own fixed value, captured ONCE (typically at rte_dual_negotiator_init() time) and repeated unchanged on every beacon this instance ever sends - NOT a live "now" refreshed each send. Used for the same older-timestamp-wins startup tie-break RBC_GP's former site.c used (decide_online()): both sides must keep sending the same value across repeated beacons for that comparison to stay stable and reproducible rather than racing by whatever margin two live clocks happened to differ by on a given cycle. Not a cross-site clock synchronization claim either way (see rte_clocksync.h's own file-level note: never assume zero jitter).
Definition at line 109 of file rte_dual_frames.h.