From: Romain Forlot Date: Thu, 20 Apr 2017 15:38:01 +0000 (+0200) Subject: Use same function to open BCM and RAW CAN sockets X-Git-Tag: 5.0.2~325 X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=commitdiff_plain;h=0a27582743cb7b4ad191adea4eefeda01d179896;p=apps%2Fagl-service-can-low-level.git Use same function to open BCM and RAW CAN sockets Using one a another socket type is made using a boolean. Change-Id: I0445c8550f289d1e0020f6496c638bc95e8db443 Signed-off-by: Romain Forlot --- diff --git a/CAN-binder/low-can-binding/can/can-bus-dev.cpp b/CAN-binder/low-can-binding/can/can-bus-dev.cpp index 6fab8e9d..a1c6fcda 100644 --- a/CAN-binder/low-can-binding/can/can-bus-dev.cpp +++ b/CAN-binder/low-can-binding/can/can-bus-dev.cpp @@ -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; } diff --git a/CAN-binder/low-can-binding/can/can-bus-dev.hpp b/CAN-binder/low-can-binding/can/can-bus-dev.hpp index 3e6b2d1c..8cafaf83 100644 --- a/CAN-binder/low-can-binding/can/can-bus-dev.hpp +++ b/CAN-binder/low-can-binding/can/can-bus-dev.hpp @@ -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); diff --git a/CAN-binder/low-can-binding/can/can-bus.cpp b/CAN-binder/low-can-binding/can/can-bus.cpp index 90d4c74f..4775b4fe 100644 --- a/CAN-binder/low-can-binding/can/can-bus.cpp +++ b/CAN-binder/low-can-binding/can/can-bus.cpp @@ -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(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());