aboutsummaryrefslogtreecommitdiffstats
path: root/can_reader.cpp
diff options
context:
space:
mode:
authorRomain Forlot <romain.forlot@iot.bzh>2017-02-13 23:26:58 +0000
committerRomain Forlot <romain.forlot@iot.bzh>2017-02-13 23:31:56 +0000
commit2fc26a117842428f4148621361c53082ac93722f (patch)
treea2b4335e7d47c8f51879198e66184d62ff366790 /can_reader.cpp
parent53f4e096efa72a05b1f469fe082e6fa4b55bca01 (diff)
New threads management, only one argument needed.
Now CanBus_c object is the main core part to handle queues and to follow CAN bus reading process. Change-Id: I33cdfadb06362da4330a572caa1c1cf61d3ab3fd Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
Diffstat (limited to 'can_reader.cpp')
-rw-r--r--can_reader.cpp60
1 files changed, 30 insertions, 30 deletions
diff --git a/can_reader.cpp b/can_reader.cpp
index 1e6429ec..d9b3e671 100644
--- a/can_reader.cpp
+++ b/can_reader.cpp
@@ -7,7 +7,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -23,44 +23,44 @@
#include "can-utils.h"
-void can_reader(afb_binding_interface *interface, int socket, std::queue <CanMessage_t>& can_message_q)
+void can_reader(CanBus_c *can_bus))
{
- ssize_t nbytes;
+ ssize_t nbytes;
int maxdlen;
- CanMessage_t can_message;
+ CanMessage_c can_message;
+ canfd_frame canfd_frame;
/* Test that socket is really opened */
- if ( socket < 0)
+ if ( can_bus->socket < 0)
{
ERROR(interface, "read_can: Socket unavailable");
return -1;
}
- while(true)
- {
- nbytes = read(socket, &canfd_frame, CANFD_MTU);
-
- switch(nbytes)
- {
- case CANFD_MTU:
- DEBUG(interface, "read_can: Got an CAN FD frame with length %d", canfd_frame.len);
- maxdlen = CANFD_MAX_DLEN;
- break;
- case CAN_MTU:
- DEBUG(interface, "read_can: Got a legacy CAN frame with length %d", canfd_frame.len);
- maxdlen = CAN_MAX_DLEN;
- break;
- default:
- if (errno == ENETDOWN)
- ERROR(interface, "read_can: %s interface down", device);
-
- ERROR(interface, "read_can: Error reading CAN bus");
- return -2;
- }
+ while(true)
+ {
+ nbytes = read(can_bus->socket, &canfd_frame, CANFD_MTU);
- can_message.convert_canfd_frame_to_CanMessage(canfd_frame);
+ switch(nbytes)
+ {
+ case CANFD_MTU:
+ DEBUG(interface, "read_can: Got an CAN FD frame with length %d", canfd_frame.len);
+ maxdlen = CANFD_MAX_DLEN;
+ break;
+ case CAN_MTU:
+ DEBUG(interface, "read_can: Got a legacy CAN frame with length %d", canfd_frame.len);
+ maxdlen = CAN_MAX_DLEN;
+ break;
+ default:
+ if (errno == ENETDOWN)
+ ERROR(interface, "read_can: %s interface down", device);
+
+ ERROR(interface, "read_can: Error reading CAN bus");
+ return -2;
+ }
+ can_message.convert_from_canfd_frame(canfd_frame);
- can_message_q.push(can_message);
- }
-} \ No newline at end of file
+ can_message_q.push(can_message);
+ }
+}