diff --git a/radio/src/gui/Taranis/view_telemetry.cpp b/radio/src/gui/Taranis/view_telemetry.cpp index 674f77da2..d35a04a91 100644 --- a/radio/src/gui/Taranis/view_telemetry.cpp +++ b/radio/src/gui/Taranis/view_telemetry.cpp @@ -186,7 +186,19 @@ bool displayTelemetryScreen() { #if defined(LUA) if (TELEMETRY_SCREEN_TYPE(s_frsky_view) == TELEMETRY_SCREEN_TYPE_SCRIPT) { - return true; + uint8_t state = isTelemetryScriptAvailable(s_frsky_view); + switch (state) { + case SCRIPT_OK: + return true; // contents will be drawed by Lua Task + case SCRIPT_NOFILE: + return false; // requested lua telemetry screen not available + case SCRIPT_SYNTAX_ERROR: + case SCRIPT_PANIC: + case SCRIPT_KILLED: + luaError(state, false); + return true; + } + return false; } #endif diff --git a/radio/src/lua_api.cpp b/radio/src/lua_api.cpp index 246d69a1d..4b2d99839 100644 --- a/radio/src/lua_api.cpp +++ b/radio/src/lua_api.cpp @@ -1784,6 +1784,17 @@ bool luaLoadTelemetryScript(uint8_t index) return true; } +uint8_t isTelemetryScriptAvailable(uint8_t index) +{ + for (int i=0; i