can: Add big endian CAN frame layout handle
[apps/agl-service-can-low-level.git] / low-can-binding / can / can-decoder.cpp
index e901240..a6b6c14 100644 (file)
@@ -294,7 +294,10 @@ openxc_DynamicField decoder_t::decode_state(signal_t& signal, std::shared_ptr<me
 ///
 openxc_DynamicField decoder_t::translate_signal(signal_t& signal, std::shared_ptr<message_t> message, bool* send)
 {
-
+       if(!signal.get_message()->frame_layout_is_little())
+       {
+               signal.set_bit_position(converter_t::bit_position_swap(signal.get_bit_position(),signal.get_bit_size()));
+       }       
        // Must call the decoders every time, regardless of if we are going to
        // decide to send the signal or not.
        openxc_DynamicField decoded_value = decoder_t::decode_signal(signal,