From b5401df91ef1ded2430b8337294f9a1d7a5cb77f Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Tue, 26 Nov 2019 16:19:40 +0100 Subject: 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 Signed-off-by: Romain Forlot --- low-can-binding/can/signals.cpp | 12 ++++++------ 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 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(); -- cgit 1.2.3-korg