376. System Signal
The system_signal monitors various vehicle system signals and raises an issue when a signal remains in a specific, user-defined state.
This framework is designed to be extensible, allowing users to monitor both standard vehicle indicators and custom properties.
The modifier contains three example checkers:
lights_signals_checker: Monitors the vehicle's turn signals.hazard_lights_checker: Monitors the vehicle's hazard lights.additional_properties_checker: Monitors a custom signal from the vehicle's additional_properties list, which is useful for evaluating proprietary or non-standard system data, often from log replay scenarios.
A new interval is triggered each time a monitored signal enters one of the configured signal_states and continues until the signal transitions to another state. The lights_signals_checker and hazard_lights_checker use the vehicle.state.vehicle_indicators struct to retrieve information on the vehicle's sensors. The additional_properties_checker should use the vehicle.state.additional_properties list, so the signal_name parameter must match one of the items in this list.
The signal_states list varies according to the monitored signal, and is user-customizable. The checkers will raise an issue when the state is in the issue_states list, which is the list of states that raise issues when entered and also user-customizable. The severity of the raised issues (issue_severity) is also user-customizable.
The user can configure whether a checker is enabled by default by setting the enable parameter accordingly.
376.0.1 Start condition
The system_signal monitors the signals at each top.clk. An interval begins when a signal's current state is found within the configured signal_states list and continues until the signal transitions to another state.
376.0.2 End condition
An interval is closed as soon as the signal's state changes or is no longer a member of the configured signal_states list. The while_w construct automatically terminates the interval when the trigger condition is no longer met at the next top.clk.
376.1 Plot
376.2 Attributes
The following attributes define the behavior and characteristics of the evaluator.
| Checker attribute | Description |
|---|---|
| Parent object | vehicle.system_signal |
| Issue category | sut or other |
| Issue kind | system_signals, signal_not_found, multiple_signal_names_found, empty_signal_states_list, unknown_signal_state |
| Default severity | ignore, warning |
| Trigger condition | Based on while_w watcher |
376.3 Configuration parameters
The following parameters can be configured to customize the evaluator's behavior.
| Parameter | Type | Description | Default Value |
|---|---|---|---|
signal_name |
string | Name of the signal to monitor | No default |
signal_states |
list | A list of available signal states to monitor | No default |
issue_states |
list | A subset of signal_states that raises an issue | No default |
376.4 Metrics
The following metrics are recorded and tracked by the evaluator.
| Metric item | Unit / Type | Description |
|---|---|---|
system |
The system monitored by the checker | |
system_state |
The state that the system was on during the interval |
376.5 Log and Error Messages
| Output Condition | Description | Default Severity |
|---|---|---|
If the signal's state is not found in the list of configured signal_states. |
Signal << signal_name_lights_signals >> has a value of << current_state_lights_signals >>, which is not defined in the provided signal_states configuration |
Warning |
| If the checker's triggering conditions are met and the signal's state is in issue_states. | Vehicle had its turn signal lights << current_state_lights_signals >> |
Warning |
If the list of configured signal_states is empty. |
The provided signal_states configuration for lights_signals_checker is empty | Warning |
If the signal's state is not found in the list of configured signal_states. |
Signal << signal_name_hazard_lights >> has a value of << current_state_hazard_lights >>, which is not defined in the provided signal_states configuration |
Warning |
| If the checker's triggering conditions are met and the signal's state is in issue_states. | Vehicle had its hazard lights << current_state_hazard_lights >> |
Warning |
If the list of configured signal_states is empty. |
The provided signal_states configuration for hazard_lights_checker is empty | Warning |
If the signal's state is not found in the list of configured signal_states. |
Signal << signal_name_additional_properties_checker >> has a value of << current_state_additional_properties_checker >>, which is not defined in the provided signal_states configuration |
Warning |
If the signal's state is not found in the list of configured signal_states. |
The specified signal (<< signal_name_additional_properties_checker >>) is not available in the Ego's protobuf data |
Warning |
If the signal's state is not found in the list of configured signal_states. |
The specified signal (<< signal_name_additional_properties_checker >>) has multiple instances in the Ego's protobuf data |
Warning |
| If the checker's triggering conditions are met and the signal's state is in issue_states. | Vehicle had its << signal_name_additional_properties_checker >> << current_state_additional_properties_checker >> |
Warning |
If the list of configured signal_states is empty. |
The provided signal_states configuration for additional_properties_checker is empty | Warning |