"""SOTIF triggering condition analysis for AEB function."""
from dataclasses import dataclass
from typing import List
@dataclass
class TriggeringCondition:
tc_id: str
category: str
description: str
functional_insuff: str # which algorithm limitation it exploits
hazard: str # resulting hazardous behaviour
severity: int # S0-S3 (ISO 26262 severity scale)
probability_in_odd: str # high/medium/low (estimated exposure)
design_measure: str # how addressed
AEB_TRIGGERING_CONDITIONS: List[TriggeringCondition] = [
TriggeringCondition(
tc_id="TC_AEB_001",
category="Environmental/Weather",
description="Heavy rain (> 10 mm/h) reduces camera range to < 20m",
functional_insuff="AEB requires 30m detection range for 50 km/h stop",
hazard="AEB fails to activate; rear-end collision",
severity=3, # fatal
probability_in_odd="high", # rain is common in Germany
design_measure="Radar fusion; HMI speed warning in rain"
),
TriggeringCondition(
tc_id="TC_AEB_002",
category="Target/Appearance",
description="White truck body against bright sky: low image contrast",
functional_insuff="Camera classifier fails below contrast threshold",
hazard="AEB false negative; no braking before collision",
severity=3,
probability_in_odd="medium",
design_measure="Radar primary; camera secondary for classification"
),
]
for tc in AEB_TRIGGERING_CONDITIONS:
print(f"[{tc.tc_id}] S{tc.severity} | {tc.description[:50]}...")