From 39bf0a589b869c6673b2ce38f48c5e08f4e1113e Mon Sep 17 00:00:00 2001 From: NoahAndrews <10224994+NoahAndrews@users.noreply.github.com.> Date: Wed, 30 Oct 2024 12:28:06 -0500 Subject: [PATCH 1/2] Enforce that CANMessage.m_dataSize won't be larger than 8 bytes --- src/main/native/include/rev/CANMessage.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/native/include/rev/CANMessage.h b/src/main/native/include/rev/CANMessage.h index 797b7aa..bbd5be8 100644 --- a/src/main/native/include/rev/CANMessage.h +++ b/src/main/native/include/rev/CANMessage.h @@ -78,11 +78,12 @@ class CANMessage { public: CANMessage() : m_data{0}, m_size(0), m_messageId(0) { } CANMessage(uint32_t messageId, const uint8_t* data, uint8_t dataSize, uint32_t timestampUs = 0) : - m_size(dataSize), m_messageId(messageId) { - + m_messageId(messageId) { + // TODO: Support CAN FD + m_dataSize = dataSize > 8 ? 8 : dataSize m_timestamp = (timestampUs != 0) ? timestampUs : std::chrono::time_point_cast(std::chrono::steady_clock::now()).time_since_epoch().count(); std::memset(m_data, 0, 8); - std::memcpy(m_data, data, dataSize > 8 ? 8 : dataSize); + std::memcpy(m_data, data, m_dataSize); } ~CANMessage() = default; From fc6ffd67df022bda8837a9e2f7172cba7358aa80 Mon Sep 17 00:00:00 2001 From: NoahAndrews <10224994+NoahAndrews@users.noreply.github.com.> Date: Wed, 30 Oct 2024 12:28:13 -0500 Subject: [PATCH 2/2] Fix typo --- src/main/native/cpp/Drivers/CandleWinUSB/CandleWinUSBDevice.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/native/cpp/Drivers/CandleWinUSB/CandleWinUSBDevice.cpp b/src/main/native/cpp/Drivers/CandleWinUSB/CandleWinUSBDevice.cpp index ef53acb..131db8c 100644 --- a/src/main/native/cpp/Drivers/CandleWinUSB/CandleWinUSBDevice.cpp +++ b/src/main/native/cpp/Drivers/CandleWinUSB/CandleWinUSBDevice.cpp @@ -131,7 +131,7 @@ CANStatus CandleWinUSBDevice::ReceiveCANMessage(std::shared_ptr& msg // Assume timeout CANStatus status = CANStatus::kTimeout; - // parse through the keys, find the messges the match, and return it + // parse through the keys, find the messages that match, and return it // The first in the message id, then the messages std::map> messages; m_thread.ReceiveMessage(messages);