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_route_fsm.h
Go to the documentation of this file.
1
20
21
#ifndef AB_GA_ROUTE_FSM_H
22
#define AB_GA_ROUTE_FSM_H
23
24
#include <stdbool.h>
25
#include <stdint.h>
26
27
#include "
ab_ga_il_wire.h
"
/* ab_ga_il_route_cmd_t */
28
#include "ga_interface.h"
/* ab_gp_db_t + ab_gp_db_route_get/set_fsm_state() */
29
30
#ifdef __cplusplus
31
extern
"C"
{
32
#endif
33
38
typedef
enum
39
{
40
AB_GA_ROUTE_STATE_NO_ROUTE
= 0,
41
AB_GA_ROUTE_STATE_LOCKED
= 1,
42
AB_GA_ROUTE_STATE_FS
= 2,
43
AB_GA_ROUTE_STATE_OS
= 3,
44
AB_GA_ROUTE_STATE_SH
= 4,
45
AB_GA_ROUTE_STATE_USED
= 5,
46
AB_GA_ROUTE_STATE_DEGRADED
= 6
47
}
ab_ga_route_state_t
;
48
50
typedef
struct
51
{
52
ab_ga_route_state_t
from
;
53
ab_ga_route_state_t
to
;
54
bool
changed
;
55
bool
is_stub
;
57
bool
is_release
;
58
}
ab_ga_route_fsm_result_t
;
59
65
ab_ga_route_fsm_result_t
ab_ga_route_fsm_eval
(
ab_ga_route_state_t
from,
66
const
ab_ga_il_route_cmd_t
*cmd);
67
81
ab_ga_route_fsm_result_t
ab_ga_route_fsm_step
(ab_gp_db_t *db, uint16_t route_id,
82
const
ab_ga_il_route_cmd_t
*cmd,
83
uint32_t cycle,
const
char
*role_tag);
84
85
#ifdef __cplusplus
86
}
87
#endif
88
89
#endif
/* AB_GA_ROUTE_FSM_H */
ab_ga_il_wire.h
Dedicated IL <-> RBC message payloads and codec (wire kinds RBC_MSG_IL_ROUTE_CMD / RBC_MSG_IL_STATUS ...
ab_ga_route_fsm_step
ab_ga_route_fsm_result_t ab_ga_route_fsm_step(ab_gp_db_t *db, uint16_t route_id, const ab_ga_il_route_cmd_t *cmd, uint32_t cycle, const char *role_tag)
Applies cmd to the route's FSM: reads the current state via ab_gp_db_route_get_fsm_state(),...
Definition
ab_ga_route_fsm.c:123
ab_ga_route_fsm_eval
ab_ga_route_fsm_result_t ab_ga_route_fsm_eval(ab_ga_route_state_t from, const ab_ga_il_route_cmd_t *cmd)
Computes the target state for (from, cmd), WITHOUT logging or touching any storage - pure,...
Definition
ab_ga_route_fsm.c:30
ab_ga_route_state_t
ab_ga_route_state_t
Per-route lifecycle state. Stored raw (uint32_t) on GP's route DB record - keep these values stable.
Definition
ab_ga_route_fsm.h:39
AB_GA_ROUTE_STATE_LOCKED
@ AB_GA_ROUTE_STATE_LOCKED
Definition
ab_ga_route_fsm.h:41
AB_GA_ROUTE_STATE_DEGRADED
@ AB_GA_ROUTE_STATE_DEGRADED
Definition
ab_ga_route_fsm.h:46
AB_GA_ROUTE_STATE_NO_ROUTE
@ AB_GA_ROUTE_STATE_NO_ROUTE
Definition
ab_ga_route_fsm.h:40
AB_GA_ROUTE_STATE_OS
@ AB_GA_ROUTE_STATE_OS
Definition
ab_ga_route_fsm.h:43
AB_GA_ROUTE_STATE_SH
@ AB_GA_ROUTE_STATE_SH
Definition
ab_ga_route_fsm.h:44
AB_GA_ROUTE_STATE_USED
@ AB_GA_ROUTE_STATE_USED
Definition
ab_ga_route_fsm.h:45
AB_GA_ROUTE_STATE_FS
@ AB_GA_ROUTE_STATE_FS
Definition
ab_ga_route_fsm.h:42
ab_ga_il_route_cmd_t
Decoded RBC_MSG_IL_ROUTE_CMD payload.
Definition
ab_ga_il_wire.h:68
ab_ga_route_fsm_result_t
Result of applying one IL route command to a route's FSM.
Definition
ab_ga_route_fsm.h:51
ab_ga_route_fsm_result_t::changed
bool changed
Definition
ab_ga_route_fsm.h:54
ab_ga_route_fsm_result_t::to
ab_ga_route_state_t to
Definition
ab_ga_route_fsm.h:53
ab_ga_route_fsm_result_t::is_release
bool is_release
Definition
ab_ga_route_fsm.h:57
ab_ga_route_fsm_result_t::from
ab_ga_route_state_t from
Definition
ab_ga_route_fsm.h:52
ab_ga_route_fsm_result_t::is_stub
bool is_stub
Definition
ab_ga_route_fsm.h:55
src
AB
il
ab_ga_route_fsm.h
Generated by
1.18.0