From cb2f3b25c8d863da307aeb285c9097fe0a5441ba Mon Sep 17 00:00:00 2001 From: Paul Guenette Date: Thu, 4 Feb 2021 17:42:33 -0500 Subject: [PATCH] Convert to all reinterpret_cast for can_getSignal --- Firmware/Private | 2 +- Firmware/interfaces/can_helpers.hpp | 9 ++------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/Firmware/Private b/Firmware/Private index b0df5003..0e704b80 160000 --- a/Firmware/Private +++ b/Firmware/Private @@ -1 +1 @@ -Subproject commit b0df5003c67cc0c78b080b98cb54d4b4e1a00b32 +Subproject commit 0e704b802e1dde089cfea7557b73b46aa90a3b02 diff --git a/Firmware/interfaces/can_helpers.hpp b/Firmware/interfaces/can_helpers.hpp index ba7f539b..bdaea210 100644 --- a/Firmware/interfaces/can_helpers.hpp +++ b/Firmware/interfaces/can_helpers.hpp @@ -54,14 +54,11 @@ struct can_Cyclic_t { uint32_t lastTime_ms; }; -#include template constexpr T can_getSignal(const can_Message_t& msg, const uint8_t startBit, const uint8_t length, const bool isIntel) { - uint64_t tempVal = 0; uint64_t mask = length < 64 ? (1ULL << length) - 1ULL : -1ULL; - std::memcpy(&tempVal, msg.buf, sizeof(tempVal)); - + uint64_t tempVal = *(reinterpret_cast(msg.buf)); if (isIntel) { tempVal = (tempVal >> startBit) & mask; } else { @@ -69,9 +66,7 @@ constexpr T can_getSignal(const can_Message_t& msg, const uint8_t startBit, cons tempVal = (tempVal >> (64 - startBit - length)) & mask; } - T retVal; - std::memcpy(&retVal, &tempVal, sizeof(T)); - return retVal; + return *(reinterpret_cast(&tempVal)); } template