diff --git a/lib/interfaces/include/AnalogSensorsInterface.h b/lib/interfaces/include/AnalogSensorsInterface.h index 4d4e375c0..cca9e4c21 100644 --- a/lib/interfaces/include/AnalogSensorsInterface.h +++ b/lib/interfaces/include/AnalogSensorsInterface.h @@ -3,7 +3,6 @@ #include #include -#include enum class AnalogSensorStatus_e { @@ -76,7 +75,7 @@ class AnalogMultiSensor // Functions /// @brief Called by the main loop. Allows AnalogMultiSensor devices not owned by a single system to self-actualize sampling & conversion. /// @param tick - void tick(const SysTick_s &tick); + void tick(unsigned long curr_millis); /// @brief Used by systems to get data out of this device when it's self-actualizing sampling & conversion. /// @return Const ref to last data conversion. diff --git a/lib/interfaces/include/TelemetryInterface.h b/lib/interfaces/include/TelemetryInterface.h index 4ba0ddc01..17a6139cb 100644 --- a/lib/interfaces/include/TelemetryInterface.h +++ b/lib/interfaces/include/TelemetryInterface.h @@ -6,7 +6,6 @@ #include "HyTech_CAN.h" // #include "hytech.h" #include "MessageQueueDefine.h" -#include "SysClock.h" #include "AnalogSensorsInterface.h" #include "SteeringEncoderInterface.h" @@ -57,9 +56,8 @@ class TelemetryInterface void enqueue_CAN_mcu_rear_potentiometers(); void enqueue_CAN_mcu_analog_readings(); - /* Tick SysClock to send CAN */ + /* Tick at 50Hz to send CAN */ void tick( - const SysTick_s &tick, const AnalogConversionPacket_s<8> &adc1, const AnalogConversionPacket_s<4> &adc2, const AnalogConversionPacket_s<4> &adc3, diff --git a/lib/interfaces/src/TelemetryInterface.cpp b/lib/interfaces/src/TelemetryInterface.cpp index cdce69f9f..2cbce0a11 100644 --- a/lib/interfaces/src/TelemetryInterface.cpp +++ b/lib/interfaces/src/TelemetryInterface.cpp @@ -110,26 +110,23 @@ void TelemetryInterface::update_analog_readings_CAN_msg(const SteeringEncoderCon } /* Tick SysClock */ -void TelemetryInterface::tick(const SysTick_s &tick, - const AnalogConversionPacket_s<8> &adc1, +void TelemetryInterface::tick(const AnalogConversionPacket_s<8> &adc1, const AnalogConversionPacket_s<4> &adc2, const AnalogConversionPacket_s<4> &adc3, const SteeringEncoderConversion_s &encoder) { - if (tick.triggers.trigger50) { - // Pedals - update_pedal_readings_CAN_msg(adc1.conversions[2], adc1.conversions[1], adc1.conversions[5], adc1.conversions[3]); - enqueue_CAN_mcu_pedal_readings(); - // Analog readings - update_analog_readings_CAN_msg(encoder, adc1.conversions[7], adc1.conversions[6], adc1.conversions[0], adc1.conversions[4]); - enqueue_CAN_mcu_analog_readings(); - // Load cells - update_load_cells_CAN_msg(adc2.conversions[2], adc3.conversions[2]); - enqueue_CAN_mcu_load_cells(); - // Pots - update_potentiometers_CAN_msg(adc2.conversions[3], adc3.conversions[3]); - enqueue_CAN_mcu_front_potentiometers(); - // enqueue_CAN_mcu_rear_potentiometers(); - } + // Pedals + update_pedal_readings_CAN_msg(adc1.conversions[2], adc1.conversions[1], adc1.conversions[5], adc1.conversions[3]); + enqueue_CAN_mcu_pedal_readings(); + // Analog readings + update_analog_readings_CAN_msg(encoder, adc1.conversions[7], adc1.conversions[6], adc1.conversions[0], adc1.conversions[4]); + enqueue_CAN_mcu_analog_readings(); + // Load cells + update_load_cells_CAN_msg(adc2.conversions[2], adc3.conversions[2]); + enqueue_CAN_mcu_load_cells(); + // Pots + update_potentiometers_CAN_msg(adc2.conversions[3], adc3.conversions[3]); + enqueue_CAN_mcu_front_potentiometers(); + // enqueue_CAN_mcu_rear_potentiometers(); } diff --git a/lib/mock_interfaces/WatchdogInterface.h b/lib/mock_interfaces/WatchdogInterface.h index e451c00e7..9633a17d9 100644 --- a/lib/mock_interfaces/WatchdogInterface.h +++ b/lib/mock_interfaces/WatchdogInterface.h @@ -27,7 +27,7 @@ class WatchdogInterface void set_start_state(); /* Kick watchdog */ - void kick_watchdog(const SysTick_s &tick); + void kick_watchdog(unsigned long curr_millis); }; diff --git a/lib/systems/src/SafetySystem.cpp b/lib/systems/src/SafetySystem.cpp index bb55d5a1c..80f5feebd 100644 --- a/lib/systems/src/SafetySystem.cpp +++ b/lib/systems/src/SafetySystem.cpp @@ -24,7 +24,7 @@ void SafetySystem::software_shutdown(const SysTick_s &tick) { ams_->set_state_ok_high(false); // Kick watchdog every software cycle - wd_->kick_watchdog(tick); + wd_->kick_watchdog(tick.millis); } /* Return software ok */ diff --git a/src/main.cpp b/src/main.cpp index 638b4e2db..4cbec3fd5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -113,7 +113,7 @@ void setup() { /* Initialize interface */ main_ecu.init(); // initial shutdown circuit readings, - wd_interface.init(curr_tick); // initialize wd kick time + wd_interface.init(curr_tick.millis); // initialize wd kick time ams_interface.init(curr_tick.millis); // initialize last heartbeat time /* Initialize system */ @@ -159,8 +159,7 @@ void tick_all_interfaces(const SysTick_s& current_system_tick) { } else if (t.trigger50) { - telem_interface.tick(current_system_tick, - ADC1.get(), + telem_interface.tick(ADC1.get(), ADC2.get(), // Add MCP3204 functionality for corner board ADC3.get(), // Add implementation to get() steering1.convert()); diff --git a/test/test_interfaces/AMS_interface_test.h b/test/test_interfaces/AMS_interface_test.h index 221c33787..80ffb0e18 100644 --- a/test/test_interfaces/AMS_interface_test.h +++ b/test/test_interfaces/AMS_interface_test.h @@ -38,9 +38,9 @@ void test_AMS_heartbeat() { //setting arbitrary pin 20 AMSInterface ams_interface(20); - ams_interface.init(); + ams_interface.init(millis()); ams_interface.set_start_state(); - TEST_ASSERT_EQUAL(true, ams_interface.heartbeat_received()); + TEST_ASSERT_EQUAL(true, ams_interface.heartbeat_received(millis())); delay(20); - TEST_ASSERT_EQUAL(false, ams_interface.heartbeat_received()); + TEST_ASSERT_EQUAL(false, ams_interface.heartbeat_received(millis())); } \ No newline at end of file