demo-epb  v1.0
Elektrische Parkbremse - slohmaier Dev Process Demo
safety_manager.h
gehe zur Dokumentation dieser Datei
1 /**
2  * @file safety_manager.h
3  * @brief Safety Manager — Hill-Hold + Auto-Apply Logik.
4  *
5  * @arch SWA-001
6  * @reqs SWE-007 SWE-008 SWE-009 SWE-010
7  *
8  * ASIL: D.
9  *
10  * State Machine:
11  * IDLE --(engine_off & v<0.5)--> AUTO_APPLY_ARMED
12  * AUTO_APPLY_ARMED --(40 * 50ms = 2s)--> AUTO_APPLY_TRIGGERED
13  * AUTO_APPLY_TRIGGERED --(state==APPLIED)--> IDLE
14  *
15  * IDLE --(grade>5% & v<0.5 & brake)--> HILL_HOLD_ARMED
16  * HILL_HOLD_ARMED --(!brake)--> HILL_HOLD_ACTIVE
17  * HILL_HOLD_ACTIVE --(v>2 km/h | state==APPLIED)--> IDLE
18  */
19 #ifndef SAFETY_MANAGER_H
20 #define SAFETY_MANAGER_H
21 
22 #include "epb_types.h"
23 
24 typedef enum {
31 
32 typedef struct {
37  EpbState current_state; /* aus Apply Controller */
38 } SafetyInputs;
39 
40 /* Schwellwerte als Konstanten, damit Tests darauf zugreifen koennen. */
41 #define SAFETY_AUTO_APPLY_DELAY_50MS 40U /* 40 * 50ms = 2.0 s */
42 #define SAFETY_STANDSTILL_KMH 0.5f
43 #define SAFETY_RELEASE_KMH 2.0f
44 #define SAFETY_HILLHOLD_GRADE_PCT 5.0f
45 
47 void safety_mgr_step_50ms(const SafetyInputs* in);
50 
51 #endif /* SAFETY_MANAGER_H */
Gemeinsame Typen fuer die EPB-Software.
EpbState
Definition: epb_types.h:22
EpbStatus
Definition: epb_types.h:13
SafetyState
@ SAFETY_HILL_HOLD_ARMED
@ SAFETY_AUTO_APPLY_TRIGGERED
@ SAFETY_IDLE
@ SAFETY_HILL_HOLD_ACTIVE
@ SAFETY_AUTO_APPLY_ARMED
void safety_mgr_step_50ms(const SafetyInputs *in)
bool safety_mgr_apply_requested(void)
EpbStatus safety_mgr_init(void)
SafetyState safety_mgr_get_state(void)
float grade_percent
float vehicle_speed_kmh
EpbState current_state
bool brake_pedal_pressed