This commit is contained in:
2024-08-29 15:00:27 +02:00
parent 6c6a60e980
commit 21a2c16607
31 changed files with 457 additions and 409 deletions
+27 -15
View File
@@ -1,20 +1,23 @@
#include "simulator_base.hpp"
Simulator_base::Simulator_base(std::string name, std::chrono::milliseconds interval)
: m_name(name), m_timer([this]{ timer(); }), m_interval(interval)
: m_name(name), m_timer([this] { timer(); }), m_interval(interval)
{
}
std::string Simulator_base::name() const {
std::string Simulator_base::name() const
{
// Get the name of the simulator
return m_name;
}
bool Simulator_base::is_ui_id_unique(std::string id) const {
bool Simulator_base::is_ui_id_unique(std::string id) const
{
// Check if the UI name is unique
for (UI_item* item : m_UI_items) {
if (item->id() == id) {
for (UI_item *item : m_UI_items)
{
if (item->id() == id)
{
return false;
}
}
@@ -22,48 +25,57 @@ bool Simulator_base::is_ui_id_unique(std::string id) const {
return true;
}
void Simulator_base::add_UI_item(UI_item* item) {
void Simulator_base::add_UI_item(UI_item *item)
{
// Add a UI item to the simulator
if (is_ui_id_unique(item->id()) == false) {
if (is_ui_id_unique(item->id()) == false)
{
throw std::runtime_error("UI item id " + item->id() + " is not unique");
}
m_UI_items_map[item->id()] = item;
m_UI_items.push_back(item);
}
json Simulator_base::get_UI_items() const {
json Simulator_base::get_UI_items() const
{
// Get the UI items
json items;
items["name"] = m_name;
for (UI_item* item : m_UI_items) {
for (UI_item *item : m_UI_items)
{
items["UI_items"].push_back(item->to_json());
}
return items;
}
UI_item* Simulator_base::get_UI_item(std::string id) const {
UI_item *Simulator_base::get_UI_item(std::string id) const
{
// Get a UI item by id
return m_UI_items_map.at(id);
}
void Simulator_base::run() {
void Simulator_base::run()
{
// Start the timer
m_timer.setInterval(m_interval);
run_at_startup();
}
void Simulator_base::stop() {
void Simulator_base::stop()
{
// Stop the simulator
m_timer.stop();
}
void Simulator_base::shutdown() {
void Simulator_base::shutdown()
{
// Shutdown the simulator
system("shutdown -h now");
}
void Simulator_base::reboot() {
void Simulator_base::reboot()
{
// Reboot the simulator
system("reboot");
}