4351dfa4e1
Validate / build-and-test (push) Successful in 30s
- Implement Safety Manager (SWA-001, ASIL-D): Hill-Hold + Auto-Apply state machine, 13 unit tests - Update SWA-002 + SWA-001 link coverage so all SWE reqs are covered - New tool: tools/traceability.py — Markdown-frontmatter-basierter Traceability-Checker + HTML/JSON-Matrix-Generator (Doorstop-Format ohne Doorstop-Dependency) - New tool: tools/render_plantuml.py — extrahiert PlantUML-Bloecke aus arch/**.md und rendert via plantuml.com zu SVG - validate.yml: neue Steps Traceability-Check, Matrix-Publish, PlantUML- Render; uploaded als Gitea-Artefakte
74 lines
1.4 KiB
Markdown
74 lines
1.4 KiB
Markdown
---
|
|
active: true
|
|
derived: false
|
|
header: 'Safety Manager'
|
|
level: 1.1
|
|
normative: true
|
|
reviewed: null
|
|
links:
|
|
- SWE-007
|
|
- SWE-008
|
|
- SWE-009
|
|
- SWE-010
|
|
- SWE-011
|
|
- SWE-012
|
|
asil: D
|
|
---
|
|
|
|
# SWA-001: Safety Manager
|
|
|
|
## Verantwortung
|
|
|
|
Hoechste Sicherheitsschicht. Erkennt Motor-Aus, aktiviert Hill-Hold,
|
|
triggert Auto-Apply. Lebenswichtige Logik mit redundanter Pruefung.
|
|
|
|
## Statische Sicht
|
|
|
|
```plantuml
|
|
@startuml
|
|
package "Safety Manager" {
|
|
[Engine State Monitor]
|
|
[Hill-Hold Logic]
|
|
[Auto-Apply Logic]
|
|
}
|
|
[Safety Manager] ..> [Apply Controller] : Apply-Anforderung
|
|
[Wheel Speed Plausi] --> [Safety Manager] : v_vehicle
|
|
[Inclinometer Filter] --> [Safety Manager] : grade
|
|
@enduml
|
|
```
|
|
|
|
## Schnittstellen (Provided)
|
|
|
|
```c
|
|
Status safety_mgr_init(void);
|
|
void safety_mgr_step_50ms(const SafetyInputs* in);
|
|
```
|
|
|
|
## Dynamisches Verhalten
|
|
|
|
```plantuml
|
|
@startuml
|
|
[*] --> Idle
|
|
Idle --> HillHoldArmed : grade>5% & v=0 & brake
|
|
HillHoldArmed --> HillHoldActive : brake released
|
|
HillHoldActive --> Idle : v>2 km/h
|
|
Idle --> AutoApplyArmed : engine_off & v=0
|
|
AutoApplyArmed --> AutoApplyTriggered : t>=2s
|
|
AutoApplyTriggered --> Idle : applied
|
|
@enduml
|
|
```
|
|
|
|
## Ressourcen
|
|
|
|
- Stack: <= 256 B
|
|
- Worst-Case Timing: 200 us / Aufruf
|
|
|
|
## Mapping auf Anforderungen
|
|
|
|
| Anforderung | Wie abgedeckt |
|
|
|-------------|---------------|
|
|
| SWE-007 | engine_off + v<0.5 in step_50ms |
|
|
| SWE-008 | 2s-Filter und Trigger |
|
|
| SWE-009 | Hill-Hold-Aktivierung |
|
|
| SWE-010 | Brake-Released-Detektion |
|