diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2019-11-26 16:19:08 +0100 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2019-11-28 16:11:47 +0100 |
commit | dfc20c88b083f06aad5048f2facf4cbde1ea3de4 (patch) | |
tree | fb8693aab375377cd37f0f499b17e33b7c952e7b /low-can-binding/can | |
parent | dbc9c9912317185356f0333bd9bb546d4d4f38c7 (diff) |
Add function get_data_vector with index
This commit adds the function get_data_vector to get
another vector between the index indicates.
Bug-AGL : SPEC-2779
Bug-AGL: SPEC-2976
Change-Id: I704d78467839ee7f9a2fec397e9b0db8da43d79d
Signed-off-by: Arthur Guyader <arthur.guyader@iot.bzh>
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'low-can-binding/can')
-rw-r--r-- | low-can-binding/can/message/message.cpp | 34 | ||||
-rw-r--r-- | low-can-binding/can/message/message.hpp | 1 |
2 files changed, 35 insertions, 0 deletions
diff --git a/low-can-binding/can/message/message.cpp b/low-can-binding/can/message/message.cpp index 5384c021..b0a33f78 100644 --- a/low-can-binding/can/message/message.cpp +++ b/low-can-binding/can/message/message.cpp @@ -76,6 +76,40 @@ 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<uint8_t> message_t::get_data_vector(int start,int end) const +{ + std::vector<uint8_t> ret; + if(start >= 0) + { + if(end<length_) + { + for(int i=start;i<=end;i++) + { + ret.push_back(data_[i]); + } + } + else + { + for(int i=start;i<length_;i++) + { + ret.push_back(data_[i]); + } + } + } + else + { + AFB_ERROR("Error index to get data vector, [%d-%d] - for length %d",start,end,length_); + } + return ret; +} + /// /// @brief Retrieve data_ member whole vector /// diff --git a/low-can-binding/can/message/message.hpp b/low-can-binding/can/message/message.hpp index 48f4d98b..f0e1bf0b 100644 --- a/low-can-binding/can/message/message.hpp +++ b/low-can-binding/can/message/message.hpp @@ -66,6 +66,7 @@ public: int get_sub_id() const; const uint8_t* get_data() const; const std::vector<uint8_t> get_data_vector() const; + const std::vector<uint8_t> get_data_vector(int start,int end) const; uint32_t get_length() const; uint64_t get_timestamp() const; |