Use same function to open BCM and RAW CAN sockets
authorRomain Forlot <romain.forlot@iot.bzh>
Thu, 20 Apr 2017 15:38:01 +0000 (17:38 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Thu, 20 Apr 2017 15:38:01 +0000 (17:38 +0200)
Using one a another socket type is made using a boolean.

Change-Id: I0445c8550f289d1e0020f6496c638bc95e8db443
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
CAN-binder/low-can-binding/can/can-bus-dev.cpp
CAN-binder/low-can-binding/can/can-bus-dev.hpp
CAN-binder/low-can-binding/can/can-bus.cpp

index 6fab8e9..a1c6fcd 100644 (file)
@@ -51,14 +51,14 @@ uint32_t can_bus_dev_t::get_address() const
 ///  timestamp received messages and pass the socket to FD mode.
 ///
 /// @return -1 if something wrong.
-int can_bus_dev_t::open_raw()
+int can_bus_dev_t::open(bool bcm)
 {
        const int canfd_on = 1;
        const int timestamp_on = 1;
        struct timeval timeout;
 
        DEBUG(binder_interface, "open_raw: CAN Handler socket : %d", can_socket_.socket());
-       can_socket_.open(device_name_);
+       return can_socket_.open(device_name_, bcm);
 
        // Set some option on the socket : timeout, timestamp and canfd frame usage.
        if (can_socket_)
@@ -186,7 +186,7 @@ int can_bus_dev_t::send(can_message_t& can_msg)
        else
        {
                ERROR(binder_interface, "send_can_message: socket not initialized. Attempt to reopen can device socket.");
-               open_raw();
+               open(true);
                return -1;
        }
        return 0;
@@ -224,7 +224,7 @@ bool can_bus_dev_t::shims_send(const uint32_t arbitration_id, const uint8_t* dat
        else
        {
                ERROR(binder_interface, "send_can_message: socket not initialized. Attempt to reopen can device socket.");
-               open_raw();
+               open(true);
        }
        return false;
 }
index 3e6b2d1..8cafaf8 100644 (file)
@@ -50,7 +50,7 @@ public:
        std::string get_device_name() const;
        uint32_t get_address() const;
 
-       int open_raw();
+       int open(bool bcm=false);
        int close();
 
        void start_reading(can_bus_t& can_bus);
index 90d4c74..4775b4f 100644 (file)
@@ -237,7 +237,7 @@ int can_bus_t::init_can_dev()
                        for(const auto& device : devices_name)
                        {
                                can_bus_t::can_devices_[device] = std::make_shared<can_bus_dev_t>(device, i);
-                               if (can_bus_t::can_devices_[device]->open_raw() == 0)
+                               if (can_bus_t::can_devices_[device]->open(true) >= 0)
                                {
                                        DEBUG(binder_interface, "Start reading thread");
                                        NOTICE(binder_interface, "%s device opened and reading", device.c_str());