From 97bf55de6cd4fb832f98a670a5ac37ffb0a78b8a Mon Sep 17 00:00:00 2001 From: Romain Forlot Date: Sat, 11 Feb 2017 19:58:04 +0100 Subject: Fix wrong arguments type Reader is almost finish i think now Change-Id: Ib4c7c88b430ada2661e6ce2a67dde76d03dba2f1 Signed-off-by: Romain Forlot --- can-utils.cpp | 25 +++++++++++++++---------- can-utils.h | 4 +++- can_decoder.cpp | 5 ++++- can_event_push.cpp | 11 +++++++---- can_reader.cpp | 14 +++----------- uds-c | 1 - 6 files changed, 32 insertions(+), 28 deletions(-) delete mode 160000 uds-c diff --git a/can-utils.cpp b/can-utils.cpp index 1e215ba..53b4f46 100644 --- a/can-utils.cpp +++ b/can-utils.cpp @@ -85,11 +85,10 @@ int CanBus_c::close() void CanBus_c::start_threads() { - std::queue canfd_frame_queue; - std::queue can_message_queue; + std::queue can_message_q; - th_reading = std::thread(can_reader, interface, socket, canfd_frame_queue); - th_decoding = std::thread(can_decoder, interface, canfd_frame_queue, can_message_queue); + th_reading = std::thread(can_reader, interface, socket, can_message_q); + th_decoding = std::thread(can_decoder, interface, can_message_q, can_message_queue); th_pushing = std::thread(can_event_push, interface, can_message_queue); } @@ -147,6 +146,12 @@ void CanMessage_c::set_lenght(uint8_t new_length) lenght = new_lenght; } +/* + * This is the prefered way to initialize a CanMessage object + * from a read canfd_frame message. + * + * params: canfd_frame pointer + */ void CanMessage_c::convert_canfd_frame_to_CanMessage(canfd_frame *frame) { @@ -159,9 +164,11 @@ void CanMessage_c::convert_canfd_frame_to_CanMessage(canfd_frame *frame) case (canfd_frame->can_id & CAN_EFF_FLAG): id = canfd_frame->can_id & CAN_EFF_MASK; format = EXTENDED; - default: - format = STANDARD; - id = canfd_frame->can_id & CAN_SFF_MASK; + break; + default: + format = STANDARD; + id = canfd_frame->can_id & CAN_SFF_MASK; + break; if (sizeof(canfd_frame->data) <= sizeof(data)) { @@ -169,7 +176,5 @@ void CanMessage_c::convert_canfd_frame_to_CanMessage(canfd_frame *frame) can_message->data.bytes[i] = canfd_frame->data[i]; return 0; } else if (sizeof(canfd_frame->data) >= CAN_MAX_DLEN) - { - ERROR(interface, "parse_can_frame: can_frame data too long to be stored into openxc_CanMessage data field"); - } + ERROR(interface, "CanMessage_c: canfd_frame data too long to be stored into CanMessage object"); } \ No newline at end of file diff --git a/can-utils.h b/can-utils.h index d2020a5..4b5102c 100644 --- a/can-utils.h +++ b/can-utils.h @@ -82,7 +82,9 @@ typedef openxc_DynamicField (*SignalDecoder)(struct CanSignal* signal, typedef uint64_t (*SignalEncoder)(struct CanSignal* signal, openxc_DynamicField* value, bool* send); -/* CanBus represent a can device definition gotten from configuraiton file */ +/* + * CanBus represent a can device definition gotten from configuraiton file + */ class CanBus_c { private: /* Got from conf file */ diff --git a/can_decoder.cpp b/can_decoder.cpp index ae1b693..74694c9 100644 --- a/can_decoder.cpp +++ b/can_decoder.cpp @@ -22,7 +22,10 @@ #include -void decode_can_message(afb_binding_interface *interface, std::queue & canfd_frame_queue, std::queue & can_message_queue) +#include "can-utils.h" +#include "openxc.pb.h" + +void decode_can_message(afb_binding_interface *interface, std::queue & can_message_q, std::queue & VehicleMessage_q) { canfd_frame canfd_frame; diff --git a/can_event_push.cpp b/can_event_push.cpp index c8a3b6d..429abe4 100644 --- a/can_event_push.cpp +++ b/can_event_push.cpp @@ -22,14 +22,17 @@ #include -void can_event_push(afb_binding_interface *interface, std::queue & can_message_queue) +#include "can-utils.h" +#include "openxc.pb.h" + +void can_event_push(afb_binding_interface *interface, std::queue & vehicle_message_q) { while(true) { - if(! can_message_queue.empty()) + if(! vehicle_message_q.empty()) { - can_message = can_message_queue.front(); - can_message_queue.pop(); + vehicle_message = vehicle_message_q.front(); + vehicle_message_q.pop(); } } } diff --git a/can_reader.cpp b/can_reader.cpp index 35ea79e..1e6429e 100644 --- a/can_reader.cpp +++ b/can_reader.cpp @@ -21,6 +21,8 @@ #include +#include "can-utils.h" + void can_reader(afb_binding_interface *interface, int socket, std::queue & can_message_q) { ssize_t nbytes; @@ -56,19 +58,9 @@ void can_reader(afb_binding_interface *interface, int socket, std::queue