Our own implementation of Metro class.
void reset()
Resets the timer to the current time.
bool checkWithoutReset() const
Checks if the interval has passed without resetting the timer.
bool check()
Checks if the interval has passed and resets the timer if true.
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
Metro pc_alive_timestamp_
bool has_any_component_timed_out()
Metro dc_voltage_hold_timestamp_
Metro steer_alive_timestamp_
Metro res_signal_loss_timestamp_
Metro dc_voltage_drop_timestamp_
Metro inversor_alive_timestamp_
void enter_ready_state()
resets timestamps for ready
void enter_driving_state()
resets timestamps for driving
bool process_go_signal()
Processes the go signal.
Metro releaseEbsTimestamp