Safe API Framework
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
sapi_dual_msgchannel.h
Go to the documentation of this file.
1
41#ifndef SAPI_DUAL_MSGCHANNEL_H
42#define SAPI_DUAL_MSGCHANNEL_H
43
44#include <stdint.h>
45
50
51#ifdef __cplusplus
52extern "C" {
53#endif
54
58#define SAPI_DUAL_MSGCHANNEL_MAX_PAYLOAD 248U
59
67typedef struct sapi_dual_msgchannel_s
68{
70 uint32_t sender_id;
72 uint32_t next_sequence;
75
77typedef struct sapi_dual_msgchannel_config_s
78{
87 uint32_t sender_id;
93
102 const sapi_dual_msgchannel_config_t *config);
103
125 const uint8_t *payload,
126 uint8_t payload_size,
127 sapi_duration_ms_t timeout_ms,
128 uint32_t *out_sequence);
129
159 uint8_t *out_payload,
160 uint8_t payload_max_size,
161 sapi_duration_ms_t timeout_ms,
162 uint8_t *out_payload_size,
163 uint32_t *out_sequence);
164
178
179#ifdef __cplusplus
180}
181#endif
182
183#endif /* SAPI_DUAL_MSGCHANNEL_H */
184
sapi_status_t sapi_dual_msgchannel_send(sapi_dual_msgchannel_t *channel, const uint8_t *payload, uint8_t payload_size, sapi_duration_ms_t timeout_ms, uint32_t *out_sequence)
Wraps payload in a sapi_vital_message_t (this channel's own sender_id and next sequence_number) and s...
sapi_status_t sapi_dual_msgchannel_init(sapi_dual_msgchannel_t *channel, const sapi_dual_msgchannel_config_t *config)
Initializes a sapi_dual_msgchannel_t: starts both sequence counters at 0.
sapi_status_t sapi_dual_msgchannel_reset_sequence(sapi_dual_msgchannel_t *channel)
Resets both sequence counters to 0. Intended to be called by the caller (typically sapi_dual_channel_...
sapi_status_t sapi_dual_msgchannel_receive(sapi_dual_msgchannel_t *channel, uint8_t *out_payload, uint8_t payload_max_size, sapi_duration_ms_t timeout_ms, uint8_t *out_payload_size, uint32_t *out_sequence)
Receives one frame over config->link, blocking at most timeout_ms, verifies its CRC-64 and sequence c...
sapi_status_t
Common result/status codes.
Definition sapi_status.h:27
uint32_t sapi_duration_ms_t
Definition sapi_types.h:27
Checksum and CRC utilities for data integrity in redundant systems.
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
Common fixed-width types and the caller-owned-storage handle pattern used by every OAL service (see A...
Configuration for sapi_dual_msgchannel_init().
One sapi_dual_msgchannel_t instance's state. Caller-owned storage (REQ-DUAL-MSGCHANNEL-001); opaque i...
sapi_netlink_handle_t link