28 return initialCheckupTimestamp;
217 initialCheckupTimestamp.
reset();
226 pneumatic_line_pressure) {
The CheckupManager class handles various checkup operations.
bool shouldEnterEmergency(State current_state) const
Performs an emergency checkup.
Metro _ebsSoundTimestamp
Timer for the EBS buzzer sound check.
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.
void resetCheckupState()
Resets the checkup state to the initial state.
Metro & getInitialCheckupTimestamp()
Provides access to the initial checkup timestamp timer.
CheckupState
The CheckupState enum represents the different states of the initial checkup process....
@ START_TOGGLING_WATCHDOG
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.
CheckupManager(SystemData *systemData)
Constructor for the CheckupManager class.
bool shouldGoReadyFromOff() const
Performs a last re-check for off to ready transition.
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.
static void closeSDC()
Closes the SDC in Master and SDC Logic.
static void activateEBS()
Activates the solenoid EBS valves.
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
#define DEBUG_PRINT_VAR(var)
#define EBS_BUZZER_TIMEOUT
#define INITIAL_CHECKUP_STEP_TIMEOUT
DigitalSender digitalSender
bool pneumatic_line_pressure
bool hasAnyComponentTimedOut()
void enterReadyState()
resets timestamps for ready
Metro releaseEbsTimestamp
void enterDrivingState()
resets timestamps for driving
int _hydraulic_line_pressure
The whole model of the system: holds all the data necessary.
FailureDetection failureDetection