X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=low-can-binding%2Fcan%2Fmessage%2Fmessage.cpp;h=22887c9ae0da663b96ba2efbe910f504152d25d4;hb=7f905a75de0600ef0c2316db0f3deaa33aabd9e7;hp=5384c0211eb46064a95e28509ac7f3d67132ebf0;hpb=88077fb4b383cf7f35093b6cc0d2d9d86c6f1bf3;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 5384c021..22887c9a 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} @@ -76,6 +76,28 @@ const uint8_t* message_t::get_data() const return data_.data(); } + +/// +/// @brief Retrieve data_ member value. +/// +/// @return pointer to the first element +/// of class member data_ +/// +const std::vector message_t::get_data_vector(int start, int end) const +{ + if ( start > length_ || end > length_ ) + { + AFB_ERROR("Error index to get data vector, [%d-%d] - for length %d", start, end, length_); + return data_; + } + + std::vector::const_iterator first = data_.begin() + start; + std::vector::const_iterator last = data_.begin() + end; + std::vector ret(first, last); + + return ret; +} + /// /// @brief Retrieve data_ member whole vector /// @@ -101,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; } @@ -126,12 +148,32 @@ 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 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) { - return format_; + length_ = length; }