|
demo-epb
v1.0
Elektrische Parkbremse - slohmaier Dev Process Demo
|
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 /* Throttle > 10% = drive-away intent */ |
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) |
Safety Manager — hill-hold, auto-apply, drive-away assist.
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.
| #define SAFETY_AUTO_APPLY_DELAY_50MS 40U /* 40 * 50ms = 2.0 s */ |
Definiert in Zeile 50 der Datei safety_manager.h.
| #define SAFETY_DRIVE_INTENT_GAS_PCT 10.0f /* Throttle > 10% = drive-away intent */ |
Definiert in Zeile 54 der Datei safety_manager.h.
| #define SAFETY_HILLHOLD_GRADE_PCT 5.0f |
Definiert in Zeile 53 der Datei safety_manager.h.
| #define SAFETY_RELEASE_KMH 2.0f |
Definiert in Zeile 52 der Datei safety_manager.h.
| #define SAFETY_STANDSTILL_KMH 0.5f |
Definiert in Zeile 51 der Datei safety_manager.h.
| enum 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.
| bool safety_mgr_apply_requested | ( | void | ) |
Definiert in Zeile 172 der Datei safety_manager.c.
Benutzt SafetyCtx::apply_requested und s_ctx.
| SafetyState safety_mgr_get_state | ( | void | ) |
Definiert in Zeile 182 der Datei safety_manager.c.
Benutzt s_ctx und SafetyCtx::state.
| EpbStatus safety_mgr_init | ( | void | ) |
Definiert in Zeile 65 der Datei safety_manager.c.
Benutzt SafetyCtx::apply_requested, EPB_OK, SafetyCtx::release_requested, s_ctx, SAFETY_IDLE, SafetyCtx::state und SafetyCtx::ticks_in_state.
| bool safety_mgr_release_requested | ( | void | ) |
Definiert in Zeile 177 der Datei safety_manager.c.
Benutzt SafetyCtx::release_requested und s_ctx.
| void safety_mgr_step_50ms | ( | const SafetyInputs * | in | ) |
Definiert in Zeile 74 der Datei safety_manager.c.
Benutzt SafetyCtx::apply_requested, SafetyInputs::brake_pedal_pressed, SafetyInputs::current_state, drive_away_safety_ok(), drive_intent(), SafetyInputs::engine_running, enter(), EPB_STATE_APPLIED, EPB_STATE_APPLYING, EPB_STATE_RELEASED, EPB_STATE_RELEASING, grade_steep(), SafetyCtx::release_requested, s_ctx, SAFETY_AUTO_APPLY_ARMED, SAFETY_AUTO_APPLY_DELAY_50MS, SAFETY_AUTO_APPLY_TRIGGERED, SAFETY_DRIVE_AWAY, SAFETY_HILL_HOLD_ACTIVE, SAFETY_HILL_HOLD_ARMED, SAFETY_IDLE, SAFETY_RELEASE_KMH, standstill(), SafetyCtx::state, SafetyCtx::ticks_in_state und SafetyInputs::vehicle_speed_kmh.