From cd5c2876dd5718f33846606bd008bb89685df337 Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Fri, 23 Aug 2024 14:55:06 +0200 Subject: [PATCH] Add test sim --- tools/CMakeLists.txt | 5 +++++ tools/simulators/test_sim.cpp | 27 +++++++++++++++++++++++++++ tools/simulators/test_sim.hpp | 14 ++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 tools/simulators/test_sim.cpp create mode 100644 tools/simulators/test_sim.hpp diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 080fc5d..032242d 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -5,12 +5,15 @@ include(FetchContent) FetchContent_Declare(magic_enum URL https://github.com/Neargye/magic_enum/releases/download/v0.9.6/magic_enum-v0.9.6.tar.gz DOWNLOAD_EXTRACT_TIMESTAMP TRUE) FetchContent_MakeAvailable(magic_enum) +file(GLOB_RECURSE SIM_SOURCES "simulators/*.cpp") + target_sources(server PRIVATE ${CMAKE_CURRENT_LIST_DIR}/main.cpp ${CMAKE_CURRENT_LIST_DIR}/message_parser.cpp ${CMAKE_CURRENT_LIST_DIR}/simulator_base.cpp ${CMAKE_CURRENT_LIST_DIR}/simulators.cpp ${CMAKE_CURRENT_LIST_DIR}/websocket.cpp + ${SIM_SOURCES} ) target_compile_options(server PRIVATE $<$: @@ -20,11 +23,13 @@ target_compile_options(server PRIVATE $<$: target_include_directories(server PUBLIC ${CMAKE_CURRENT_LIST_DIR} + ${CMAKE_CURRENT_LIST_DIR}/simulators PRIVATE ${PROJECT_DIR}/external/websocketpp ) target_link_libraries(server PRIVATE + CAN UI Timer magic_enum::magic_enum diff --git a/tools/simulators/test_sim.cpp b/tools/simulators/test_sim.cpp new file mode 100644 index 0000000..de70bf7 --- /dev/null +++ b/tools/simulators/test_sim.cpp @@ -0,0 +1,27 @@ +#include "test_sim.hpp" +#include + +Test_Sim::Test_Sim() : +Simulator_base("Test_Sim"), +p_button("button", "Button", Color(Color::White), Color(Color::Black), [](std::string id) { std::cout << "Button " << id << " clicked" << std::endl; }), +p_combobox("combobox", "Combobox", Color(Color::White), Color(Color::Black), {"Option 1", "Option 2", "Option 3"}, 0, [](std::string id, std::string selected) { std::cout << "Combobox " << id << " selected " << selected << std::endl; }), +p_label("label", "Label", Color(Color::White), Color(Color::Black)), +p_checkbox("checkbox", "Checkbox", Color(Color::White), Color(Color::Black), {"Option 1", "Option 2", "Option 3"}, [](std::string id, std::vector selected) { std::cout << "Checkbox " << id << " selected " << (selected.size() > 0 ? selected[0] : "") << std::endl; }), +p_slider("slider", "Slider", Color(Color::White), Color(Color::Black), 0, 100, 50, [](std::string id, double value) { std::cout << "Slider " << id << " changed to " << value << std::endl; }) +{ + this->add_UI_item(&this->p_button); + this->add_UI_item(&this->p_combobox); + this->add_UI_item(&this->p_label); + this->add_UI_item(&this->p_checkbox); + this->add_UI_item(&this->p_slider); +} + +void Test_Sim::timer() +{ + // Timer function + // p_button.click(); + // p_combobox.set_selected(1); + // p_checkbox.toggle_selected("Option 2"); + // p_slider.set_value(75); +} + diff --git a/tools/simulators/test_sim.hpp b/tools/simulators/test_sim.hpp new file mode 100644 index 0000000..844d6db --- /dev/null +++ b/tools/simulators/test_sim.hpp @@ -0,0 +1,14 @@ +#pragma once +#include "simulator_base.hpp" + +class Test_Sim : public Simulator_base { + public: + Test_Sim(); + void timer() override; + private: + UI_button p_button; + UI_combobox p_combobox; + UI_label p_label; + UI_checkbox p_checkbox; + UI_slider p_slider; +};