diff options
Diffstat (limited to 'low-can-binding/can/message')
-rw-r--r-- | low-can-binding/can/message/message.cpp | 11 | ||||
-rw-r--r-- | low-can-binding/can/message/message.hpp | 3 |
2 files changed, 13 insertions, 1 deletions
diff --git a/low-can-binding/can/message/message.cpp b/low-can-binding/can/message/message.cpp index 22887c9a..56e9379f 100644 --- a/low-can-binding/can/message/message.cpp +++ b/low-can-binding/can/message/message.cpp @@ -177,3 +177,14 @@ void message_t::set_length(uint32_t length) { length_ = length; } + +void message_t::frame_swap() +{ + int i; + uint8_t *temp = (uint8_t*)alloca(length_); + + for(i = 0; i < length_; i++) + temp[i] = data_[length_ - i - 1]; + + memcpy(data_.data(), temp, length_); +} diff --git a/low-can-binding/can/message/message.hpp b/low-can-binding/can/message/message.hpp index 9a074e31..e5e6769b 100644 --- a/low-can-binding/can/message/message.hpp +++ b/low-can-binding/can/message/message.hpp @@ -44,7 +44,7 @@ #define ISOTP_SEND 0x0020 #define ISOTP_RECEIVE 0x0040 #define CAN_PROTOCOL_WITH_FD_FRAME 0x0080 -#define FRAME_LAYOUT_IS_LE 0x0100 +#define FRAME_LAYOUT_IS_LE 0x0100 // LE stand for Little Endian /// @class message_t /// @@ -84,4 +84,5 @@ public: uint32_t get_maxdlen(); void set_maxdlen(uint32_t maxdlen); void set_length(uint32_t length); + void frame_swap(); }; |