diff options
author | Clément Bénier <clement.benier@iot.bzh> | 2019-11-15 11:20:34 +0100 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2020-01-09 14:40:41 +0100 |
commit | 6cc152447e74b1ce7fab6c7aa1f9b4e5e8232444 (patch) | |
tree | 2e4f9dd31136abd18e5c1c52c8bf2a0ec8921331 /low-can-binding/can/signals.cpp | |
parent | 03a4775eefeeba913f69d331e3930700a567c4c5 (diff) |
sign: handle decode methods sign from can value
- add enumeration that represents the way of encoding:
enum sign_t
{
UNSIGNED = 0,
SIGN_BIT = 1,
ONES_COMPLEMENT = 2,
TWOS_COMPLEMENT = 3,
SIGN_BIT_EXTERN = 4
};
- the function handle_sign allows to transform value if negative and
return the sign of the value in order to be multiplied at the end ot the
parcing
Bug-AGL: SPEC-3021
Change-Id: I5766a286488170d930422474b4c4f3a8578ca726
Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'low-can-binding/can/signals.cpp')
-rwxr-xr-x | low-can-binding/can/signals.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/low-can-binding/can/signals.cpp b/low-can-binding/can/signals.cpp index 2b87dc6f..da8df988 100755 --- a/low-can-binding/can/signals.cpp +++ b/low-can-binding/can/signals.cpp @@ -46,7 +46,8 @@ signal_t::signal_t( bool received, std::pair<bool, int> multiplex, bool is_big_endian, - bool is_signed, + sign_t sign, + int32_t bit_sign_position, std::string unit) : parent_{nullptr}, generic_name_{ generic_name } @@ -67,7 +68,8 @@ signal_t::signal_t( , last_value_{.0f} , multiplex_{multiplex} , is_big_endian_{is_big_endian} - , is_signed_{is_signed} + , sign_{sign} + , bit_sign_position_{bit_sign_position} , unit_{unit} {} @@ -235,9 +237,14 @@ bool signal_t::get_is_big_endian() const return is_big_endian_; } -bool signal_t::get_is_signed() const +sign_t signal_t::get_sign() const { - return is_signed_; + return sign_; +} + +int32_t signal_t::get_bit_sign_position() const +{ + return bit_sign_position_; } const std::string signal_t::get_unit() const |