From a6fb72a70f90c35e0968f2460d324a8505410562 Mon Sep 17 00:00:00 2001 From: Arthur Guyader Date: Fri, 24 May 2019 12:16:28 +0200 Subject: Implement a new socket type CAN for j1939 protocol This commit implements a new socket class for the j1939 protocol and prepares the bases classes by modifying the write and read methods. Bug-AGL: SPEC-2386 Change-Id: I16ba493418a4bb37a0262b61a2a2629be6ab5051 Signed-off-by: Arthur Guyader Signed-off-by: Stephane Desneux Signed-off-by: Romain Forlot --- low-can-binding/binding/low-can-cb.cpp | 8 ++++---- low-can-binding/binding/low-can-subscription.cpp | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'low-can-binding/binding') diff --git a/low-can-binding/binding/low-can-cb.cpp b/low-can-binding/binding/low-can-cb.cpp index f200b192..750baeff 100644 --- a/low-can-binding/binding/low-can-cb.cpp +++ b/low-can-binding/binding/low-can-cb.cpp @@ -85,13 +85,13 @@ int read_message(sd_event_source *event_source, int fd, uint32_t revents, void * low_can_subscription_t* can_subscription = (low_can_subscription_t*)userdata; if ((revents & EPOLLIN) != 0) { - can_message_t cm; + std::shared_ptr cm; utils::socketcan_bcm_t& s = can_subscription->get_socket(); - s >> cm; + cm = s.read_message(); // Sure we got a valid CAN message ? - if(! cm.get_id() == 0 && ! cm.get_length() == 0) - {push_n_notify(cm);} + if(! cm->get_id() == 0 && ! cm->get_length() == 0) + {push_n_notify(*cm);} } // check if error or hangup diff --git a/low-can-binding/binding/low-can-subscription.cpp b/low-can-binding/binding/low-can-subscription.cpp index fe1ede81..d8149b64 100644 --- a/low-can-binding/binding/low-can-subscription.cpp +++ b/low-can-binding/binding/low-can-subscription.cpp @@ -337,7 +337,7 @@ int low_can_subscription_t::create_rx_filter(utils::bcm_msg& bcm_msg) // else monitor all standard 8 CAN OBD2 ID response. if(bcm_msg.msg_head.can_id != OBD2_FUNCTIONAL_BROADCAST_ID) { - socket_ << bcm_msg; + socket_.write_message(bcm_msg); if(! socket_) return -1; } @@ -347,7 +347,7 @@ int low_can_subscription_t::create_rx_filter(utils::bcm_msg& bcm_msg) { bcm_msg.msg_head.can_id = OBD2_FUNCTIONAL_RESPONSE_START + i; - socket_ << bcm_msg; + socket_.write_message(bcm_msg); if(! socket_) return -1; } @@ -384,7 +384,7 @@ int low_can_subscription_t::tx_send(struct canfd_frame& cfd, const std::string& if(open_socket(bus_name) < 0) {return -1;} - socket_ << bcm_msg; + socket_.write_message(bcm_msg); if(! socket_) return -1; -- cgit 1.2.3-korg