SafeAPI RBC 2oo2 Generic Application
IL/CTC route and train logic for the safeAPIRBC2oo2 reference RBC
Toggle main menu visibility
Loading...
Searching...
No Matches
ab_ga_il_wire.h
Go to the documentation of this file.
1
53
54
#ifndef AB_GA_IL_WIRE_H
55
#define AB_GA_IL_WIRE_H
56
57
#include <stdbool.h>
58
#include <stdint.h>
59
60
#include "rbc_wire_types.h"
/* rbc_il_* enums, RBC_ENVELOPE_WIRE_SIZE, kinds */
61
62
#ifdef __cplusplus
63
extern
"C"
{
64
#endif
65
67
typedef
struct
68
{
69
int32_t
route_id
;
70
int32_t
start_signal
;
71
int32_t
end_signal
;
72
rbc_il_route_type_t route_type;
73
rbc_il_route_status_t route_status;
74
rbc_il_degraded_status_t degraded_status;
75
bool
release_route_request;
76
bool
first_route_in_path;
77
}
ab_ga_il_route_cmd_t
;
78
80
typedef
struct
81
{
82
rbc_il_status_t il_status;
83
}
ab_ga_il_status_msg_t
;
84
86
typedef
struct
87
{
88
int32_t
route_id
;
89
int32_t
start_signal
;
90
int32_t
end_signal
;
91
int32_t
allocated_train_nid_engine
;
92
bool
train_in_route;
93
bool
train_has_ma_in_route;
94
bool
emergency_in_route;
95
rbc_il_emergency_type_t
emergency_type
;
96
uint8_t
route_fsm_state
;
97
bool
route_fsm_is_stub
;
98
}
ab_ga_il_route_indication_t
;
99
110
bool
ab_ga_il_wire_decode_route_cmd
(
const
uint8_t frame[RBC_ENVELOPE_WIRE_SIZE],
111
ab_ga_il_route_cmd_t
*out);
112
114
bool
ab_ga_il_wire_decode_status
(
const
uint8_t frame[RBC_ENVELOPE_WIRE_SIZE],
115
ab_ga_il_status_msg_t
*out);
116
124
void
ab_ga_il_wire_encode_route_indication
(uint8_t frame[RBC_ENVELOPE_WIRE_SIZE],
125
const
ab_ga_il_route_indication_t
*in);
126
127
#ifdef __cplusplus
128
}
129
#endif
130
131
#endif
/* AB_GA_IL_WIRE_H */
ab_ga_il_wire_decode_route_cmd
bool ab_ga_il_wire_decode_route_cmd(const uint8_t frame[RBC_ENVELOPE_WIRE_SIZE], ab_ga_il_route_cmd_t *out)
Decodes + fully range-validates an RBC_MSG_IL_ROUTE_CMD frame.
Definition
ab_ga_il_wire.c:60
ab_ga_il_wire_encode_route_indication
void ab_ga_il_wire_encode_route_indication(uint8_t frame[RBC_ENVELOPE_WIRE_SIZE], const ab_ga_il_route_indication_t *in)
Encodes an RBC_MSG_IL_ROUTE_INDICATION frame (zero-fills the whole RBC_ENVELOPE_WIRE_SIZE slot first)...
Definition
ab_ga_il_wire.c:139
ab_ga_il_wire_decode_status
bool ab_ga_il_wire_decode_status(const uint8_t frame[RBC_ENVELOPE_WIRE_SIZE], ab_ga_il_status_msg_t *out)
Decodes + validates an RBC_MSG_IL_STATUS frame. Same contract.
Definition
ab_ga_il_wire.c:119
ab_ga_il_route_cmd_t
Decoded RBC_MSG_IL_ROUTE_CMD payload.
Definition
ab_ga_il_wire.h:68
ab_ga_il_route_cmd_t::route_id
int32_t route_id
Definition
ab_ga_il_wire.h:69
ab_ga_il_route_cmd_t::start_signal
int32_t start_signal
Definition
ab_ga_il_wire.h:70
ab_ga_il_route_cmd_t::end_signal
int32_t end_signal
Definition
ab_ga_il_wire.h:71
ab_ga_il_route_indication_t
RBC_MSG_IL_ROUTE_INDICATION payload (RBC -> IL).
Definition
ab_ga_il_wire.h:87
ab_ga_il_route_indication_t::allocated_train_nid_engine
int32_t allocated_train_nid_engine
Definition
ab_ga_il_wire.h:91
ab_ga_il_route_indication_t::emergency_type
rbc_il_emergency_type_t emergency_type
Definition
ab_ga_il_wire.h:95
ab_ga_il_route_indication_t::route_fsm_state
uint8_t route_fsm_state
Definition
ab_ga_il_wire.h:96
ab_ga_il_route_indication_t::route_id
int32_t route_id
Definition
ab_ga_il_wire.h:88
ab_ga_il_route_indication_t::end_signal
int32_t end_signal
Definition
ab_ga_il_wire.h:90
ab_ga_il_route_indication_t::start_signal
int32_t start_signal
Definition
ab_ga_il_wire.h:89
ab_ga_il_route_indication_t::route_fsm_is_stub
bool route_fsm_is_stub
Definition
ab_ga_il_wire.h:97
ab_ga_il_status_msg_t
Decoded RBC_MSG_IL_STATUS payload.
Definition
ab_ga_il_wire.h:81
src
AB
il
ab_ga_il_wire.h
Generated by
1.18.0