MCU
Loading...
Searching...
No Matches
Telemetry_interface_test.h
Go to the documentation of this file.
1#ifndef __TELEMETRY_INTERFACE_TEST__
2#define __TELEMETRY_INTERFACE_TEST__
3
4#include <Arduino.h>
5#include <unity.h>
6
7#include "TelemetryInterface.h"
9#include "FlexCAN_T4.h"
10#include "HyTech_CAN.h"
13
15
17
19
20 TelemetryInterface telem_interface(&CAN_tx_test, channels);
21
22 // Pedal readings
23 AnalogConversion_s accel1;
24 AnalogConversion_s accel2;
25 AnalogConversion_s brake1;
26 AnalogConversion_s brake2;
27 accel1.raw = 1;
28 accel2.raw = 2;
29 brake1.raw = 3;
30 brake2.raw = 4;
31 telem_interface.update_pedal_readings_CAN_msg(accel1, accel2, brake1, brake2);
32 CAN_message_t msg;
33 MCU_pedal_readings pedal_can_msg;
34 uint8_t buf[sizeof(CAN_message_t)];
35 CAN_tx_test.pop_front(buf, sizeof(CAN_message_t));
36 memmove(&msg, buf, sizeof(msg));
37 TEST_ASSERT_EQUAL(ID_MCU_PEDAL_READINGS, msg.id);
38 pedal_can_msg.load(msg.buf);
39 TEST_ASSERT_EQUAL(accel1.raw, pedal_can_msg.get_accelerator_pedal_1());
40 TEST_ASSERT_EQUAL(accel2.raw, pedal_can_msg.get_accelerator_pedal_2());
41 TEST_ASSERT_EQUAL(brake1.raw, pedal_can_msg.get_brake_pedal_1());
42 TEST_ASSERT_EQUAL(brake2.raw, pedal_can_msg.get_brake_pedal_2());
43
44 // Analog readings
46 AnalogConversion_s steer2;
47 AnalogConversion_s current;
48 AnalogConversion_s reference;
49 AnalogConversion_s glv;
50 steer1.angle = 1234.567890;
51 steer2.raw = 45;
52 current.raw = 67;
53 reference.raw = 23;
54 glv.raw = 178;
55 telem_interface.update_analog_readings_CAN_msg(steer1, steer2, current, reference, glv);
56 MCU_analog_readings analog_can_msg;
57 CAN_tx_test.pop_front(buf, sizeof(CAN_message_t));
58 memmove(&msg, buf, sizeof(msg));
59 TEST_ASSERT_EQUAL(ID_MCU_ANALOG_READINGS, msg.id);
60 analog_can_msg.load(msg.buf);
61 TEST_ASSERT_EQUAL(static_cast<int16_t>(steer1.angle * 10000), analog_can_msg.get_steering_1());
62 TEST_ASSERT_EQUAL(steer2.raw, analog_can_msg.get_steering_2());
63 TEST_ASSERT_EQUAL(current.raw - reference.raw, analog_can_msg.get_hall_effect_current());
64 TEST_ASSERT_EQUAL(glv.raw, analog_can_msg.get_glv_battery_voltage());
65
66 // Front load cells
67 AnalogConversion_s lc_fl;
68 AnalogConversion_s lc_fr;
69 lc_fl.raw = 107;
70 lc_fr.raw = 93;
71 telem_interface.update_load_cells_CAN_msg(lc_fl, lc_fr);
72 MCU_load_cells load_cells_can_msg;
73 CAN_tx_test.pop_front(buf, sizeof(CAN_message_t));
74 memmove(&msg, buf, sizeof(msg));
75 TEST_ASSERT_EQUAL(ID_MCU_LOAD_CELLS, msg.id);
76 load_cells_can_msg.load(msg.buf);
77 TEST_ASSERT_EQUAL(lc_fl.raw, load_cells_can_msg.get_FL_load_cell());
78 TEST_ASSERT_EQUAL(lc_fr.raw, load_cells_can_msg.get_FR_load_cell());
79
80 // Front pots
81 AnalogConversion_s pots_fl;
82 AnalogConversion_s pots_fr;
83 pots_fl.raw = 78;
84 pots_fr.raw = 90;
85 telem_interface.update_potentiometers_CAN_msg(pots_fl, pots_fr);
86 MCU_front_potentiometers front_pots_can_msg;
87 CAN_tx_test.pop_front(buf, sizeof(CAN_message_t));
88 memmove(&msg, buf, sizeof(msg));
89 TEST_ASSERT_EQUAL(ID_MCU_FRONT_POTS, msg.id);
90 front_pots_can_msg.load(msg.buf);
91 TEST_ASSERT_EQUAL(pots_fl.raw, front_pots_can_msg.get_pot1());
92 TEST_ASSERT_EQUAL(pots_fr.raw, front_pots_can_msg.get_pot3());
93}
94
95
96#endif
Circular_Buffer< uint8_t,(uint32_t) 128, sizeof(CAN_message_t)> CANBufferType
void test_telemetry_update_CAN()
CANBufferType CAN_tx_test
void update_pedal_readings_CAN_msg(float accel_percent, float brake_percent, float mech_brake_percent)
void update_analog_readings_CAN_msg(const SteeringEncoderConversion_s &steer1, const AnalogConversion_s &steer2, const AnalogConversion_s &current, const AnalogConversion_s &reference, const AnalogConversion_s &glv)
CAN_message_t msg