Safe API Framework
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Toggle main menu visibility
Loading...
Searching...
No Matches
sapi_dual_frames.h
Go to the documentation of this file.
1
21
#ifndef SAPI_DUAL_FRAMES_H
22
#define SAPI_DUAL_FRAMES_H
23
24
#include <stdint.h>
25
26
#include "
safeapi/redundancy/dual/sapi_dual_types.h
"
27
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
31
41
typedef
enum
sapi_dual_frame_kind_e
42
{
45
SAPI_DUAL_FRAME_KIND_DATA
= 0,
49
SAPI_DUAL_FRAME_KIND_ACK
= 1,
52
SAPI_DUAL_FRAME_KIND_STATE
= 2,
55
SAPI_DUAL_FRAME_KIND_HEARTBEAT
= 3
56
}
sapi_dual_frame_kind_t
;
57
62
typedef
struct
sapi_dual_frame_header_s
63
{
66
uint8_t
kind
;
70
uint8_t
reserved
[3];
71
}
sapi_dual_frame_header_t
;
72
74
typedef
struct
sapi_dual_ack_frame_s
75
{
76
sapi_dual_frame_header_t
header;
80
uint32_t
acked_sequence
;
81
}
sapi_dual_ack_frame_t
;
82
85
typedef
struct
sapi_dual_state_frame_s
86
{
87
sapi_dual_frame_header_t
header;
90
uint8_t
state
;
96
uint8_t
channel_degraded
;
97
uint16_t reserved;
109
uint64_t
timestamp_ms
;
110
}
sapi_dual_state_frame_t
;
111
113
typedef
struct
sapi_dual_heartbeat_frame_s
114
{
115
sapi_dual_frame_header_t
header;
117
uint64_t
timestamp_ms
;
118
}
sapi_dual_heartbeat_frame_t
;
119
120
#ifdef __cplusplus
121
}
122
#endif
123
124
#endif
/* SAPI_DUAL_FRAMES_H */
125
sapi_dual_frame_kind_t
sapi_dual_frame_kind_t
Which kind of Layer-2 frame a given Layer-1 payload holds. Stored as the first byte of every sapi_dua...
Definition
sapi_dual_frames.h:42
SAPI_DUAL_FRAME_KIND_STATE
@ SAPI_DUAL_FRAME_KIND_STATE
Definition
sapi_dual_frames.h:52
SAPI_DUAL_FRAME_KIND_HEARTBEAT
@ SAPI_DUAL_FRAME_KIND_HEARTBEAT
Definition
sapi_dual_frames.h:55
SAPI_DUAL_FRAME_KIND_ACK
@ SAPI_DUAL_FRAME_KIND_ACK
Definition
sapi_dual_frames.h:49
SAPI_DUAL_FRAME_KIND_DATA
@ SAPI_DUAL_FRAME_KIND_DATA
Definition
sapi_dual_frames.h:45
sapi_dual_types.h
Shared enums for the sapi_dual module (ADR-020): dual-instance state negotiation and the redundant,...
sapi_dual_ack_frame_t
SAPI_DUAL_FRAME_KIND_ACK payload.
Definition
sapi_dual_frames.h:75
sapi_dual_ack_frame_t::acked_sequence
uint32_t acked_sequence
Definition
sapi_dual_frames.h:80
sapi_dual_frame_header_t
Common 4-byte header prefixing every Layer-2 frame; kept a fixed 4 bytes (not just 1) so the fields t...
Definition
sapi_dual_frames.h:63
sapi_dual_frame_header_t::kind
uint8_t kind
Definition
sapi_dual_frames.h:66
sapi_dual_frame_header_t::reserved
uint8_t reserved[3]
Definition
sapi_dual_frames.h:70
sapi_dual_heartbeat_frame_t
SAPI_DUAL_FRAME_KIND_HEARTBEAT payload - connection maintenance heartbeat.
Definition
sapi_dual_frames.h:114
sapi_dual_heartbeat_frame_t::timestamp_ms
uint64_t timestamp_ms
Definition
sapi_dual_frames.h:117
sapi_dual_state_frame_t
SAPI_DUAL_FRAME_KIND_STATE payload - sapi_dual_negotiator_t's own periodic beacon.
Definition
sapi_dual_frames.h:86
sapi_dual_state_frame_t::timestamp_ms
uint64_t timestamp_ms
Definition
sapi_dual_frames.h:109
sapi_dual_state_frame_t::state
uint8_t state
Definition
sapi_dual_frames.h:90
sapi_dual_state_frame_t::channel_degraded
uint8_t channel_degraded
Definition
sapi_dual_frames.h:96
include
safeapi
redundancy
dual
sapi_dual_frames.h
Generated by
1.18.0