From e6fb79e189289d841395b6692a7e9282a398702f Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Mon, 3 Feb 2025 19:50:26 +0100 Subject: [PATCH] can debugger fix message disappearing --- src/UI/custom/UI_can.cpp | 26 ++++++++++++-------------- src/UI/custom/UI_can.hpp | 17 +++++++++++++++-- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/UI/custom/UI_can.cpp b/src/UI/custom/UI_can.cpp index 55485be..1f701bf 100644 --- a/src/UI/custom/UI_can.cpp +++ b/src/UI/custom/UI_can.cpp @@ -24,13 +24,15 @@ UI_can::UI_can(const json &j, QObject *parent) : UI_item(UI_CAN_TYPE, parent) void UI_can::add_send_message(QCanBusFrame msg) { - m_can_send_messages.push_back(msg); + CanFrame frame(msg.frameId(), (uint8_t)msg.payload().size(), ByteArrayToStdArray>(msg.payload())); + m_can_send_messages.push_back(frame); emit value_changed(); } void UI_can::add_received_message(QCanBusFrame msg) { - m_can_received_messages.push_back(msg); + CanFrame frame(msg.frameId(), (uint8_t)msg.payload().size(), ByteArrayToStdArray>(msg.payload())); + m_can_received_messages.push_back(frame); emit value_changed(); } @@ -59,16 +61,12 @@ void UI_can::from_json(const json &j) m_can_received_messages.clear(); for (const auto &msg : j.at("send_msgs")) { - QCanBusFrame can_msg; - can_msg.setFrameId(msg.at("id")); - can_msg.setPayload(QByteArray(msg.at("payload"), msg.at("dlc"))); + CanFrame can_msg(msg.at("id"), msg.at("dlc"), msg.at("payload")); m_can_send_messages.push_back(can_msg); } for (const auto &msg : j.at("rcvd_msgs")) { - QCanBusFrame can_msg; - can_msg.setFrameId(msg.at("id")); - can_msg.setPayload(QByteArray(msg.at("payload"), msg.at("dlc"))); + CanFrame can_msg(msg.at("id"), msg.at("dlc"), msg.at("payload")); m_can_received_messages.push_back(can_msg); } } @@ -81,9 +79,9 @@ json UI_can::to_json(size_t id) const for (const auto &msg : m_can_send_messages) { json can_msg; - can_msg["id"] = (uint32_t)msg.frameId(); - can_msg["dlc"] = msg.payload().size(); - can_msg["payload"] = ByteArrayToStdArray>(msg.payload()); + can_msg["id"] = (uint32_t)msg.m_SID; + can_msg["dlc"] = msg.m_DLC; + can_msg["payload"] = msg.m_payload; can_send_messages.push_back(can_msg); } @@ -91,9 +89,9 @@ json UI_can::to_json(size_t id) const for (const auto &msg : m_can_received_messages) { json can_msg; - can_msg["id"] = (uint32_t)msg.frameId(); - can_msg["dlc"] = msg.payload().size(); - can_msg["payload"] = ByteArrayToStdArray>(msg.payload()); + can_msg["id"] = (uint32_t)msg.m_SID; + can_msg["dlc"] = msg.m_DLC; + can_msg["payload"] = msg.m_payload; can_received_messages.push_back(can_msg); } diff --git a/src/UI/custom/UI_can.hpp b/src/UI/custom/UI_can.hpp index 3593c6b..a537240 100644 --- a/src/UI/custom/UI_can.hpp +++ b/src/UI/custom/UI_can.hpp @@ -5,6 +5,19 @@ #define UI_CAN_TYPE std::string("UI_can") +class CanFrame +{ + public: + CanFrame(uint32_t sid, uint8_t dlc, std::array payload) + : m_SID(sid), m_DLC(dlc), m_payload(payload) + { + + } + uint32_t m_SID; + uint8_t m_DLC; + std::array m_payload; +}; + class UI_can : public UI_item { Q_OBJECT @@ -25,6 +38,6 @@ class UI_can : public UI_item signals: void on_send(QCanBusFrame msg); private: - std::vector m_can_send_messages; - std::vector m_can_received_messages; + std::vector m_can_send_messages; + std::vector m_can_received_messages; };