3#include "AMSInterface.h"
16 BMS_status bms_status{};
17 bms_status.set_state(5);
46 TEST_ASSERT_EQUAL(0x0001U, received_shunt_measurements.current_shunt_read_ro);
47 TEST_ASSERT_EQUAL(0x0002U, received_shunt_measurements.pack_filtered_read_ro);
48 TEST_ASSERT_EQUAL(0x0003U, received_shunt_measurements.ts_out_filtered_read_ro);
83 TEST_ASSERT_EQUAL(0x9088U, received_voltages.average_voltage_ro);
84 TEST_ASSERT_EQUAL(0x88B8U, received_voltages.low_voltage_ro);
85 TEST_ASSERT_EQUAL(0x9858U, received_voltages.high_voltage_ro);
86 TEST_ASSERT_EQUAL(0xFFFFU, received_voltages.total_voltage_ro);
102 TEST_ASSERT_EQUAL(23.9f, HYTECH_em_current_ro_fromS(received_em_measurement.em_current_ro));
103 TEST_ASSERT_EQUAL(530.5f, HYTECH_em_voltage_ro_fromS(received_em_measurement.em_voltage_ro));
122 unsigned long starting_millis = millis();
123 SysTick_s starting_tick;
124 starting_tick.millis = starting_millis;
128 TEST_ASSERT_EQUAL(
true,
ams_interface.heartbeat_received(starting_millis + 1000));
129 TEST_ASSERT_EQUAL(
false,
ams_interface.heartbeat_received(starting_millis + 2000));
131 starting_millis = millis();
133 TEST_ASSERT_EQUAL(
true,
ams_interface.heartbeat_received(starting_millis + 100));
134 TEST_ASSERT_EQUAL(
true,
ams_interface.heartbeat_received(starting_millis + 1000));
135 TEST_ASSERT_EQUAL(
true,
ams_interface.heartbeat_received(starting_millis + 1999));
136 TEST_ASSERT_EQUAL(
false,
ams_interface.heartbeat_received(starting_millis + 2000));
137 TEST_ASSERT_EQUAL(
false,
ams_interface.heartbeat_received(starting_millis + 2010));
void test_em_measurements_CAN_message()
void test_AMS_unpacking_BMS_status_message()
void test_current_shunt_CAN_message()
void test_bms_voltages_CAN_message()
void test_AMS_charge_critical_threshold()
void test_AMS_filtered_readings()
void test_AMS_unpacking_BMS_temperatures_message()
void test_AMS_heartbeat()
CAN_message_t generate_can_msg_from_uint_32s(uint32_t first, uint32_t second, bool use_little_endian)
CAN_message_t generate_can_msg_from_uint_16s(uint16_t first, uint16_t second, uint16_t third, uint16_t fourth, bool use_little_endian)
Circular_Buffer< uint8_t,(uint32_t) 128, sizeof(CAN_message_t)> CANBufferType
this class is for interfacing with the AMS (accumulator management system)
void retrieve_current_shunt_CAN(const CAN_message_t &can_msg)
EM_MEASUREMENT_t get_em_measurements()
BMS_VOLTAGES_t get_bms_voltages()
void retrieve_voltage_CAN(CAN_message_t &recvd_msg)
ACU_SHUNT_MEASUREMENTS_t get_acu_shunt_measurements()
void retrieve_em_measurement_CAN(CAN_message_t &can_msg)
SafetySystem safety_system & ams_interface