demo-epb  v1.0
Elektrische Parkbremse - slohmaier Dev Process Demo
safety_manager.h-Dateireferenz

Safety Manager — Hill-Hold + Auto-Apply Logik. Mehr ...

#include "epb_types.h"

gehe zum Quellcode dieser Datei

Datenstrukturen

struct  SafetyInputs
 

Makrodefinitionen

#define SAFETY_AUTO_APPLY_DELAY_50MS   40U /* 40 * 50ms = 2.0 s */
 
#define SAFETY_STANDSTILL_KMH   0.5f
 
#define SAFETY_RELEASE_KMH   2.0f
 
#define SAFETY_HILLHOLD_GRADE_PCT   5.0f
 

Aufzählungen

enum  SafetyState {
  SAFETY_IDLE = 0 , SAFETY_HILL_HOLD_ARMED = 1 , SAFETY_HILL_HOLD_ACTIVE = 2 , SAFETY_AUTO_APPLY_ARMED = 3 ,
  SAFETY_AUTO_APPLY_TRIGGERED = 4
}
 

Funktionen

EpbStatus safety_mgr_init (void)
 
void safety_mgr_step_50ms (const SafetyInputs *in)
 
bool safety_mgr_apply_requested (void)
 
SafetyState safety_mgr_get_state (void)
 

Ausführliche Beschreibung

Safety Manager — Hill-Hold + Auto-Apply Logik.

Architecture-Element:
SWA-001
Requirements:
SWE-007 SWE-008 SWE-009 SWE-010

ASIL: D.

State Machine: IDLE –(engine_off & v<0.5)--> AUTO_APPLY_ARMED AUTO_APPLY_ARMED –(40 * 50ms = 2s)--> AUTO_APPLY_TRIGGERED AUTO_APPLY_TRIGGERED –(state==APPLIED)--> IDLE

IDLE –(grade>5% & v<0.5 & brake)--> HILL_HOLD_ARMED HILL_HOLD_ARMED –(!brake)--> HILL_HOLD_ACTIVE HILL_HOLD_ACTIVE –(v>2 km/h | state==APPLIED)--> IDLE

Definiert in Datei safety_manager.h.

Makro-Dokumentation

◆ SAFETY_AUTO_APPLY_DELAY_50MS

#define SAFETY_AUTO_APPLY_DELAY_50MS   40U /* 40 * 50ms = 2.0 s */

Definiert in Zeile 41 der Datei safety_manager.h.

◆ SAFETY_HILLHOLD_GRADE_PCT

#define SAFETY_HILLHOLD_GRADE_PCT   5.0f

Definiert in Zeile 44 der Datei safety_manager.h.

◆ SAFETY_RELEASE_KMH

#define SAFETY_RELEASE_KMH   2.0f

Definiert in Zeile 43 der Datei safety_manager.h.

◆ SAFETY_STANDSTILL_KMH

#define SAFETY_STANDSTILL_KMH   0.5f

Definiert in Zeile 42 der Datei safety_manager.h.

Dokumentation der Aufzählungstypen

◆ SafetyState

Aufzählungswerte
SAFETY_IDLE 
SAFETY_HILL_HOLD_ARMED 
SAFETY_HILL_HOLD_ACTIVE 
SAFETY_AUTO_APPLY_ARMED 
SAFETY_AUTO_APPLY_TRIGGERED 

Definiert in Zeile 24 der Datei safety_manager.h.

Dokumentation der Funktionen

◆ safety_mgr_apply_requested()

bool safety_mgr_apply_requested ( void  )

Definiert in Zeile 131 der Datei safety_manager.c.

Benutzt SafetyCtx::apply_requested und s_ctx.

◆ safety_mgr_get_state()

SafetyState safety_mgr_get_state ( void  )

Definiert in Zeile 136 der Datei safety_manager.c.

Benutzt s_ctx und SafetyCtx::state.

◆ safety_mgr_init()

EpbStatus safety_mgr_init ( void  )

◆ safety_mgr_step_50ms()