diff --git a/radio/src/gui/Taranis/view_telemetry.cpp b/radio/src/gui/Taranis/view_telemetry.cpp index 1b97dc763..e6c6eb7cb 100644 --- a/radio/src/gui/Taranis/view_telemetry.cpp +++ b/radio/src/gui/Taranis/view_telemetry.cpp @@ -182,35 +182,6 @@ void displayCustomTelemetryScreen(uint8_t index) displayNumbersTelemetryScreen(screen); } -#if defined(LUA) - -#define LUA_SCRIPT_ERROR_Y 3*FH -// TODO more visual appealing implementation and text translations -void displayLuaScriptError(uint8_t state, int index) -{ - TelemetryScriptData & script = g_model.frsky.screens[index].script; - char filename[sizeof(script.file)+1]; - strncpy(filename, script.file, sizeof(script.file)); - filename[sizeof(script.file)] = '\0'; - - lcd_putsAtt(0, LUA_SCRIPT_ERROR_Y, filename, 0); - lcd_putsAtt(lcdLastPos, LUA_SCRIPT_ERROR_Y, ": ", 0); - switch (state) { - case SCRIPT_SYNTAX_ERROR: - lcd_putsAtt(lcdLastPos, LUA_SCRIPT_ERROR_Y, "Script syntax error", 0); - break; - case SCRIPT_PANIC: - lcd_putsAtt(lcdLastPos, LUA_SCRIPT_ERROR_Y, "Script panic", 0); - break; - case SCRIPT_KILLED: - lcd_putsAtt(lcdLastPos, LUA_SCRIPT_ERROR_Y, "Script killed", 0); - break; - default: - lcd_putsAtt(lcdLastPos, LUA_SCRIPT_ERROR_Y, "Unknown error", 0); - } -} -#endif - bool displayTelemetryScreen() { #if defined(LUA) @@ -218,14 +189,13 @@ bool displayTelemetryScreen() uint8_t state = isTelemetryScriptAvailable(s_frsky_view); switch (state) { case SCRIPT_OK: - return true; //contents will be drawed by Lua Task + return true; // contents will be drawed by Lua Task case SCRIPT_NOFILE: - return false; //requested lua telemetry screen not available + return false; // requested lua telemetry screen not available case SCRIPT_SYNTAX_ERROR: case SCRIPT_PANIC: case SCRIPT_KILLED: - //display script error - displayLuaScriptError(state, s_frsky_view+1); + luaError(state); return true; } return false; diff --git a/radio/src/lua_api.cpp b/radio/src/lua_api.cpp index 42710d60a..bc789b94c 100644 --- a/radio/src/lua_api.cpp +++ b/radio/src/lua_api.cpp @@ -1826,41 +1826,50 @@ void luaLoadPermanentScripts() char lua_warning_str[WARNING_LINE_LEN+1]; char lua_warning_info[WARNING_LINE_LEN+1]; -void luaError(uint8_t error) +void luaError(uint8_t error, bool exit_button=false) { - const char *msg = lua_tostring(L, -1); + const char * msg = lua_tostring(L, -1); + if (msg) { #if defined(SIMU) - if (!strncmp(msg, "./", 2)) msg += 2; -#else - if (!strncmp(msg, "/SCRIPTS/", 9)) msg += 9; + if (!strncmp(msg, ".", 2)) msg += 1; #endif + if (!strncmp(msg, "/SCRIPTS/", 9)) msg += 9; strncpy(lua_warning_str, msg, WARNING_LINE_LEN); lua_warning_str[WARNING_LINE_LEN] = '\0'; - POPUP_WARNING(lua_warning_str); + for (int i=0; i