From e995c0ad66e649b7d4c9254b9427b846ddaaf3ca Mon Sep 17 00:00:00 2001 From: Leonard Gies Date: Thu, 26 Jun 2025 18:00:10 +0200 Subject: [PATCH] add demo mode --- Core/Inc/config.h | 1 + Core/Src/vehicle.c | 12 ++++++++++++ TouchGFX/gui/src/common/FrontendApplication.cpp | 5 +++++ .../src/missionselect_screen/MissionSelectView.cpp | 7 +++++++ 4 files changed, 25 insertions(+) create mode 100644 Core/Inc/config.h diff --git a/Core/Inc/config.h b/Core/Inc/config.h new file mode 100644 index 0000000..3afc750 --- /dev/null +++ b/Core/Inc/config.h @@ -0,0 +1 @@ +// #define DEMO_MODE diff --git a/Core/Src/vehicle.c b/Core/Src/vehicle.c index 3cd351d..c0e2e20 100644 --- a/Core/Src/vehicle.c +++ b/Core/Src/vehicle.c @@ -1,6 +1,7 @@ #include "vehicle.h" #include "can-halal.h" +#include "config.h" #include "main.h" #include "stm32h7xx.h" #include "stm32h7xx_hal.h" @@ -78,6 +79,17 @@ void vehicle_thread_entry(ULONG hfdcan_addr) { while (1) { tx_thread_sleep(10); + +#ifdef DEMO_MODE + double tick = HAL_GetTick(); + + vehicle_state.speed = + (sin(tick * 0.001) * 8 + 10 + cos(tick * 0.003) * 8) * 4; + if (vehicle_state.speed <= 0) { + vehicle_state.speed = 0; + } + tx_event_flags_set(&gui_update_events, GUI_UPDATE_VEHICLE_STATE, TX_OR); +#endif } } diff --git a/TouchGFX/gui/src/common/FrontendApplication.cpp b/TouchGFX/gui/src/common/FrontendApplication.cpp index 46e1ea1..30f70a3 100644 --- a/TouchGFX/gui/src/common/FrontendApplication.cpp +++ b/TouchGFX/gui/src/common/FrontendApplication.cpp @@ -2,6 +2,8 @@ #include "gui/common/NamedField.hpp" +#include "../../Core/Inc/config.h" + FrontendApplication::FrontendApplication(Model &m, FrontendHeap &heap) : FrontendApplicationBase(m, heap), canChangeFromMissionSelect(false) { namedFieldSort(); @@ -14,5 +16,8 @@ void FrontendApplication::setCanChangeFromMissionSelect( // controls if next screen button works on mission select screen bool FrontendApplication::getCanChangeFromMissionSelect() const { + #ifdef DEMO_MODE + return true; + #endif return canChangeFromMissionSelect; } diff --git a/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp b/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp index 0ba26f7..d81326e 100644 --- a/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp +++ b/TouchGFX/gui/src/missionselect_screen/MissionSelectView.cpp @@ -2,6 +2,7 @@ #include "texts/TextKeysAndLanguages.hpp" #include +#include "config.h" #include "stw_defines.h" #include "vehicle.h" #include "vehicle_state.h" @@ -54,6 +55,12 @@ void MissionSelectView::confirmMission() { return; } vehicle_select_mission(selectedMission); + + #ifdef DEMO_MODE + vehicle_state.active_mission = selectedMission; + presenter->vehicleStateUpdated(); + #endif + #ifdef SIMULATOR vehicle_state.active_mission = selectedMission; #endif