aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2019-11-26 16:19:08 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2019-11-28 16:11:47 +0100
commitdfc20c88b083f06aad5048f2facf4cbde1ea3de4 (patch)
treefb8693aab375377cd37f0f499b17e33b7c952e7b
parentdbc9c9912317185356f0333bd9bb546d4d4f38c7 (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>
-rw-r--r--low-can-binding/can/message/message.cpp34
-rw-r--r--low-can-binding/can/message/message.hpp1
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;