X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fcan%2Fmessage%2Fmessage.cpp;h=56e9379f81f48c1d1ca5fbcf6b030f4ad99f5967;hb=0ff6413b6dc42849f87ce8caa17a91f44ede2f93;hp=2496b67219de08f322af8aed9686fa9af90d936c;hpb=b8e8186c95f50e76aa4d88c3c751053568ab7cdf;p=apps%2Fagl-service-can-low-level.git diff --git a/low-can-binding/can/message/message.cpp b/low-can-binding/can/message/message.cpp index 2496b672..56e9379f 100644 --- a/low-can-binding/can/message/message.cpp +++ b/low-can-binding/can/message/message.cpp @@ -83,30 +83,18 @@ const uint8_t* message_t::get_data() const /// @return pointer to the first element /// of class member data_ /// -const std::vector message_t::get_data_vector(int start,int end) const +const std::vector message_t::get_data_vector(int start, int end) const { - std::vector ret; - if(start >= 0) + if ( start > length_ || end > length_ ) { - if(end::const_iterator first = data_.begin() + start; + std::vector::const_iterator last = data_.begin() + end; + std::vector ret(first, last); + return ret; } @@ -188,4 +176,15 @@ void message_t::set_maxdlen(uint32_t maxdlen) void message_t::set_length(uint32_t length) { length_ = length; -} \ No newline at end of file +} + +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_); +}