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=b0a33f781c5131039744e93c9d288b57018163b4;hpb=4216b5e6af9979e1f49175be8db9e0578ff9cbf5;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 b0a33f78..56e9379f 100644 --- a/low-can-binding/can/message/message.cpp +++ b/low-can-binding/can/message/message.cpp @@ -28,7 +28,7 @@ message_t::message_t() : maxdlen_{0}, length_{0}, - format_{message_format_t::INVALID}, + flags_{INVALID_FLAG}, timestamp_{0}, sub_id_{-1} {} @@ -44,12 +44,12 @@ message_t::message_t() */ message_t::message_t(uint32_t maxdlen, uint32_t length, - message_format_t format, + uint32_t flags, std::vector& data, uint64_t timestamp) : maxdlen_{maxdlen}, length_{length}, - format_{format}, + flags_{flags}, data_{data}, timestamp_{timestamp}, sub_id_{-1} @@ -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; } @@ -135,7 +123,7 @@ uint32_t message_t::get_length() const * * @param data A vector of data */ -void message_t::set_data(std::vector &data) +void message_t::set_data(std::vector data) { data_ = data; } @@ -160,12 +148,43 @@ uint64_t message_t::get_timestamp() const return timestamp_; } -/** - * @brief Return the format of the message - * - * @return message_format_t The message format - */ -message_format_t message_t::get_msg_format() +uint32_t message_t::get_flags() { - return format_; + return flags_; +} + +void message_t::set_flags(uint32_t flags) +{ + flags_ = flags_ | flags; +} + +void message_t::erase_flags() +{ + flags_ = 0; +} + +uint32_t message_t::get_maxdlen() +{ + return maxdlen_; +} + +void message_t::set_maxdlen(uint32_t maxdlen) +{ + maxdlen_ = maxdlen; +} + +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_); }