Safe API Framework
0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_dual_frames.h
Go to the documentation of this file.
1
21
#ifndef RTE_DUAL_FRAMES_H
22
#define RTE_DUAL_FRAMES_H
23
24
#include <stdint.h>
25
26
#include "
rte/redundancy/dual/rte_dual_types.h
"
27
28
#ifdef __cplusplus
29
extern
"C"
{
30
#endif
31
41
typedef
enum
rte_dual_frame_kind_e
42
{
45
RTE_DUAL_FRAME_KIND_DATA
= 0,
49
RTE_DUAL_FRAME_KIND_ACK
= 1,
52
RTE_DUAL_FRAME_KIND_STATE
= 2,
55
RTE_DUAL_FRAME_KIND_HEARTBEAT
= 3
56
}
rte_dual_frame_kind_t
;
57
62
typedef
struct
rte_dual_frame_header_s
63
{
66
uint8_t
kind
;
70
uint8_t
reserved
[3];
71
}
rte_dual_frame_header_t
;
72
74
typedef
struct
rte_dual_ack_frame_s
75
{
76
rte_dual_frame_header_t
header;
80
uint32_t
acked_sequence
;
81
}
rte_dual_ack_frame_t
;
82
85
typedef
struct
rte_dual_state_frame_s
86
{
87
rte_dual_frame_header_t
header;
90
uint8_t
state
;
96
uint8_t
channel_degraded
;
97
uint16_t reserved;
109
uint64_t
timestamp_ms
;
110
}
rte_dual_state_frame_t
;
111
113
typedef
struct
rte_dual_heartbeat_frame_s
114
{
115
rte_dual_frame_header_t
header;
117
uint64_t
timestamp_ms
;
118
}
rte_dual_heartbeat_frame_t
;
119
120
#ifdef __cplusplus
121
}
122
#endif
123
124
#endif
/* RTE_DUAL_FRAMES_H */
125
rte_dual_frame_kind_t
rte_dual_frame_kind_t
Which kind of Layer-2 frame a given Layer-1 payload holds. Stored as the first byte of every rte_dual...
Definition
rte_dual_frames.h:42
RTE_DUAL_FRAME_KIND_STATE
@ RTE_DUAL_FRAME_KIND_STATE
Definition
rte_dual_frames.h:52
RTE_DUAL_FRAME_KIND_HEARTBEAT
@ RTE_DUAL_FRAME_KIND_HEARTBEAT
Definition
rte_dual_frames.h:55
RTE_DUAL_FRAME_KIND_ACK
@ RTE_DUAL_FRAME_KIND_ACK
Definition
rte_dual_frames.h:49
RTE_DUAL_FRAME_KIND_DATA
@ RTE_DUAL_FRAME_KIND_DATA
Definition
rte_dual_frames.h:45
rte_dual_types.h
Shared enums for the rte_dual module (ADR-020): dual-instance state negotiation and the redundant,...
rte_dual_ack_frame_t
RTE_DUAL_FRAME_KIND_ACK payload.
Definition
rte_dual_frames.h:75
rte_dual_ack_frame_t::acked_sequence
uint32_t acked_sequence
Definition
rte_dual_frames.h:80
rte_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
rte_dual_frames.h:63
rte_dual_frame_header_t::kind
uint8_t kind
Definition
rte_dual_frames.h:66
rte_dual_frame_header_t::reserved
uint8_t reserved[3]
Definition
rte_dual_frames.h:70
rte_dual_heartbeat_frame_t
RTE_DUAL_FRAME_KIND_HEARTBEAT payload - connection maintenance heartbeat.
Definition
rte_dual_frames.h:114
rte_dual_heartbeat_frame_t::timestamp_ms
uint64_t timestamp_ms
Definition
rte_dual_frames.h:117
rte_dual_state_frame_t
RTE_DUAL_FRAME_KIND_STATE payload - rte_dual_negotiator_t's own periodic beacon.
Definition
rte_dual_frames.h:86
rte_dual_state_frame_t::timestamp_ms
uint64_t timestamp_ms
Definition
rte_dual_frames.h:109
rte_dual_state_frame_t::channel_degraded
uint8_t channel_degraded
Definition
rte_dual_frames.h:96
rte_dual_state_frame_t::state
uint8_t state
Definition
rte_dual_frames.h:90
include
rte
redundancy
dual
rte_dual_frames.h
Generated by
1.18.0