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

Safety Manager — Hill-Hold, Auto-Apply, Drive-Away-Assist. 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
 
#define SAFETY_DRIVE_INTENT_GAS_PCT   10.0f /* Gaspedal > 10% = Anfahrabsicht */
 

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 , SAFETY_DRIVE_AWAY = 5
}
 

Funktionen

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

Ausführliche Beschreibung

Safety Manager — Hill-Hold, Auto-Apply, Drive-Away-Assist.

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

ASIL: D.

State Machine: IDLE –(engine_off & v<0.5 & !APPLIED)--> 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

IDLE –(APPLIED & gas>10% & gear_drive & engine & door & belt)--> DRIVE_AWAY DRIVE_AWAY –(state==RELEASED|RELEASING)--> 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 50 der Datei safety_manager.h.

◆ SAFETY_DRIVE_INTENT_GAS_PCT

#define SAFETY_DRIVE_INTENT_GAS_PCT   10.0f /* Gaspedal > 10% = Anfahrabsicht */

Definiert in Zeile 54 der Datei safety_manager.h.

◆ SAFETY_HILLHOLD_GRADE_PCT

#define SAFETY_HILLHOLD_GRADE_PCT   5.0f

Definiert in Zeile 53 der Datei safety_manager.h.

◆ SAFETY_RELEASE_KMH

#define SAFETY_RELEASE_KMH   2.0f

Definiert in Zeile 52 der Datei safety_manager.h.

◆ SAFETY_STANDSTILL_KMH

#define SAFETY_STANDSTILL_KMH   0.5f

Definiert in Zeile 51 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 
SAFETY_DRIVE_AWAY 

Definiert in Zeile 27 der Datei safety_manager.h.

Dokumentation der Funktionen

◆ safety_mgr_apply_requested()

bool safety_mgr_apply_requested ( void  )

Definiert in Zeile 172 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 182 der Datei safety_manager.c.

Benutzt s_ctx und SafetyCtx::state.

◆ safety_mgr_init()

◆ safety_mgr_release_requested()

bool safety_mgr_release_requested ( void  )

Definiert in Zeile 177 der Datei safety_manager.c.

Benutzt SafetyCtx::release_requested und s_ctx.

◆ safety_mgr_step_50ms()