File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed
src/main/native/include/rev Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change 36
36
#include < iostream>
37
37
#include < chrono>
38
38
39
+ #define EXTENDED_ID_MASK 0x40000000
40
+ #define REMOTE_FRAME_MASK 0x80000000
41
+
39
42
namespace rev {
40
43
namespace usb {
41
44
@@ -178,6 +181,7 @@ class CANMessage {
178
181
uint8_t m_size;
179
182
uint32_t m_messageId;
180
183
uint32_t m_timestamp;
184
+ bool m_is_remote;
181
185
bool m_isNew{true };
182
186
};
183
187
Original file line number Diff line number Diff line change 53
53
#include < hal/simulation/CanData.h>
54
54
#include < hal/CAN.h>
55
55
56
+ #define CANDLE_EXTENDED_ID_MASK 0x80000000
57
+ #define CANDLE_REMOTE_FRAME_MASK 0x40000000
58
+
56
59
namespace rev {
57
60
namespace usb {
58
61
@@ -169,8 +172,20 @@ class CandleWinUSBDeviceThread :public DriverDeviceThread {
169
172
if (el.m_intervalMs <= 1 || (now - el.m_prevTimestamp >= std::chrono::milliseconds (el.m_intervalMs )) ) {
170
173
candle_frame_t frame;
171
174
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 ();
177
+
178
+ bool isExtended = true ; // FRC CAN is always extended
179
+ bool isRtr = messageId & REMOTE_FRAME_MASK;
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
+
174
189
memcpy (frame.data , el.m_msg .GetData (), frame.can_dlc );
175
190
frame.timestamp_us = now.time_since_epoch ().count () / 1000 ;
176
191
You can’t perform that action at this time.
0 commit comments