Move sims to a separate folder

This commit is contained in:
2026-02-01 19:00:04 +01:00
parent 34cdcd6078
commit 0df9c7b2e9
7 changed files with 13 additions and 13 deletions
+13
View File
@@ -0,0 +1,13 @@
#include "sim-can_debugger.h"
#include "ui_sim-can_debugger.h"
Can_Debugger::Can_Debugger(Web_socket_wrapper* web_socket, QWidget *parent) :
SimulatorBase(web_socket, parent),
ui(new Ui::Can_Debugger) {
ui->setupUi(this);
this->setWindowTitle("CAN Debugger");
}
Can_Debugger::~Can_Debugger() {
delete ui;
}
+22
View File
@@ -0,0 +1,22 @@
#ifndef SIM_CAN_DEBUGGER_H
#define SIM_CAN_DEBUGGER_H
#include <QMainWindow>
#include "simulatorbase.h"
namespace Ui {
class Can_Debugger;
}
class Can_Debugger : public SimulatorBase {
Q_OBJECT
public:
explicit Can_Debugger(Web_socket_wrapper* web_socket, QWidget *parent = nullptr);
~Can_Debugger();
private:
Ui::Can_Debugger* ui;
};
#endif // SIM_CAN_DEBUGGER_H
+31
View File
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Can_Debugger</class>
<widget class="QMainWindow" name="Can_Debugger">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
+201
View File
@@ -0,0 +1,201 @@
#include "sim-test.h"
#include "ui_sim-test.h"
Test_Sim::Test_Sim(Web_socket_wrapper* web_socket, QWidget* parent) :
SimulatorBase(web_socket, parent),
ui(new Ui::Test_Sim)
{
ui->setupUi(this);
this->setWindowTitle("Test Sim");
this->setWindowState(Qt::WindowMaximized);
button_lookup = {
{button_lookup_e::button, ui->button}
};
slider_lookup = {
{slider_lookup_e::slider, ui->slider}
};
dial_lookup = {
{dial_lookup_e::dial, ui->dial}
};
thermo_lookup = {
{thermo_lookup_e::thermo, ui->thermo}
};
led_lookup = {
{led_lookup_e::led, ui->led}
};
combobox_lookup = {
{combobox_lookup_e::combobox, ui->combobox}
};
label_lookup = {
{label_lookup_e::label, ui->label}
};
setup_buttons();
setup_comboboxes();
setup_sliders();
setup_dials();
}
Test_Sim::~Test_Sim() {
delete ui;
}
void Test_Sim::setup_buttons(void)
{
for (Iterable<button_lookup_e> lookup; lookup < button_lookup_e::end; lookup++)
{
switch (lookup)
{
default:
connect(button_lookup[lookup], &QPushButton::clicked, this, [=]{button_update(lookup);});
break;
}
}
}
void Test_Sim::setup_sliders(void)
{
for (Iterable<slider_lookup_e> lookup; lookup < slider_lookup_e::end; lookup++)
{
connect(slider_lookup[lookup], &QwtSlider::sliderMoved, this, [=]{
//value_lookup_e lookup_v = thermo_to_value_lookup(lookup);
//value_lookup[lookup_v]->setText(format_value(lookup_v, thermo_lookup[lookup]->value()));
slider_update(lookup);
});
}
}
void Test_Sim::setup_comboboxes(void)
{
for (Iterable<combobox_lookup_e> lookup; lookup < combobox_lookup_e::end; lookup++)
{
connect(combobox_lookup[lookup], &QComboBox::currentIndexChanged, this, [=]{combobox_update(lookup);});
}
}
void Test_Sim::setup_dials(void)
{
for (Iterable<dial_lookup_e> lookup; lookup < dial_lookup_e::end; lookup++)
{
create_dial_needle(dial_lookup[lookup]);
}
}
void Test_Sim::button_update(button_lookup_e lookup)
{
m_web_socket->send_event(Web_socket_wrapper::Event::clicked, QString(magic_enum::enum_name(lookup).data()));
}
void Test_Sim::slider_update(slider_lookup_e lookup)
{
m_web_socket->send_event(Web_socket_wrapper::Event::value_changed, QString(magic_enum::enum_name(lookup).data()),
slider_lookup[lookup]->value());
}
void Test_Sim::combobox_update(combobox_lookup_e lookup)
{
m_web_socket->send_event(Web_socket_wrapper::Event::selected, QString(magic_enum::enum_name(lookup).data()),
combobox_lookup[lookup]->currentText());
}
QLabel* Test_Sim::id_to_label(QString name)
{
label_lookup_e lookup = magic_enum::enum_cast<label_lookup_e>(name.toStdString()).value_or(label_lookup_e::end);
if (lookup == label_lookup_e::end)
{
QD << "label lookup == end, instead of " << name;
emit quit();
return nullptr;
}
return label_lookup[lookup];
}
QPushButton* Test_Sim::id_to_led(QString name)
{
led_lookup_e lookup = magic_enum::enum_cast<led_lookup_e>(name.toStdString()).value_or(led_lookup_e::end);
if (lookup == led_lookup_e::end)
{
QD << "led lookup == end, instead of " << name;
emit quit();
return nullptr;
}
return led_lookup[lookup];
}
QPushButton* Test_Sim::id_to_button(QString name)
{
button_lookup_e lookup = magic_enum::enum_cast<button_lookup_e>(name.toStdString()).value_or(button_lookup_e::end);
if (lookup == button_lookup_e::end)
{
QD << "button lookup == end, instead of" << name;
emit quit();
return nullptr;
}
return button_lookup[lookup];
}
QwtSlider* Test_Sim::id_to_slider(QString name)
{
slider_lookup_e lookup = magic_enum::enum_cast<slider_lookup_e>(name.toStdString()).value_or(slider_lookup_e::end);
if (lookup == slider_lookup_e::end)
{
QD << "slider lookup == end, instead of " << name;
emit quit();
return nullptr;
}
return slider_lookup[lookup];
}
QLabel* Test_Sim::id_to_slider_label(QString name)
{
return nullptr;
}
QString Test_Sim::format_slider_value(QString name, double val)
{
return "";
}
QwtDial* Test_Sim::id_to_dial(QString name)
{
dial_lookup_e lookup = magic_enum::enum_cast<dial_lookup_e>(name.toStdString()).value_or(dial_lookup_e::end);
if (lookup == dial_lookup_e::end)
{
QD << "dial lookup == end, instead of " << name;
emit quit();
return nullptr;
}
return dial_lookup[lookup];
}
QwtThermo* Test_Sim::id_to_thermo(QString name)
{
thermo_lookup_e lookup = magic_enum::enum_cast<thermo_lookup_e>(name.toStdString()).value_or(thermo_lookup_e::end);
if (lookup == thermo_lookup_e::end)
{
QD << "thermo lookup == end, instead of " << name;
emit quit();
return nullptr;
}
return thermo_lookup[lookup];
}
QComboBox* Test_Sim::id_to_combobox(QString name)
{
combobox_lookup_e lookup = magic_enum::enum_cast<combobox_lookup_e>(name.toStdString()).value_or(combobox_lookup_e::end);
if (lookup == combobox_lookup_e::end)
{
QD << "combobox lookup == end, instead of " << name;
emit quit();
return nullptr;
}
return combobox_lookup[lookup];
}
+71
View File
@@ -0,0 +1,71 @@
#ifndef SIM_TEST_H
#define SIM_TEST_H
#include <QMainWindow>
#include "simulatorbase.h"
#include "web_socket_wrapper.h"
namespace Ui {
class Test_Sim;
}
class Test_Sim : public SimulatorBase {
Q_OBJECT
public:
ITERABLE_ENUM_BEGIN(button_lookup_e)
button
ITERABLE_ENUM_END;
ITERABLE_ENUM_BEGIN(led_lookup_e)
led
ITERABLE_ENUM_END;
ITERABLE_ENUM_BEGIN(label_lookup_e)
label
ITERABLE_ENUM_END;
ITERABLE_ENUM_BEGIN(slider_lookup_e)
slider
ITERABLE_ENUM_END;
ITERABLE_ENUM_BEGIN(dial_lookup_e)
dial
ITERABLE_ENUM_END;
ITERABLE_ENUM_BEGIN(thermo_lookup_e)
thermo
ITERABLE_ENUM_END;
ITERABLE_ENUM_BEGIN(combobox_lookup_e)
combobox
ITERABLE_ENUM_END;
explicit Test_Sim(Web_socket_wrapper* web_socket, QWidget* parent = nullptr);
~Test_Sim();
void setup_buttons(void);
void setup_sliders(void);
void setup_comboboxes(void);
void setup_dials(void);
void button_update(button_lookup_e lookup);
void slider_update(slider_lookup_e lookup);
void combobox_update(combobox_lookup_e lookup);
QLabel* id_to_label(QString name);
QPushButton* id_to_led(QString name);
QPushButton* id_to_button(QString name);
QwtSlider* id_to_slider(QString name);
QLabel* id_to_slider_label(QString name);
QString format_slider_value(QString name, double val);
QwtDial* id_to_dial(QString name);
QwtThermo* id_to_thermo(QString name);
QComboBox* id_to_combobox(QString name);
private:
Ui::Test_Sim* ui;
std::unordered_map<button_lookup_e, QPushButton*> button_lookup;
std::unordered_map<slider_lookup_e, QwtSlider*> slider_lookup;
std::unordered_map<dial_lookup_e, QwtDial*> dial_lookup;
std::unordered_map<thermo_lookup_e, QwtThermo*> thermo_lookup;
std::unordered_map<led_lookup_e, QPushButton*> led_lookup;
std::unordered_map<combobox_lookup_e, QComboBox*> combobox_lookup;
std::unordered_map<label_lookup_e, QLabel*> label_lookup;
};
#endif // SIM_TEST_H
+98
View File
@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Test_Sim</class>
<widget class="QMainWindow" name="Test_Sim">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>600</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QPushButton" name="led">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="button">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="combobox"/>
</item>
<item row="3" column="1">
<widget class="QwtDial" name="dial">
<property name="lineWidth">
<number>4</number>
</property>
<property name="minScaleArc">
<double>20.000000000000000</double>
</property>
<property name="maxScaleArc">
<double>340.000000000000000</double>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="0" column="0" rowspan="5">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QwtSlider" name="slider"/>
</item>
<item>
<widget class="QwtThermo" name="thermo"/>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>23</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<customwidgets>
<customwidget>
<class>QwtDial</class>
<extends>QWidget</extends>
<header>qwt_dial.h</header>
</customwidget>
<customwidget>
<class>QwtSlider</class>
<extends>QWidget</extends>
<header>qwt_slider.h</header>
</customwidget>
<customwidget>
<class>QwtThermo</class>
<extends>QWidget</extends>
<header>qwt_thermo.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>