X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fcan_reader.cpp;h=808893722d4be1231c9e8a701d92fe5db66fa04e;hb=d6d322103eaf1d2d5a1a94a0720a01a692f6a134;hp=d9b3e6714f263c0cabbcc0f09f1c5856ddae1880;hpb=c2a2b12c1ec1a4e17a3c95ceb8f010ce961a909e;p=apps%2Fagl-service-can-low-level.git diff --git a/src/can_reader.cpp b/src/can_reader.cpp index d9b3e671..80889372 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; + can_message.convert_from_canfd_frame(canbus.read()); + can_bus.insert_new_can_message(can_message); } - - 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); - } -} +} \ No newline at end of file