106 DEBUG_PRINT(
"=== System Component Status Check ===");
Our own implementation of Metro class.
void reset()
Resets the timer to the current time.
bool check()
Checks if the interval has passed and resets the timer if true.
Volatile version of Metro class for interrupt-safe operations.
bool checkWithoutReset() const volatile
Checks if the interval has passed without resetting the timer.
constexpr unsigned long READY_TIMEOUT_MS
constexpr unsigned long RELEASE_EBS_TIMEOUT_MS
constexpr int RES_TIMESTAMP_TIMEOUT
constexpr unsigned long ENGAGE_EBS_TIMEOUT_MS
constexpr int COMPONENT_TIMESTAMP_TIMEOUT
constexpr int DC_VOLTAGE_HOLD
constexpr int DC_VOLTAGE_TIMEOUT
NonUnitaryFailureDetection & timestamps_
bool has_any_component_timed_out()
volatile bool emergency_signal_
volatile unsigned dc_voltage_
FailureDetection(NonUnitaryFailureDetection ×tamps)
volatile double radio_quality_
VolatileMetro steer_alive_timestamp_
VolatileMetro pc_alive_timestamp_
VolatileMetro inversor_alive_timestamp_
NonUnitaryFailureDetection & operator=(const NonUnitaryFailureDetection &other)
VolatileMetro res_signal_loss_timestamp_
VolatileMetro dc_voltage_drop_timestamp_
VolatileMetro dc_voltage_hold_timestamp_
VolatileMetro bms_alive_timestamp_
void reset_ebs_timestamp()
resets timestamps for driving
Metro releaseEbsTimestamp
void refresh_r2d_vars()
resets timestamps for ready
void process_go_signal()
Processes the go signal.