add dial and thermo
This commit is contained in:
2026-02-01 18:59:35 +01:00
parent 2c4e08d578
commit 05371cc6c2
3 changed files with 81 additions and 5 deletions
+43 -2
View File
@@ -10,7 +10,13 @@ Test_Sim::Test_Sim(Web_socket_wrapper* web_socket, QWidget* parent) :
{button_lookup_e::button, ui->button} {button_lookup_e::button, ui->button}
}; };
slider_lookup = { slider_lookup = {
{slider_lookup_e::slider, ui->Slider} {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 = {
{led_lookup_e::led, ui->led} {led_lookup_e::led, ui->led}
@@ -26,6 +32,7 @@ Test_Sim::Test_Sim(Web_socket_wrapper* web_socket, QWidget* parent) :
setup_buttons(); setup_buttons();
setup_comboboxes(); setup_comboboxes();
setup_sliders(); setup_sliders();
setup_dials();
} }
Test_Sim::~Test_Sim() { Test_Sim::~Test_Sim() {
@@ -74,6 +81,14 @@ void Test_Sim::setup_comboboxes(void)
} }
} }
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) 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())); m_web_socket->send_event(Web_socket_wrapper::Event::clicked, QString(magic_enum::enum_name(lookup).data()));
@@ -135,7 +150,7 @@ 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); 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) if (lookup == slider_lookup_e::end)
{ {
QD << "thermo lookup == end, instead of " << name; QD << "slider lookup == end, instead of " << name;
emit quit(); emit quit();
return nullptr; return nullptr;
} }
@@ -160,6 +175,32 @@ QString Test_Sim::format_slider_value(QString name, double val)
return ""; 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) 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); combobox_lookup_e lookup = magic_enum::enum_cast<combobox_lookup_e>(name.toStdString()).value_or(combobox_lookup_e::end);
+11
View File
@@ -25,6 +25,12 @@ class Test_Sim : public SimulatorBase {
ITERABLE_ENUM_BEGIN(slider_lookup_e) ITERABLE_ENUM_BEGIN(slider_lookup_e)
slider slider
ITERABLE_ENUM_END; 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) ITERABLE_ENUM_BEGIN(combobox_lookup_e)
combobox combobox
ITERABLE_ENUM_END; ITERABLE_ENUM_END;
@@ -35,6 +41,7 @@ class Test_Sim : public SimulatorBase {
void setup_buttons(void); void setup_buttons(void);
void setup_sliders(void); void setup_sliders(void);
void setup_comboboxes(void); void setup_comboboxes(void);
void setup_dials(void);
void button_update(button_lookup_e lookup); void button_update(button_lookup_e lookup);
void slider_update(slider_lookup_e lookup); void slider_update(slider_lookup_e lookup);
@@ -46,6 +53,8 @@ class Test_Sim : public SimulatorBase {
QwtSlider* id_to_slider(QString name); QwtSlider* id_to_slider(QString name);
QLabel* id_to_slider_label(QString name); QLabel* id_to_slider_label(QString name);
QString format_slider_value(QString name, double val); 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); QComboBox* id_to_combobox(QString name);
private: private:
@@ -53,6 +62,8 @@ class Test_Sim : public SimulatorBase {
std::unordered_map<button_lookup_e, QPushButton*> button_lookup; std::unordered_map<button_lookup_e, QPushButton*> button_lookup;
std::unordered_map<slider_lookup_e, bool> slider_lock; std::unordered_map<slider_lookup_e, bool> slider_lock;
std::unordered_map<slider_lookup_e, QwtSlider*> slider_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<led_lookup_e, QPushButton*> led_lookup;
std::unordered_map<combobox_lookup_e, QComboBox*> combobox_lookup; std::unordered_map<combobox_lookup_e, QComboBox*> combobox_lookup;
std::unordered_map<label_lookup_e, QLabel*> label_lookup; std::unordered_map<label_lookup_e, QLabel*> label_lookup;
+27 -3
View File
@@ -15,9 +15,6 @@
</property> </property>
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" rowspan="4">
<widget class="QwtSlider" name="Slider"/>
</item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QPushButton" name="led"> <widget class="QPushButton" name="led">
<property name="text"> <property name="text">
@@ -36,12 +33,29 @@
<widget class="QComboBox" name="combobox"/> <widget class="QComboBox" name="combobox"/>
</item> </item>
<item row="3" column="1"> <item row="3" column="1">
<widget class="QwtDial" name="dial">
<property name="lineWidth">
<number>4</number>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>TextLabel</string> <string>TextLabel</string>
</property> </property>
</widget> </widget>
</item> </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> </layout>
</widget> </widget>
<widget class="QMenuBar" name="menubar"> <widget class="QMenuBar" name="menubar">
@@ -57,11 +71,21 @@
<widget class="QStatusBar" name="statusbar"/> <widget class="QStatusBar" name="statusbar"/>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget>
<class>QwtDial</class>
<extends>QWidget</extends>
<header>qwt_dial.h</header>
</customwidget>
<customwidget> <customwidget>
<class>QwtSlider</class> <class>QwtSlider</class>
<extends>QWidget</extends> <extends>QWidget</extends>
<header>qwt_slider.h</header> <header>qwt_slider.h</header>
</customwidget> </customwidget>
<customwidget>
<class>QwtThermo</class>
<extends>QWidget</extends>
<header>qwt_thermo.h</header>
</customwidget>
</customwidgets> </customwidgets>
<resources/> <resources/>
<connections/> <connections/>