feat: Safety Goals + Drive-Away-Assist + vollst. Traceability
Validate / build-test (macos-latest) (push) Failing after 4s
Validate / build-test (windows-latest) (push) Failing after 17s
Validate / build-test (ubuntu-latest) (push) Successful in 16s
Validate / reports (push) Has been skipped
Release / release (push) Successful in 48s
Validate / build-test (macos-latest) (push) Failing after 4s
Validate / build-test (windows-latest) (push) Failing after 17s
Validate / build-test (ubuntu-latest) (push) Successful in 16s
Validate / reports (push) Has been skipped
Release / release (push) Successful in 48s
Neue Layer: - safety/sg/SG-001..005 als eigene Doorstop-Items (ASIL D/D/A/C/B) - SYS-Reqs verlinken nach oben auf SG via frontmatter - Kette ist jetzt: SG -> SYS -> SA, SWE -> SWA -> Code (@arch) + Test (@reqs) Drive-Away-Assist im Safety Manager: - SWE-011 (Anfahrabsicht erkennen) implementiert - SWE-012 (Sicherheits-Check Tuer + Gurt) implementiert - Neuer State SAFETY_DRIVE_AWAY + safety_mgr_release_requested() - SafetyInputs erweitert um gas_pedal_percent, gear_in_drive, door_closed, seatbelt_fastened - 5 neue Tests (DRIVE_AWAY armed/blocked/end-conditions) - Test-Header @reqs erweitert auf SWE-007..012 traceability.py erweitert: - SG als neuer Top-Level - Code-Mapping-Check: @arch im Header von src/*.c muss SWA-id matchen - Test-Mapping-Check: @reqs im Header der Tests muss alle SWE der zugehoerigen SWA abdecken - HTML zeigt 7 Spalten: SG | SYS | SA | SWE | SWA | Code | Test - 2 zusaetzliche Tabellen: Code->Arch und Test->Reqs test_apply_controller.c: - @reqs Header um SWE-005 ergaenzt (war funktional drin, nur Tag fehlte) Counts: - 55 doorstop-Items (war 50) - 46 Unit-Tests (war 41) - Traceability vollstaendig in beide Richtungen
This commit is contained in:
+313
-116
@@ -1,5 +1,9 @@
|
||||
[
|
||||
{
|
||||
"sg": {
|
||||
"id": "SG-001",
|
||||
"asil": "D"
|
||||
},
|
||||
"sys": {
|
||||
"id": "SYS-001",
|
||||
"asil": "D",
|
||||
@@ -38,9 +42,58 @@
|
||||
"id": "SWA-004",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/apply_controller.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_apply_controller.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sg": {
|
||||
"id": "SG-001",
|
||||
"asil": "D"
|
||||
},
|
||||
"sys": {
|
||||
"id": "SYS-004",
|
||||
"asil": "D",
|
||||
"title": "Auto-Apply bei Motor-Aus"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-007",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWE-008",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-001",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/safety_manager.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_safety_manager.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sg": {
|
||||
"id": "SG-002",
|
||||
"asil": "D"
|
||||
},
|
||||
"sys": {
|
||||
"id": "SYS-002",
|
||||
"asil": "D",
|
||||
@@ -87,83 +140,21 @@
|
||||
"id": "SWA-006",
|
||||
"asil": "QM"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/apply_controller.c",
|
||||
"src/switch_debouncer.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_apply_controller.c",
|
||||
"tests/unit/test_switch_debouncer.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sys": {
|
||||
"id": "SYS-003",
|
||||
"asil": "B",
|
||||
"title": "Release auf Fahrer-Anforderung"
|
||||
"sg": {
|
||||
"id": "SG-002",
|
||||
"asil": "D"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SA-002",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-005",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-006",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-025",
|
||||
"asil": "QM"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-002",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWA-003",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWA-006",
|
||||
"asil": "QM"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sys": {
|
||||
"id": "SYS-004",
|
||||
"asil": "D",
|
||||
"title": "Auto-Apply bei Motor-Aus"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-007",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWE-008",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-001",
|
||||
"asil": "D"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sys": {
|
||||
"id": "SYS-005",
|
||||
"asil": "D",
|
||||
@@ -202,50 +193,19 @@
|
||||
"id": "SWA-005",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/safety_manager.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_safety_manager.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sys": {
|
||||
"id": "SYS-006",
|
||||
"asil": "B",
|
||||
"title": "Auto-Release beim Anfahren (Drive-Away-Assist)"
|
||||
"sg": {
|
||||
"id": "SG-003",
|
||||
"asil": "A"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SA-003",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-011",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-012",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-022",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWA-004",
|
||||
"asil": "B"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"sys": {
|
||||
"id": "SYS-007",
|
||||
"asil": "B",
|
||||
@@ -292,9 +252,238 @@
|
||||
"id": "SWA-004",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/actuator_driver.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_actuator_driver.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sg": {
|
||||
"id": "SG-004",
|
||||
"asil": "C"
|
||||
},
|
||||
"sys": {
|
||||
"id": "SYS-005",
|
||||
"asil": "D",
|
||||
"title": "Hill-Hold am Berg"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SA-003",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-009",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWE-010",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWE-024",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWA-005",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/safety_manager.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_safety_manager.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sg": {
|
||||
"id": "SG-004",
|
||||
"asil": "C"
|
||||
},
|
||||
"sys": {
|
||||
"id": "SYS-006",
|
||||
"asil": "B",
|
||||
"title": "Auto-Release beim Anfahren (Drive-Away-Assist)"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SA-003",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-011",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-012",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-022",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWA-004",
|
||||
"asil": "B"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/safety_manager.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_safety_manager.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sg": {
|
||||
"id": "SG-005",
|
||||
"asil": "B"
|
||||
},
|
||||
"sys": {
|
||||
"id": "SYS-002",
|
||||
"asil": "D",
|
||||
"title": "Apply auf Fahrer-Anforderung"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SA-002",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-003",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWE-004",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWE-022",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-025",
|
||||
"asil": "QM"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-002",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWA-004",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWA-006",
|
||||
"asil": "QM"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/apply_controller.c",
|
||||
"src/switch_debouncer.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_apply_controller.c",
|
||||
"tests/unit/test_switch_debouncer.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sg": {
|
||||
"id": "SG-005",
|
||||
"asil": "B"
|
||||
},
|
||||
"sys": {
|
||||
"id": "SYS-003",
|
||||
"asil": "B",
|
||||
"title": "Release auf Fahrer-Anforderung"
|
||||
},
|
||||
"sa": [
|
||||
{
|
||||
"id": "SA-001",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SA-002",
|
||||
"asil": "D"
|
||||
}
|
||||
],
|
||||
"swe": [
|
||||
{
|
||||
"id": "SWE-005",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-006",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWE-025",
|
||||
"asil": "QM"
|
||||
}
|
||||
],
|
||||
"swa": [
|
||||
{
|
||||
"id": "SWA-002",
|
||||
"asil": "D"
|
||||
},
|
||||
{
|
||||
"id": "SWA-003",
|
||||
"asil": "B"
|
||||
},
|
||||
{
|
||||
"id": "SWA-006",
|
||||
"asil": "QM"
|
||||
}
|
||||
],
|
||||
"code": [
|
||||
"src/apply_controller.c",
|
||||
"src/actuator_driver.c",
|
||||
"src/switch_debouncer.c"
|
||||
],
|
||||
"tests": [
|
||||
"tests/unit/test_actuator_driver.c",
|
||||
"tests/unit/test_apply_controller.c",
|
||||
"tests/unit/test_switch_debouncer.c"
|
||||
]
|
||||
},
|
||||
{
|
||||
"sg": null,
|
||||
"sys": {
|
||||
"id": "SYS-008",
|
||||
"asil": "QM",
|
||||
@@ -325,9 +514,12 @@
|
||||
"id": "SWA-009",
|
||||
"asil": "QM"
|
||||
}
|
||||
]
|
||||
],
|
||||
"code": [],
|
||||
"tests": []
|
||||
},
|
||||
{
|
||||
"sg": null,
|
||||
"sys": {
|
||||
"id": "SYS-009",
|
||||
"asil": "QM",
|
||||
@@ -362,9 +554,12 @@
|
||||
"id": "SWA-010",
|
||||
"asil": "QM"
|
||||
}
|
||||
]
|
||||
],
|
||||
"code": [],
|
||||
"tests": []
|
||||
},
|
||||
{
|
||||
"sg": null,
|
||||
"sys": {
|
||||
"id": "SYS-010",
|
||||
"asil": "QM",
|
||||
@@ -399,6 +594,8 @@
|
||||
"id": "SWA-007",
|
||||
"asil": "QM"
|
||||
}
|
||||
]
|
||||
],
|
||||
"code": [],
|
||||
"tests": []
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user