2727#include "common-hal/canio/__init__.h"
2828#include "shared-bindings/canio/RemoteTransmissionRequest.h"
2929
30- typedef union
31- {
32- uint32_t word ;
33- uint8_t bytes [4 ];
34- } mimxrt_word_bytes_t ;
35-
3630// Convert from back from FLEXCAN IDs to normal CAN IDs.
3731#define FLEXCAN_ID_TO_CAN_ID_STD (id ) \
3832 ((uint32_t)((((uint32_t)(id)) & CAN_ID_STD_MASK) >> CAN_ID_STD_SHIFT))
@@ -62,17 +56,15 @@ bool mimxrt_canio_message_obj_to_flexcan_frame(canio_message_obj_t *src, flexcan
6256 }
6357
6458 dst -> length = src -> size ; // CAN frame data length in bytes (Range: 0~8).
65- mimxrt_word_bytes_t mixVal ;
66- mixVal .bytes [0 ] = src -> data [0 ];
67- mixVal .bytes [1 ] = src -> data [1 ];
68- mixVal .bytes [2 ] = src -> data [2 ];
69- mixVal .bytes [3 ] = src -> data [3 ];
70- dst -> dataWord0 = mixVal .word ; // CAN Frame payload word0.
71- mixVal .bytes [0 ] = src -> data [4 ];
72- mixVal .bytes [1 ] = src -> data [5 ];
73- mixVal .bytes [2 ] = src -> data [6 ];
74- mixVal .bytes [3 ] = src -> data [7 ];
75- dst -> dataWord1 = mixVal .word ; // CAN Frame payload word1.
59+
60+ dst -> dataByte0 = src -> data [0 ];
61+ dst -> dataByte1 = src -> data [1 ];
62+ dst -> dataByte2 = src -> data [2 ];
63+ dst -> dataByte3 = src -> data [3 ];
64+ dst -> dataByte4 = src -> data [4 ];
65+ dst -> dataByte5 = src -> data [5 ];
66+ dst -> dataByte6 = src -> data [6 ];
67+ dst -> dataByte7 = src -> data [7 ];
7668
7769 return true;
7870}
@@ -97,17 +89,15 @@ bool mimxrt_flexcan_frame_to_canio_message_obj(flexcan_frame_t *src, canio_messa
9789 }
9890
9991 dst -> size = src -> length ; // CAN frame data length in bytes (Range: 0~8).
100- mimxrt_word_bytes_t mixVal ;
101- mixVal .word = src -> dataWord0 ; // CAN Frame payload word0.
102- dst -> data [0 ] = mixVal .bytes [0 ];
103- dst -> data [1 ] = mixVal .bytes [1 ];
104- dst -> data [2 ] = mixVal .bytes [2 ];
105- dst -> data [3 ] = mixVal .bytes [3 ];
106- mixVal .word = src -> dataWord1 ; // CAN Frame payload word1.
107- dst -> data [4 ] = mixVal .bytes [0 ];
108- dst -> data [5 ] = mixVal .bytes [1 ];
109- dst -> data [6 ] = mixVal .bytes [2 ];
110- dst -> data [7 ] = mixVal .bytes [3 ];
92+
93+ dst -> data [0 ] = src -> dataByte0 ;
94+ dst -> data [1 ] = src -> dataByte1 ;
95+ dst -> data [2 ] = src -> dataByte2 ;
96+ dst -> data [3 ] = src -> dataByte3 ;
97+ dst -> data [4 ] = src -> dataByte4 ;
98+ dst -> data [5 ] = src -> dataByte5 ;
99+ dst -> data [6 ] = src -> dataByte6 ;
100+ dst -> data [7 ] = src -> dataByte7 ;
111101
112102 return true;
113103}
0 commit comments