From 45e8d93eeca0d718ce6bcfb9a6b3331a51b96bac Mon Sep 17 00:00:00 2001 From: 3djc <5167938+3djc@users.noreply.github.com> Date: Sat, 4 Jul 2026 10:34:15 +0200 Subject: [PATCH] fix(radio): reset statistics values on model change (#7518) --- radio/src/lua/interface.cpp | 1 + radio/src/lua/lua_api.h | 1 + radio/src/main.cpp | 2 -- radio/src/storage/storage_common.cpp | 8 ++++++++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/radio/src/lua/interface.cpp b/radio/src/lua/interface.cpp index bb204b42a..0caf0a298 100644 --- a/radio/src/lua/interface.cpp +++ b/radio/src/lua/interface.cpp @@ -66,6 +66,7 @@ ScriptInputsOutputs scriptInputsOutputs[MAX_SCRIPTS]; uint16_t maxLuaInterval = 0; uint16_t maxLuaDuration = 0; +uint32_t lastLuaTime = 0; tmr10ms_t luaCycleStart; char lua_warning_info[LUA_WARNING_INFO_LEN+1]; uint8_t errorState; diff --git a/radio/src/lua/lua_api.h b/radio/src/lua/lua_api.h index e4134dfbd..f9e66056c 100644 --- a/radio/src/lua/lua_api.h +++ b/radio/src/lua/lua_api.h @@ -208,6 +208,7 @@ extern struct our_longjmp * global_lj; extern uint16_t maxLuaInterval; extern uint16_t maxLuaDuration; +extern uint32_t lastLuaTime; extern uint8_t instructionsPercent; #define LUA_TASK_PERIOD_TICKS 5 // 50 ms diff --git a/radio/src/main.cpp b/radio/src/main.cpp index 8abf1cff2..0906531ad 100644 --- a/radio/src/main.cpp +++ b/radio/src/main.cpp @@ -358,7 +358,6 @@ void guiMain(event_t evt) { #if defined(LUA) uint32_t t0 = get_tmr10ms(); - static uint32_t lastLuaTime = 0; uint16_t interval = (lastLuaTime == 0 ? 0 : (t0 - lastLuaTime)); lastLuaTime = t0; if (interval > maxLuaInterval) { @@ -443,7 +442,6 @@ void guiMain(event_t evt) #if defined(LUA) // TODO better lua stopwatch uint32_t t0 = get_tmr10ms(); - static uint32_t lastLuaTime = 0; uint16_t interval = (lastLuaTime == 0 ? 0 : (t0 - lastLuaTime)); lastLuaTime = t0; if (interval > maxLuaInterval) { diff --git a/radio/src/storage/storage_common.cpp b/radio/src/storage/storage_common.cpp index ab9c77a29..f04cd302a 100644 --- a/radio/src/storage/storage_common.cpp +++ b/radio/src/storage/storage_common.cpp @@ -317,6 +317,14 @@ if(g_model.rssiSource) { LUA_LOAD_MODEL_SCRIPTS(); SEND_FAILSAFE_1S(); + + // Reset debug stats for the newly loaded model (after checkAll() warnings) + maxMixerDuration = 0; +#if defined(LUA) + maxLuaInterval = 0; + maxLuaDuration = 0; + lastLuaTime = 0; // avoids counting the load time as one huge interval spike +#endif } void storageFlushCurrentModel()