Add gitlab issue/merge request templates
[apps/agl-service-can-low-level.git] / low-can-binding / binding / low-can-hat.cpp
index 26795f4..7258074 100644 (file)
@@ -66,13 +66,19 @@ int read_message(sd_event_source *event_source, int fd, uint32_t revents, void *
                if(can_subscription->get_index() != -1)
                {
                        std::shared_ptr<utils::socketcan_t> s = can_subscription->get_socket();
-                       if(s->socket() && s->socket() != -1)
+                       if(s->socket() > 0)
                        {
                                std::shared_ptr<message_t> message = s->read_message();
 
                                // Sure we got a valid CAN message ?
-                               if (! message->get_id() == 0 && ! message->get_length() == 0 && message->get_flags() & INVALID_FLAG)
+                               if (message->get_id() &&
+                                   message->get_length() &&
+                                   ! (message->get_flags() & INVALID_FLAG) )
+                               {
+                                       if(can_subscription->get_signal() != nullptr && can_subscription->get_signal()->get_message()->get_flags() & BYTE_FRAME_IS_BIG_ENDIAN)
+                                               message->frame_swap();
                                        push_n_notify(message);
+                               }
                        }
                }
        }