Fix: encoding value method has wrong signature.
authorRomain Forlot <romain.forlot@iot.bzh>
Fri, 14 Jul 2017 15:31:12 +0000 (17:31 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Fri, 21 Jul 2017 10:02:11 +0000 (12:02 +0200)
Change-Id: I227c721f782eef85f83db9ffdb7cc0e180d17da4
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
low-can-binding/can/can-encoder.cpp
low-can-binding/can/can-encoder.hpp

index b87407f..9ba8531 100644 (file)
 /// @param[in] length - The length of the destination buffer.
 ///
 /// @return Returns a can_frame struct initialized and ready to be send.
-const can_frame build_frame(const can_signal_t& signal, uint64_t value)
+const can_frame encoder_t::build_frame(const std::shared_ptr<can_signal_t>& signal, uint64_t value)
 {
        struct can_frame cf;
        ::memset(&cf, 0, sizeof(cf));
 
-       cf.can_id = signal.get_message()->get_id();
+       cf.can_id = signal->get_message()->get_id();
        cf.can_dlc = CAN_MAX_DLEN;
        bitfield_encode_float((float)value,
-                                               signal.get_bit_position(),
-                                               signal.get_bit_size(),
-                                               signal.get_factor(),
-                                               signal.get_offset(),
+                                               signal->get_bit_position(),
+                                               signal->get_bit_size(),
+                                               signal->get_factor(),
+                                               signal->get_offset(),
                                                cf.data,
                                                CAN_MAX_DLEN);
 
index f7e8394..c79e224 100644 (file)
@@ -24,7 +24,7 @@
 class encoder_t
 {
 public:
-       static const can_frame build_frame(const can_signal_t& signal, uint64_t value);
+       static const can_frame build_frame(const std::shared_ptr<can_signal_t>& signal, uint64_t value);
        static uint64_t encode_state(const can_signal_t& signal, const std::string& value, bool* send);
        static uint64_t encode_boolean(const can_signal_t& signal, bool value, bool* send);
        static uint64_t encode_number(const can_signal_t& signal, float value, bool* send);