File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed
src/main/native/include/rev Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change 3636#include < iostream>
3737#include < chrono>
3838
39+ #define NON_RESERVED_ARB_ID_MASK 0x1FFFFFFF
40+
3941namespace rev {
4042namespace usb {
4143
Original file line number Diff line number Diff line change 5353#include < hal/simulation/CanData.h>
5454#include < hal/CAN.h>
5555
56+ #define CANDLE_EXTENDED_ID_MASK 0x80000000
57+ #define CANDLE_REMOTE_FRAME_MASK 0x40000000
58+
5659namespace rev {
5760namespace usb {
5861
@@ -169,8 +172,20 @@ class CandleWinUSBDeviceThread :public DriverDeviceThread {
169172 if (el.m_intervalMs <= 1 || (now - el.m_prevTimestamp >= std::chrono::milliseconds (el.m_intervalMs )) ) {
170173 candle_frame_t frame;
171174 frame.can_dlc = el.m_msg .GetSize ();
172- // set extended id flag
173- frame.can_id = el.m_msg .GetMessageId () | 0x80000000 ;
175+
176+ uint32_t messageId = el.m_msg .GetMessageId () & NON_RESERVED_ARB_ID_MASK;
177+
178+ bool isExtended = true ; // FRC CAN is always extended
179+ bool isRtr = messageId & HAL_CAN_IS_FRAME_REMOTE;
180+
181+ frame.can_id = messageId;
182+ if (isExtended) {
183+ frame.can_id |= CANDLE_EXTENDED_ID_MASK;
184+ }
185+ if (isRtr) {
186+ frame.can_id |= CANDLE_REMOTE_FRAME_MASK;
187+ }
188+
174189 memcpy (frame.data , el.m_msg .GetData (), frame.can_dlc );
175190 frame.timestamp_us = now.time_since_epoch ().count () / 1000 ;
176191
You can’t perform that action at this time.
0 commit comments