Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
rte_fsou.h File Reference

Fail-Safe Output Unit (FSOU) output permission, optional OSAdapter seam (ADR-041, proposed). More...

#include <stdbool.h>
#include <stdint.h>
#include "rte/utils/safestate/rte_safestate.h"
#include "rte/utils/status/rte_status.h"
Include dependency graph for rte_fsou.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

rte_status_t rte_fsou_grant (uint32_t cycle_id)
 Grants this channel's output permission to the FSOU for one cycle (REQ-FSOU-002).
rte_status_t rte_fsou_revoke (rte_safestate_reason_t reason)
 Withdraws this channel's output permission from the FSOU (REQ-FSOU-002).
bool rte_fsou_is_present (void)
 Tells whether an FSOU OSAdapter is registered.
void rte_fsou_report_presence (void)
 Logs once whether an FSOU is present (REQ-FSOU-003).

Detailed Description

Fail-Safe Output Unit (FSOU) output permission, optional OSAdapter seam (ADR-041, proposed).

The SCP model has a hardware FSOU that passes a site's outputs only when both channels granted permission in the current cycle window (Capella IF-SCP-02/03, baseline rule 4). This module is the RTE side of that seam: it dispatches a per-cycle grant and a revoke to whatever FSOU OSAdapter the integrator registered (rte_osadapter/fsou/rte_osadapter_fsou.h), following the ADR-005 registration pattern.

The seam is optional. With no OSAdapter registered (e.g. the container build) there is no FSOU and the software checkpoint (rte_channel_checkpoint()) stays the only output gate; rte_fsou_report_presence() says which case applies, once.

Nothing in RTE calls rte_fsou_grant() / rte_fsou_revoke() yet: where the grant hooks into the cycle is the open decision of ADR-041.

Definition in file rte_fsou.h.