Fix: bugs in class due to the wrapping of C socket
authorRomain Forlot <romain.forlot@iot.bzh>
Thu, 9 Mar 2017 09:42:20 +0000 (10:42 +0100)
committerRomain Forlot <romain.forlot@iot.bzh>
Thu, 16 Mar 2017 16:10:40 +0000 (17:10 +0100)
into a class.

Added missing include and adjust methods signature.

Change-Id: Id016b452e0b641a14482c288e4713acae941ee1d
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
src/can/can-bus-dev.cpp
src/can/can-bus-dev.hpp

index f459567..157f7de 100644 (file)
@@ -17,7 +17,7 @@
 */
 
 
-
+#include <unistd.h>
 #include <string.h>
 #include <net/if.h>
 #include <sys/ioctl.h>
@@ -100,13 +100,13 @@ int can_bus_dev_t::open()
 }
 
 /// @brief Close the bus.
-void can_bus_dev_t::close()
+int can_bus_dev_t::close()
 {
-       can_socket_.close();
+       return can_socket_.close();
 }
 
 /// @brief Read the can socket and retrieve canfd_frame
-std::pair<struct canfd_frame&, size_t> can_bus_dev_t::read()
+can_message_t can_bus_dev_t::read()
 {
        ssize_t nbytes;
        struct canfd_frame cfd;
@@ -197,7 +197,7 @@ int can_bus_dev_t::send_can_message(can_message_t& can_msg)
 /// @brief Send a can message from a can_message_t object.
 /// @param[in] can bus used to send the message
 /// @param[in] can_msg the can message object to send
-bool can_bus_dev_t::send_can_message(const uint16_t arbitration_id, const uint8_t* data, const uint8_t size)
+bool can_bus_dev_t::send_can_message(const uint32_t arbitration_id, const uint8_t* data, const uint8_t size)
 {
        ssize_t nbytes;
        canfd_frame f;
index 59d999f..744f53f 100644 (file)
@@ -18,6 +18,7 @@
 
 #pragma once
 
+#include <stdint.h>
 #include <string>
 #include <thread>
 #include <linux/can.h>
@@ -54,8 +55,8 @@ public:
 
        void stop_reading();
 
-       std::pair<struct canfd_frame&, size_t> read();
+       can_message_t read();
 
        int send_can_message(can_message_t& can_msg);
-       static bool send_can_message(const uint16_t arbitration_id, const uint8_t* data, const uint8_t size);
+       static bool send_can_message(const uint32_t arbitration_id, const uint8_t* data, const uint8_t size);
 };