feat(i18n): tools + landing page + doorstop generator in English
Phase 1 of full English translation: - generate_doorstop_items.py: all 55 items (SG/SYS/SWE/SA/SWA) rewritten in English - generate_landing_page.py: full UI labels, KPI cards, section headings in English - traceability.py: docstring, error messages, HTML headers in English - generate_test_report.py: report content + table headers in English - All 55 markdown items in safety/sg/, reqs/, arch/ regenerated in English Still to come: - demo-epb filled Word docs (PID, plans, safety, manuals, audit artefacts) - Code comments + test names + CI workflow step names - README + dev-process repo templates
This commit is contained in:
+15
-15
@@ -17,12 +17,12 @@ asil: D
|
||||
|
||||
# SWA-001: Safety Manager
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Hoechste Sicherheitsschicht. Erkennt Motor-Aus, aktiviert Hill-Hold,
|
||||
triggert Auto-Apply. Lebenswichtige Logik mit redundanter Pruefung.
|
||||
Highest safety layer. Detects engine-off, activates hill-hold,
|
||||
triggers auto-apply. Life-critical logic with redundant checks.
|
||||
|
||||
## Statische Sicht
|
||||
## Static view
|
||||
|
||||
```plantuml
|
||||
@startuml
|
||||
@@ -31,20 +31,20 @@ package "Safety Manager" {
|
||||
[Hill-Hold Logic]
|
||||
[Auto-Apply Logic]
|
||||
}
|
||||
[Safety Manager] ..> [Apply Controller] : Apply-Anforderung
|
||||
[Safety Manager] ..> [Apply Controller] : apply request
|
||||
[Wheel Speed Plausi] --> [Safety Manager] : v_vehicle
|
||||
[Inclinometer Filter] --> [Safety Manager] : grade
|
||||
@enduml
|
||||
```
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status safety_mgr_init(void);
|
||||
void safety_mgr_step_50ms(const SafetyInputs* in);
|
||||
```
|
||||
|
||||
## Dynamisches Verhalten
|
||||
## Dynamic behaviour
|
||||
|
||||
```plantuml
|
||||
@startuml
|
||||
@@ -58,16 +58,16 @@ AutoApplyTriggered --> Idle : applied
|
||||
@enduml
|
||||
```
|
||||
|
||||
## Ressourcen
|
||||
## Resources
|
||||
|
||||
- Stack: <= 256 B
|
||||
- Worst-Case Timing: 200 us / Aufruf
|
||||
- Worst-case timing: 200 us per call
|
||||
|
||||
## Mapping auf Anforderungen
|
||||
## Mapping to requirements
|
||||
|
||||
| Anforderung | Wie abgedeckt |
|
||||
|-------------|---------------|
|
||||
| Requirement | How covered |
|
||||
|-------------|-------------|
|
||||
| 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 |
|
||||
| SWE-008 | 2 s filter and trigger |
|
||||
| SWE-009 | hill-hold activation |
|
||||
| SWE-010 | brake-released detection |
|
||||
|
||||
+22
-21
@@ -16,12 +16,13 @@ asil: D
|
||||
|
||||
# SWA-002: Apply Controller
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Zentraler Controller fuer Apply, Hold und Release der Parkbremse.
|
||||
ASIL-D-Kern der EPB-Software. Implementiert in `src/apply_controller.c`.
|
||||
Central controller for apply, hold and release of the parking brake.
|
||||
ASIL-D core of the EPB software. Implemented in
|
||||
`src/apply_controller.c`.
|
||||
|
||||
## Statische Sicht
|
||||
## Static view
|
||||
|
||||
```plantuml
|
||||
@startuml
|
||||
@@ -34,7 +35,7 @@ ASIL-D-Kern der EPB-Software. Implementiert in `src/apply_controller.c`.
|
||||
@enduml
|
||||
```
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status apply_ctrl_init(void);
|
||||
@@ -42,7 +43,7 @@ void apply_ctrl_step_50ms(const ApplyInputs* in);
|
||||
EpbStatus apply_ctrl_get_status(void);
|
||||
```
|
||||
|
||||
## Dynamisches Verhalten
|
||||
## Dynamic behaviour
|
||||
|
||||
```plantuml
|
||||
@startuml
|
||||
@@ -58,24 +59,24 @@ Error --> Released : reset & no fault
|
||||
@enduml
|
||||
```
|
||||
|
||||
## Ressourcen
|
||||
## Resources
|
||||
|
||||
- Stack: <= 384 B
|
||||
- Worst-Case Timing: 350 us / Aufruf
|
||||
- Worst-case timing: 350 us per call
|
||||
|
||||
## Designentscheidungen
|
||||
## Design decisions
|
||||
|
||||
| Entscheidung | Begruendung |
|
||||
|--------------|-------------|
|
||||
| Statische Allokation, kein Heap | Determinismus, MISRA C 21.3 |
|
||||
| State Machine | Einfacher zu verifizieren, deterministisch |
|
||||
| 50ms Step-Funktion | Synchron zur Inclinometer-Abtastung |
|
||||
| Decision | Rationale |
|
||||
|----------|-----------|
|
||||
| Static allocation, no heap | Determinism, MISRA C 21.3 |
|
||||
| State machine | Easier to verify, deterministic |
|
||||
| 50 ms step function | Synchronous with inclinometer sample rate |
|
||||
|
||||
## Mapping auf Anforderungen
|
||||
## Mapping to requirements
|
||||
|
||||
| Anforderung | Wie abgedeckt |
|
||||
|-------------|---------------|
|
||||
| SWE-001 | Hold-Zustand mit periodischer Klemmkraft-Pruefung |
|
||||
| SWE-002 | Watchdog-Pet im step_50ms |
|
||||
| SWE-003 | sw_apply Input wird sofort ausgewertet |
|
||||
| SWE-004 | Current-Target-Detektion via Actuator-Driver-Feedback |
|
||||
| Requirement | How covered |
|
||||
|-------------|-------------|
|
||||
| SWE-001 | Hold state with periodic clamping-force check |
|
||||
| SWE-002 | Watchdog pet in step_50ms |
|
||||
| SWE-003 | sw_apply input is evaluated immediately |
|
||||
| SWE-004 | current-target detection via actuator-driver feedback |
|
||||
|
||||
+16
-16
@@ -15,13 +15,13 @@ asil: B
|
||||
|
||||
# SWA-003: Actuator Driver
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Low-Level-Ansteuerung der beiden Aktor-Motoren. PWM-Generierung,
|
||||
Strom-Messung, Overcurrent-Cutoff, Klemmkraft-Schaetzung.
|
||||
Implementiert in `src/actuator_driver.c`.
|
||||
Low-level control of the two actuator motors. PWM generation,
|
||||
current measurement, overcurrent cutoff, clamping-force estimation.
|
||||
Implemented in `src/actuator_driver.c`.
|
||||
|
||||
## Statische Sicht
|
||||
## Static view
|
||||
|
||||
```plantuml
|
||||
@startuml
|
||||
@@ -32,7 +32,7 @@ Implementiert in `src/actuator_driver.c`.
|
||||
@enduml
|
||||
```
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status actuator_init(void);
|
||||
@@ -40,20 +40,20 @@ void actuator_apply(ActuatorId id, uint8_t pwm_percent);
|
||||
void actuator_release(ActuatorId id, uint8_t pwm_percent);
|
||||
void actuator_stop(ActuatorId id);
|
||||
ActuatorStatus actuator_get_status(ActuatorId id);
|
||||
void actuator_isr_1khz(void); // Strom-Sampling
|
||||
void actuator_isr_1khz(void); // Current sampling
|
||||
```
|
||||
|
||||
## Ressourcen
|
||||
## Resources
|
||||
|
||||
- Stack: <= 256 B
|
||||
- Worst-Case Timing: 50 us / ISR
|
||||
- Static RAM: 64 B pro Aktor
|
||||
- Worst-case timing: 50 us per ISR
|
||||
- Static RAM: 64 B per actuator
|
||||
|
||||
## Mapping auf Anforderungen
|
||||
## Mapping to requirements
|
||||
|
||||
| Anforderung | Wie abgedeckt |
|
||||
|-------------|---------------|
|
||||
| SWE-006 | actuator_release fuer beide Aktoren parallel |
|
||||
| Requirement | How covered |
|
||||
|-------------|-------------|
|
||||
| SWE-006 | actuator_release for both actuators in parallel |
|
||||
| SWE-013 | actuator_isr_1khz |
|
||||
| SWE-014 | Overcurrent-Detektor in ISR |
|
||||
| SWE-015 | Peak-Current-Tracking + lineare Klemmkraft-Schaetzung |
|
||||
| SWE-014 | overcurrent detector in ISR |
|
||||
| SWE-015 | peak-current tracking + linear clamping-force estimate |
|
||||
|
||||
+6
-6
@@ -1,7 +1,7 @@
|
||||
---
|
||||
active: true
|
||||
derived: false
|
||||
header: 'Wheel Speed Plausibilisierung'
|
||||
header: 'Wheel Speed Plausibilisation'
|
||||
level: 1.4
|
||||
normative: true
|
||||
reviewed: null
|
||||
@@ -11,14 +11,14 @@ links:
|
||||
asil: B
|
||||
---
|
||||
|
||||
# SWA-004: Wheel Speed Plausibilisierung
|
||||
# SWA-004: Wheel Speed Plausibilisation
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Aufbereitung und Plausibilisierung der 4 Wheel-Speed-Signale. Erkennt
|
||||
Stillstand und plausibilisiert untereinander.
|
||||
Conditioning and plausibilisation of the four wheel-speed signals.
|
||||
Detects standstill and cross-checks the wheels.
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status wheel_speed_init(void);
|
||||
|
||||
+4
-3
@@ -12,11 +12,12 @@ asil: B
|
||||
|
||||
# SWA-005: Inclinometer Filter
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Tiefpass-Filterung des Inclinometer-Roh-Signals fuer die Hill-Hold-Bewertung.
|
||||
Low-pass filtering of the raw inclinometer signal for hill-hold
|
||||
evaluation.
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status inclino_init(void);
|
||||
|
||||
+9
-8
@@ -12,12 +12,13 @@ asil: QM
|
||||
|
||||
# SWA-006: Switch Debouncer
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Software-Entprellung des EPB-Schalters. Liefert stabiles Apply / Release
|
||||
Signal an den Apply-Controller. Implementiert in `src/switch_debouncer.c`.
|
||||
Software debouncing of the EPB switch. Provides a stable apply /
|
||||
release signal to the apply controller. Implemented in
|
||||
`src/switch_debouncer.c`.
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status switch_init(void);
|
||||
@@ -25,8 +26,8 @@ void switch_step_10ms(SwitchRaw raw);
|
||||
SwitchState switch_get_state(void);
|
||||
```
|
||||
|
||||
## Mapping auf Anforderungen
|
||||
## Mapping to requirements
|
||||
|
||||
| Anforderung | Wie abgedeckt |
|
||||
|-------------|---------------|
|
||||
| SWE-025 | 50ms Debounce-Logik |
|
||||
| Requirement | How covered |
|
||||
|-------------|-------------|
|
||||
| SWE-025 | 50 ms debounce logic |
|
||||
|
||||
+5
-5
@@ -13,15 +13,15 @@ asil: QM
|
||||
|
||||
# SWA-007: Display Manager
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Steuert LED am EPB-Schalter und CAN-Status-Frame an das Kombi-Display.
|
||||
Empfaengt Status vom Apply-Controller.
|
||||
Drives the LED on the EPB switch and the CAN status frame to the
|
||||
instrument cluster. Receives status from the apply controller.
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status display_init(void);
|
||||
void display_set_status(EpbStatus s);
|
||||
void display_step_20ms(void); // 50 Hz CAN-Frame
|
||||
void display_step_20ms(void); // 50 Hz CAN frame
|
||||
```
|
||||
|
||||
+4
-3
@@ -13,11 +13,12 @@ asil: QM
|
||||
|
||||
# SWA-008: Diagnostic Manager
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
UDS-Diagnose nach ISO 14229: ReadDTC, ReadDataByIdentifier, RoutineControl.
|
||||
UDS diagnostics per ISO 14229: ReadDTC, ReadDataByIdentifier,
|
||||
RoutineControl.
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status diag_init(void);
|
||||
|
||||
+4
-3
@@ -13,7 +13,8 @@ asil: QM
|
||||
|
||||
# SWA-009: Service Mode
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Service-Modus fuer Werkstatt. Wird ueber UDS RoutineControl 0x31, Routine-ID
|
||||
0x0301 aktiviert. Steuert Aktoren in Wartungsposition.
|
||||
Service mode for the workshop. Activated via UDS RoutineControl
|
||||
0x31, routine ID 0x0301. Drives the actuators into maintenance
|
||||
position.
|
||||
|
||||
+4
-4
@@ -13,12 +13,12 @@ asil: QM
|
||||
|
||||
# SWA-010: Logger
|
||||
|
||||
## Verantwortung
|
||||
## Responsibility
|
||||
|
||||
Logging fuer Entwicklung und Service. Ringpuffer im RAM (1 KB) sowie
|
||||
Persistenz im EEPROM bei kritischen Ereignissen.
|
||||
Logging for development and service. Ring buffer in RAM (1 KB)
|
||||
plus persistence in EEPROM on critical events.
|
||||
|
||||
## Schnittstellen (Provided)
|
||||
## Provided interfaces
|
||||
|
||||
```c
|
||||
Status log_init(void);
|
||||
|
||||
Reference in New Issue
Block a user