Safe Communication Framework
0.1.0 build feea4f9
ERTMS/ETCS safe communication (Subset-037 EuroRadio, Subset-098 RBC/RBC), CENELEC EN 50128 SIL 4 oriented
Toggle main menu visibility
Loading...
Searching...
No Matches
protocol_adapter.h
Go to the documentation of this file.
1
13
#ifndef SAFECOMM_PROTOCOL_ADAPTER_H
14
#define SAFECOMM_PROTOCOL_ADAPTER_H
15
16
#include <stddef.h>
17
#include <stdint.h>
18
#include <stdbool.h>
19
20
#include "
safecomm/status.h
"
21
#include "
safecomm/saf/saf.h
"
22
#include "
safecomm/transport/transport.h
"
23
24
#ifdef __cplusplus
25
extern
"C"
{
26
#endif
27
29
typedef
enum
30
{
31
SAFECOMM_SUBLAYER_SAF_SS037
= 1,
32
SAFECOMM_SUBLAYER_SAF_SS098
= 2,
33
SAFECOMM_SUBLAYER_RASTA
= 3
34
}
safecomm_sublayer_type_t
;
35
37
typedef
struct
38
{
39
safecomm_sublayer_type_t
sublayer;
40
safecomm_saf_role_t
role;
41
uint32_t id_self;
42
uint32_t id_peer;
43
uint8_t kmac[
SAFECOMM_MAC_KEY_LEN
];
44
uint32_t t_connect_ms;
45
uint32_t t_supervision_ms;
46
}
safecomm_adapter_config_t
;
47
49
typedef
struct
50
{
51
safecomm_saf_conn_t
conn;
52
safecomm_adapter_config_t
cfg;
53
bool
is_open;
54
}
safecomm_adapter_t
;
55
59
typedef
struct
60
{
61
safecomm_status_t
(*open)(
safecomm_adapter_t
*adapter,
62
const
safecomm_adapter_config_t
*config,
63
const
safecomm_transport_t
*transport);
64
safecomm_status_t
(*send)(
safecomm_adapter_t
*adapter,
65
const
void
*data,
size_t
size);
66
safecomm_status_t
(*receive)(
safecomm_adapter_t
*adapter,
67
void
*out_buf,
size_t
buffer_size,
68
size_t
*out_len);
69
safecomm_status_t
(*close)(
safecomm_adapter_t
*adapter);
70
}
safecomm_protocol_ops_t
;
71
75
const
safecomm_protocol_ops_t
*
safecomm_protocol_adapter_get_ss098
(
void
);
76
80
const
safecomm_protocol_ops_t
*
safecomm_protocol_adapter_get_ss037
(
void
);
81
85
const
safecomm_protocol_ops_t
*
safecomm_protocol_adapter_get_rasta
(
void
);
86
87
#ifdef __cplusplus
88
}
89
#endif
90
91
#endif
/* SAFECOMM_PROTOCOL_ADAPTER_H */
SAFECOMM_MAC_KEY_LEN
#define SAFECOMM_MAC_KEY_LEN
Definition
mac.h:34
safecomm_protocol_adapter_get_rasta
const safecomm_protocol_ops_t * safecomm_protocol_adapter_get_rasta(void)
Retrieve the RaSTA (DIN VDE V 0831-102) Protocol Adapter operations vtable.
Definition
protocol_adapter.c:128
safecomm_sublayer_type_t
safecomm_sublayer_type_t
Safety sublayer protocol selection.
Definition
protocol_adapter.h:30
SAFECOMM_SUBLAYER_RASTA
@ SAFECOMM_SUBLAYER_RASTA
Definition
protocol_adapter.h:33
SAFECOMM_SUBLAYER_SAF_SS037
@ SAFECOMM_SUBLAYER_SAF_SS037
Definition
protocol_adapter.h:31
SAFECOMM_SUBLAYER_SAF_SS098
@ SAFECOMM_SUBLAYER_SAF_SS098
Definition
protocol_adapter.h:32
safecomm_protocol_adapter_get_ss098
const safecomm_protocol_ops_t * safecomm_protocol_adapter_get_ss098(void)
Retrieve the Subset-098 RBC-RBC Protocol Adapter operations vtable.
Definition
protocol_adapter.c:118
safecomm_protocol_adapter_get_ss037
const safecomm_protocol_ops_t * safecomm_protocol_adapter_get_ss037(void)
Retrieve the Subset-037 EuroRadio Protocol Adapter operations vtable.
Definition
protocol_adapter.c:123
saf.h
Safety Functional (SaF) sub-layer — shared by Subset-037 and Subset-098 (ERTMS/ETCS Subset-037 §7).
safecomm_saf_role_t
safecomm_saf_role_t
SaF connection role.
Definition
saf.h:60
status.h
Common status codes for the Safe Communication Framework.
safecomm_status_t
safecomm_status_t
Result of a Safe Communication Framework operation.
Definition
status.h:17
safecomm_adapter_config_t
Adapter connection endpoint configuration.
Definition
protocol_adapter.h:38
safecomm_adapter_t
Adapter handle representation.
Definition
protocol_adapter.h:50
safecomm_protocol_ops_t
SAPI-compatible operations vtable for safe communication channels.
Definition
protocol_adapter.h:60
safecomm_saf_conn_t
SaF connection object. Caller-allocated, zero-initialised, opaque in practice — fields are not part o...
Definition
saf.h:92
safecomm_transport_t
A consumer-supplied bearer the SaF layer runs over.
Definition
transport.h:56
transport.h
Transport abstraction for the Safe Communication Framework.
include
safecomm
adapter
protocol_adapter.h
Generated by
1.18.0