move to communication struct
This commit is contained in:
2026-02-14 14:31:12 +01:00
parent 47578eb677
commit e9bec527a6
8 changed files with 24 additions and 14 deletions
+2 -3
View File
@@ -1,9 +1,8 @@
#include "simulator_base.hpp"
Simulator_base::Simulator_base(std::string name, CAN_Wrapper *can_wrapper, QSerialPort *serial,
Simulator_base::Simulator_base(std::string name, Communication* com,
std::chrono::milliseconds interval, QObject *parent)
: QObject(parent), m_name(name), m_timer(new QTimer(this)), m_interval(interval), m_can_wrapper(can_wrapper),
m_serial(serial)
: QObject(parent), m_name(name), m_timer(new QTimer(this)), m_interval(interval), m_com(com)
{
connect(m_timer, &QTimer::timeout, this, [this] { timer(); });
m_UI_items.reserve(50);
+11 -3
View File
@@ -7,6 +7,15 @@
#include <QTimer>
#define PUSH_UI_ITEM(item) push_ui_item(&item)
struct Communication
{
CAN_Wrapper* c_if1 = nullptr;
CAN_Wrapper* c_if2 = nullptr;
QSerialPort* s_if1 = nullptr;
QSerialPort* s_if2 = nullptr;
QSerialPort* s_if3 = nullptr;
QSerialPort* s_if4 = nullptr;
};
class Simulator_base : public QObject
{
@@ -18,7 +27,7 @@ class Simulator_base : public QObject
* @param name The name of the simulator
* @param interval The interval of the timer (default is 100ms)
*/
Simulator_base(std::string name, CAN_Wrapper *can_wrapper = nullptr, QSerialPort *serial = nullptr,
Simulator_base(std::string name, Communication* comms,
std::chrono::milliseconds interval = std::chrono::milliseconds(100), QObject *parent = nullptr);
/**
@@ -108,6 +117,5 @@ class Simulator_base : public QObject
std::vector<UI_item *> m_UI_items;
QTimer *m_timer;
std::chrono::milliseconds m_interval;
CAN_Wrapper *m_can_wrapper;
QSerialPort *m_serial;
Communication* m_com;
};
+2
View File
@@ -28,6 +28,8 @@ Simulators::Simulators(uint16_t port, QString can_dev, QString uart_dev, QObject
SPDLOG_CRITICAL("Error {}", m_serial->errorString().toStdString());
}
}
m_com.c_if1 = m_can_wrapper;
m_com.s_if1 = m_serial;
INSERT_SIMULATOR(Test_Sim);
INSERT_SIMULATOR(Can_Debugger);
+2 -1
View File
@@ -9,7 +9,7 @@
#include "websocket.hpp"
#define INSERT_SIMULATOR(type) \
m_simulators.insert(std::make_pair(type().name(), std::make_unique<type>(m_can_wrapper, m_serial, this)));
m_simulators.insert(std::make_pair(type().name(), std::make_unique<type>(&m_com, this)));
class Simulators : public QObject
{
@@ -59,6 +59,7 @@ class Simulators : public QObject
Websocket *m_server;
CAN_Wrapper *m_can_wrapper;
QSerialPort *m_serial;
Communication m_com;
std::map<std::string, std::unique_ptr<Simulator_base>> m_simulators;
std::string m_current_simulator = "";
std::mutex m_mutex;
+3 -3
View File
@@ -1,8 +1,8 @@
#include "can_debugger.hpp"
Can_Debugger::Can_Debugger(CAN_Wrapper *can_wrapper, QSerialPort *serial, QObject *parent)
: Simulator_base("Can Debugger", can_wrapper, serial, std::chrono::milliseconds(100), parent),
m_wrapper(can_wrapper), m_can_ui(Color::Black, Color::White)
Can_Debugger::Can_Debugger(Communication *com, QObject *parent)
: Simulator_base("Can Debugger", com, std::chrono::milliseconds(100), parent),
m_wrapper(com->c_if1), m_can_ui(Color::Black, Color::White)
{
PUSH_UI_ITEM(m_can_ui);
+1 -1
View File
@@ -5,7 +5,7 @@ class Can_Debugger : public Simulator_base
{
Q_OBJECT
public:
explicit Can_Debugger(CAN_Wrapper *can_wrapper = nullptr, QSerialPort *serial = nullptr, QObject *parent = nullptr);
explicit Can_Debugger(Communication *serial = nullptr, QObject *parent = nullptr);
void timer() override;
void run_at_startup() override;
void run_at_stop() override;
+2 -2
View File
@@ -1,7 +1,7 @@
#include "test_sim.hpp"
Test_Sim::Test_Sim(CAN_Wrapper *can_wrapper, QSerialPort *serial, QObject *parent)
: Simulator_base("Test Sim", can_wrapper, serial, std::chrono::milliseconds(1000), parent),
Test_Sim::Test_Sim(Communication* com, QObject *parent)
: Simulator_base("Test Sim", com, std::chrono::milliseconds(1000), parent),
m_button("Off", Color::White, Color::Red),
m_combobox(Color::White, Color::Black, {"Option 1", "Option 2", "Option 3"}, 0),
m_label("Label", Color::White, Color::Black), m_checkbox("Option 1", Color::Default, Color::Default),
+1 -1
View File
@@ -5,7 +5,7 @@ class Test_Sim : public Simulator_base
{
Q_OBJECT
public:
explicit Test_Sim(CAN_Wrapper *can_wrapper = nullptr, QSerialPort *serial = nullptr, QObject *parent = nullptr);
explicit Test_Sim(Communication* comms = nullptr, QObject *parent = nullptr);
void timer() override;
void run_at_startup() override;