summaryrefslogtreecommitdiffstats
path: root/src/can_reader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/can_reader.cpp')
-rw-r--r--src/can_reader.cpp39
1 files changed, 4 insertions, 35 deletions
diff --git a/src/can_reader.cpp b/src/can_reader.cpp
index 6403cfa..8088937 100644
--- a/src/can_reader.cpp
+++ b/src/can_reader.cpp
@@ -23,44 +23,13 @@
#include "can-utils.h"
-void can_reader(CanBus_c *can_bus))
+void can_reader(CanBus_t &can_bus)
{
- ssize_t nbytes;
- int maxdlen;
CanMessage_c can_message;
- canfd_frame canfd_frame;
- /* Test that socket is really opened */
- if ( can_bus->socket < 0)
+ while(can_bus.is_running())
{
- ERROR(interface, "read_can: Socket unavailable");
- return -1;
- }
-
- while(true)
- {
- nbytes = read(can_bus->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;
- }
-
- can_message.convert_from_canfd_frame(canfd_frame);
-
- can_message_q.push(can_message);
+ can_message.convert_from_canfd_frame(canbus.read());
+ can_bus.insert_new_can_message(can_message);
}
} \ No newline at end of file