From ea7bd1ebc31b1e8e7a05b03ebd55d6082a8dc36f Mon Sep 17 00:00:00 2001 From: Paul Guenette Date: Sun, 19 May 2019 22:38:28 +0200 Subject: [PATCH] Add can_get/set function that take signal objects --- Firmware/Tests/test_runner.cpp | 19 ++++++++++++------- Firmware/communication/interface_can.hpp | 10 ++++++++++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/Firmware/Tests/test_runner.cpp b/Firmware/Tests/test_runner.cpp index cd00e93f..560cb5c7 100644 --- a/Firmware/Tests/test_runner.cpp +++ b/Firmware/Tests/test_runner.cpp @@ -81,21 +81,26 @@ void can_setSignal(can_Message_t& msg, const T& val, const uint8_t startBit, con } } -// template -// T can_getSignal(can_Message_t msg, can_Signal_t signal){ -// return can_getSignal(msg, signal.startBit, signal.length, signal.isIntel, signal.factor, signal.offset); -// } +template +T can_getSignal(can_Message_t msg, const can_Signal_t& signal) { + return can_getSignal(msg, signal.startBit, signal.length, signal.isIntel, signal.factor, signal.offset); +} -TEST_CASE("fake"){ +template +void can_setSignal(can_Message_t& msg, const T& val, const can_Signal_t& signal) { + can_setSignal(msg, val, signal.startBit, signal.length, signal.isIntel, signal.factor, signal.offset); +} + +TEST_CASE("fake") { cout << endl; } TEST_SUITE("CAN Functions") { TEST_CASE("reverse") { can_Message_t rxmsg; - rxmsg.id = 0x000; + rxmsg.id = 0x000; rxmsg.isExt = false; - rxmsg.len = 8; + rxmsg.len = 8; rxmsg.buf[0] = 0x12; rxmsg.buf[1] = 0x34; diff --git a/Firmware/communication/interface_can.hpp b/Firmware/communication/interface_can.hpp index 58c32d76..28e3987b 100644 --- a/Firmware/communication/interface_can.hpp +++ b/Firmware/communication/interface_can.hpp @@ -135,6 +135,16 @@ void can_setSignal(can_Message_t& msg, const T& val, const uint8_t startBit, con } } +template +T can_getSignal(can_Message_t msg, const can_Signal_t& signal) { + return can_getSignal(msg, signal.startBit, signal.length, signal.isIntel, signal.factor, signal.offset); +} + +template +void can_setSignal(can_Message_t& msg, const T& val, const can_Signal_t& signal) { + can_setSignal(msg, val, signal.startBit, signal.length, signal.isIntel, signal.factor, signal.offset); +} + DEFINE_ENUM_FLAG_OPERATORS(ODriveCAN::Error_t) #endif // __INTERFACE_CAN_HPP