diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2019-11-26 16:19:40 +0100 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2019-11-28 16:11:47 +0100 |
commit | b5401df91ef1ded2430b8337294f9a1d7a5cb77f (patch) | |
tree | 95320c0194f28b48f9cd5d7c808f3c707c764fcf | |
parent | 22b1864b72c2520fbc9d4e3d3332c28916b5a9ed (diff) |
Update bit position and bit size in signal
It's necessary to change the size of attributes
to manage multi packet signal.
Bug-AGL : SPEC-2779
Bug-AGL: SPEC-2976
Change-Id: If211c218ffa5a2e81ccfb32d3a5eeae0267e8f74
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/signals.cpp | 12 | ||||
-rw-r--r-- | low-can-binding/can/signals.hpp | 17 |
2 files changed, 15 insertions, 14 deletions
diff --git a/low-can-binding/can/signals.cpp b/low-can-binding/can/signals.cpp index 3d263431..7d3b7331 100644 --- a/low-can-binding/can/signals.cpp +++ b/low-can-binding/can/signals.cpp @@ -30,8 +30,8 @@ std::string signal_t::prefix_ = "messages"; signal_t::signal_t( std::string generic_name, - uint8_t bit_position, - uint8_t bit_size, + uint32_t bit_position, + uint32_t bit_size, float factor, float offset, float min_value, @@ -73,8 +73,8 @@ signal_t::signal_t( signal_t::signal_t( std::string generic_name, - uint8_t bit_position, - uint8_t bit_size, + uint32_t bit_position, + uint32_t bit_size, float factor, float offset, float min_value, @@ -119,12 +119,12 @@ const std::string signal_t::get_name() const return prefix_ + "." + generic_name_; } -uint8_t signal_t::get_bit_position() const +uint32_t signal_t::get_bit_position() const { return bit_position_; } -uint8_t signal_t::get_bit_size() const +uint32_t signal_t::get_bit_size() const { return bit_size_; } diff --git a/low-can-binding/can/signals.hpp b/low-can-binding/can/signals.hpp index 9a8572c9..e723100e 100644 --- a/low-can-binding/can/signals.hpp +++ b/low-can-binding/can/signals.hpp @@ -62,6 +62,7 @@ typedef openxc_DynamicField (*signal_decoder)(signal_t& signal, float value, boo typedef uint64_t (*signal_encoder)(signal_t& signal, const openxc_DynamicField& field, bool* send); + class signal_t { private: @@ -69,10 +70,10 @@ private: std::string generic_name_; /*!< generic_name_ - The name of the signal to be output.*/ static std::string prefix_; /*!< prefix_ - generic_name_ will be prefixed with it. It has to reflect the used protocol. * which make easier to sort message when the come in.*/ - uint8_t bit_position_; /*!< bitPosition_ - The starting bit of the signal in its CAN message (assuming + uint32_t bit_position_; /*!< bitPosition_ - The starting bit of the signal in its CAN message (assuming * non-inverted bit numbering, i.e. the most significant bit of * each byte is 0) */ - uint8_t bit_size_; /*!< bit_size_ - The width of the bit field in the CAN message. */ + uint32_t bit_size_; /*!< bit_size_ - The width of the bit field in the CAN message. */ float factor_; /*!< factor_ - The final value will be multiplied by this factor. Use 1 if you * don't need a factor. */ float offset_; /*!< offset_ - The final value will be added to this offset. Use 0 if you @@ -108,8 +109,8 @@ public: signal_t( std::string generic_name, - uint8_t bit_position, - uint8_t bit_size, + uint32_t bit_position, + uint32_t bit_size, float factor, float offset, float min_value, @@ -130,8 +131,8 @@ public: signal_t( std::string generic_name, - uint8_t bit_position, - uint8_t bit_size, + uint32_t bit_position, + uint32_t bit_size, float factor, float offset, float min_value, @@ -149,8 +150,8 @@ public: std::shared_ptr<message_definition_t> get_message() const; const std::string get_generic_name() const; const std::string get_name() const; - uint8_t get_bit_position() const; - uint8_t get_bit_size() const; + uint32_t get_bit_position() const; + uint32_t get_bit_size() const; float get_factor() const; float get_offset() const; frequency_clock_t& get_frequency(); |