1#include "comm/communicatorSettings.hpp"
85 TEST_ASSERT_EQUAL(CheckupManager::CheckupState::TOGGLE_VALVE, cm.checkupState);
90 TEST_ASSERT_EQUAL(CheckupManager::CheckupState::CHECK_PRESSURE, cm.checkupState);
108 TEST_ASSERT_TRUE(checkupManager.shouldStayReady());
111 TEST_ASSERT_FALSE(checkupManager.shouldStayReady());
129 TEST_ASSERT_FALSE(checkupManager.shouldEnterEmergency(
State::AS_READY));
131 TEST_ASSERT_TRUE(checkupManager.shouldEnterEmergency(
State::AS_READY));
135 TEST_ASSERT_TRUE(checkupManager.shouldEnterEmergency(
State::AS_READY));
138 TEST_ASSERT_TRUE(checkupManager.shouldEnterEmergency(
State::AS_READY));
141 TEST_ASSERT_TRUE(checkupManager.shouldEnterEmergency(
State::AS_READY));
144 TEST_ASSERT_TRUE(checkupManager.shouldEnterEmergency(
State::AS_READY));
147 TEST_ASSERT_TRUE(checkupManager.shouldEnterEmergency(
State::AS_READY));
164 TEST_ASSERT_TRUE(checkupManager.shouldEnterEmergency(
State::AS_READY));
200 while (!time3.check()) {
219 TEST_ASSERT_FALSE(checkupManager.shouldStayDriving());
222 TEST_ASSERT_TRUE(checkupManager.shouldStayDriving());
226 TEST_ASSERT_TRUE(checkupManager.shouldStayDriving());
235 TEST_ASSERT_FALSE(checkupManager.shouldStayMissionFinished());
238 TEST_ASSERT_TRUE(checkupManager.shouldStayMissionFinished());
247 TEST_ASSERT_FALSE(checkupManager.emergencySequenceComplete());
250 Metro waitForEbsSound{8500};
251 while (!waitForEbsSound.check()) {
253 TEST_ASSERT_TRUE(checkupManager.emergencySequenceComplete());
262 TEST_ASSERT_TRUE(checkupManager.resTriggered());
265 TEST_ASSERT_FALSE(checkupManager.resTriggered());
The CheckupManager class handles various checkup operations.
bool should_stay_manual_driving() const
Performs a manual driving checkup.
bool should_stay_off()
Performs an off checkup.
CheckupError initial_checkup_sequence()
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 unsigned long RELEASE_EBS_TIMEOUT_MS
Metro pc_alive_timestamp_
Metro steer_alive_timestamp_
Metro res_signal_loss_timestamp_
Metro inversor_alive_timestamp_
int _hydraulic_line_pressure
bool pneumatic_line_pressure_
Metro releaseEbsTimestamp
The whole model of the system: holds all the data necessary.
FailureDetection failure_detection_
HardwareData hardware_data_
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()
DigitalSender digitalSender