206 while (!time3.check()){
258 Metro waitForEbsSound{8500};
259 while (!waitForEbsSound.check()) {
The CheckupManager class handles various checkup operations.
bool shouldEnterEmergency(State current_state) const
Performs an emergency checkup.
bool emergencySequenceComplete() const
Checks if the emergency sequence is complete and the vehicle can transition to AS_OFF.
bool shouldStayManualDriving() const
Performs a manual driving checkup.
Metro & getInitialCheckupTimestamp()
Provides access to the initial checkup timestamp timer.
bool shouldStayOff(DigitalSender *digitalSender)
Performs an off checkup.
bool resTriggered() const
Checks if the RES has been triggered.
bool shouldStayReady() const
Performs a ready to drive checkup.
bool shouldStayDriving() const
CheckupState checkupState
Current state of the checkup process.
bool shouldStayMissionFinished() const
Performs a mission finished checkup.
CheckupError initialCheckupSequence(DigitalSender *digitalSender)
Performs an initial checkup.
Class responsible for controlling digital outputs in the Master Teensy.
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.
constexpr auto HYDRAULIC_BRAKE_THRESHOLD
DigitalSender digitalSender
bool pneumatic_line_pressure
Metro resSignalLossTimestamp
Metro inversorAliveTimestamp
Metro steerAliveTimestamp
Metro releaseEbsTimestamp
int _hydraulic_line_pressure
The whole model of the system: holds all the data necessary.
FailureDetection failureDetection
constexpr unsigned long RELEASE_EBS_TIMEOUT_MS
void test_shouldStayReady()
void test_shouldStayOff_whenInitialCheckupFails_false()
void test_shouldEnterEmergencyAsDrivingEBSValves()
void test_shouldEnterEmergency()
void test_shouldStayManualDriving_true()
void test_shouldStayMissionFinished()
void test_shouldStayDriving()
void test_initialCheckupSequence_states()
void test_shouldStayManualDriving_false()
void test_emergencySequenceComplete()