X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fcan_reader.cpp;h=24bc6004ff83421e48fd0b49560466985ae14059;hb=836feaecd602e86ea6d954ae018a2d7bbc04aa7a;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..24bc6004 100644 --- a/src/can_reader.cpp +++ b/src/can_reader.cpp @@ -16,51 +16,15 @@ * limitations under the License. */ -#include -#include +#include "can_reader.hpp" -#include - -#include "can-utils.h" - -void can_reader(CanBus_c *can_bus)) +void can_reader(can_bus_dev_t &can_bus_dev, can_bus_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) - { - ERROR(interface, "read_can: Socket unavailable"); - return -1; - } + can_message_t can_message(can_bus.interface_); - while(true) + while(can_bus_dev.is_running()) { - 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(can_bus_dev.read(can_bus.interface_)); + can_bus.push_new_can_message(can_message); } -} +} \ No newline at end of file