aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-11-30 09:43:46 +0100
committerRomain Forlot <romain.forlot@iot.bzh>2017-11-30 09:43:46 +0100
commitf94d6331c3dc58bef76c13751f2f6c51fe133324 (patch)
tree903dfa8efa4d73c11c98ca8395bfad7f7ae451d3
parentc581ce6aee5ae878f9ccee02b1cc2651fa43030e (diff)
Correctly reconstituting entire CAN frame
Change-Id: I39d226c6f6268ec880739e6b9230eb42ce475971 Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-rw-r--r--low-can-binding/can/can-encoder.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/low-can-binding/can/can-encoder.cpp b/low-can-binding/can/can-encoder.cpp
index 5cb1f244..e0015da2 100644
--- a/low-can-binding/can/can-encoder.cpp
+++ b/low-can-binding/can/can-encoder.cpp
@@ -42,11 +42,12 @@ const can_frame encoder_t::build_frame(const std::shared_ptr<can_signal_t>& sign
for(const auto& sig: signal->get_message()->get_can_signals())
{
- bitfield_encode_float((float)value,
- signal->get_bit_position(),
- signal->get_bit_size(),
- signal->get_factor(),
- signal->get_offset(),
+ float last_value = sig->get_last_value();
+ bitfield_encode_float(last_value,
+ sig->get_bit_position(),
+ sig->get_bit_size(),
+ sig->get_factor(),
+ sig->get_offset(),
cf.data,
CAN_MAX_DLEN);
}