1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-21 15:25:17 +03:00

Lua error display function reused

This commit is contained in:
Bertrand Songis 2015-09-25 17:44:32 +02:00
parent e57361f7e1
commit 3f6e1d0b3a
15 changed files with 73 additions and 42 deletions

View file

@ -182,35 +182,6 @@ void displayCustomTelemetryScreen(uint8_t index)
displayNumbersTelemetryScreen(screen); 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() bool displayTelemetryScreen()
{ {
#if defined(LUA) #if defined(LUA)
@ -224,8 +195,7 @@ bool displayTelemetryScreen()
case SCRIPT_SYNTAX_ERROR: case SCRIPT_SYNTAX_ERROR:
case SCRIPT_PANIC: case SCRIPT_PANIC:
case SCRIPT_KILLED: case SCRIPT_KILLED:
//display script error luaError(state);
displayLuaScriptError(state, s_frsky_view+1);
return true; return true;
} }
return false; return false;

View file

@ -1826,41 +1826,50 @@ void luaLoadPermanentScripts()
char lua_warning_str[WARNING_LINE_LEN+1]; char lua_warning_str[WARNING_LINE_LEN+1];
char lua_warning_info[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 (msg) {
#if defined(SIMU) #if defined(SIMU)
if (!strncmp(msg, "./", 2)) msg += 2; if (!strncmp(msg, ".", 2)) msg += 1;
#else
if (!strncmp(msg, "/SCRIPTS/", 9)) msg += 9;
#endif #endif
if (!strncmp(msg, "/SCRIPTS/", 9)) msg += 9;
strncpy(lua_warning_str, msg, WARNING_LINE_LEN); strncpy(lua_warning_str, msg, WARNING_LINE_LEN);
lua_warning_str[WARNING_LINE_LEN] = '\0'; lua_warning_str[WARNING_LINE_LEN] = '\0';
POPUP_WARNING(lua_warning_str);
for (int i=0; i<WARNING_LINE_LEN; i++) { for (int i=0; i<WARNING_LINE_LEN; i++) {
if (msg[i] == ':' && msg[i+1] == ' ') { if (msg[i] == ':' && msg[i+1] == ' ') {
lua_warning_str[i] = '\0'; lua_warning_str[i] = '\0';
strncpy(lua_warning_info, &msg[i+2], WARNING_LINE_LEN); strncpy(lua_warning_info, &msg[i+2], WARNING_LINE_LEN);
lua_warning_info[WARNING_LINE_LEN] = '\0'; lua_warning_info[WARNING_LINE_LEN] = '\0';
SET_WARNING_INFO(lua_warning_info, WARNING_LINE_LEN, 0); SET_WARNING_INFO(lua_warning_info, WARNING_LINE_LEN, 0);
break;
} }
} }
msg = lua_warning_str;
} }
else { else {
switch (error) { switch (error) {
case SCRIPT_SYNTAX_ERROR: case SCRIPT_SYNTAX_ERROR:
msg = "Script syntax error"; msg = STR_SCRIPT_SYNTAX_ERROR;
break; break;
case SCRIPT_KILLED: case SCRIPT_KILLED:
msg = "Script killed"; msg = STR_SCRIPT_KILLED;
break; break;
case SCRIPT_PANIC: case SCRIPT_PANIC:
msg = "Script panic"; msg = STR_SCRIPT_PANIC;
break; break;
} }
}
if (exit_button) {
POPUP_WARNING(msg); POPUP_WARNING(msg);
} }
else {
displayBox(msg);
lcd_puts(WARNING_LINE_X, WARNING_LINE_Y+FH, lua_warning_info);
}
} }
void luaExec(const char *filename) void luaExec(const char *filename)

View file

@ -482,6 +482,10 @@ const pm_char STR_NO_SOUNDS_ON_SD[] PROGMEM = TR_NO_SOUNDS_ON_SD;
const pm_char STR_NO_MODELS_ON_SD[] PROGMEM = TR_NO_MODELS_ON_SD; const pm_char STR_NO_MODELS_ON_SD[] PROGMEM = TR_NO_MODELS_ON_SD;
const pm_char STR_NO_BITMAPS_ON_SD[] PROGMEM = TR_NO_BITMAPS_ON_SD; const pm_char STR_NO_BITMAPS_ON_SD[] PROGMEM = TR_NO_BITMAPS_ON_SD;
const pm_char STR_NO_SCRIPTS_ON_SD[] PROGMEM = TR_NO_SCRIPTS_ON_SD; const pm_char STR_NO_SCRIPTS_ON_SD[] PROGMEM = TR_NO_SCRIPTS_ON_SD;
const pm_char STR_SCRIPT_SYNTAX_ERROR[] PROGMEM = TR_SCRIPT_SYNTAX_ERROR;
const pm_char STR_SCRIPT_PANIC[] PROGMEM = TR_SCRIPT_PANIC;
const pm_char STR_SCRIPT_KILLED[] PROGMEM = TR_SCRIPT_KILLED;
const pm_char STR_SCRIPT_ERROR[] PROGMEM = TR_SCRIPT_ERROR;
const pm_char STR_PLAY_FILE[] PROGMEM = TR_PLAY_FILE; const pm_char STR_PLAY_FILE[] PROGMEM = TR_PLAY_FILE;
const pm_char STR_ASSIGN_BITMAP[] PROGMEM = TR_ASSIGN_BITMAP; const pm_char STR_ASSIGN_BITMAP[] PROGMEM = TR_ASSIGN_BITMAP;
const pm_char STR_EXECUTE_FILE[] PROGMEM = TR_EXECUTE_FILE; const pm_char STR_EXECUTE_FILE[] PROGMEM = TR_EXECUTE_FILE;

View file

@ -665,6 +665,10 @@ extern const pm_char STR_NO_SOUNDS_ON_SD[];
extern const pm_char STR_NO_MODELS_ON_SD[]; extern const pm_char STR_NO_MODELS_ON_SD[];
extern const pm_char STR_NO_BITMAPS_ON_SD[]; extern const pm_char STR_NO_BITMAPS_ON_SD[];
extern const pm_char STR_NO_SCRIPTS_ON_SD[]; extern const pm_char STR_NO_SCRIPTS_ON_SD[];
extern const pm_char STR_SCRIPT_SYNTAX_ERROR[];
extern const pm_char STR_SCRIPT_PANIC[];
extern const pm_char STR_SCRIPT_KILLED[];
extern const pm_char STR_SCRIPT_ERROR[];
extern const pm_char STR_PLAY_FILE[]; extern const pm_char STR_PLAY_FILE[];
extern const pm_char STR_ASSIGN_BITMAP[]; extern const pm_char STR_ASSIGN_BITMAP[];
extern const pm_char STR_EXECUTE_FILE[]; extern const pm_char STR_EXECUTE_FILE[];

View file

@ -846,6 +846,10 @@
#define TR_NO_MODELS_ON_SD "žádný model" BREAKSPACE "na SD" #define TR_NO_MODELS_ON_SD "žádný model" BREAKSPACE "na SD"
#define TR_NO_BITMAPS_ON_SD "žádné obrázky" BREAKSPACE "na SD" #define TR_NO_BITMAPS_ON_SD "žádné obrázky" BREAKSPACE "na SD"
#define TR_NO_SCRIPTS_ON_SD "žádný skript" BREAKSPACE "na SD" #define TR_NO_SCRIPTS_ON_SD "žádný skript" BREAKSPACE "na SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Přehrát" #define TR_PLAY_FILE "Přehrát"
#define TR_DELETE_FILE "Odstranit" #define TR_DELETE_FILE "Odstranit"
#define TR_COPY_FILE "Kopírovat" #define TR_COPY_FILE "Kopírovat"

View file

@ -850,6 +850,10 @@
#define TR_NO_MODELS_ON_SD "Kein Modell auf SD" #define TR_NO_MODELS_ON_SD "Kein Modell auf SD"
#define TR_NO_BITMAPS_ON_SD "Keine Bitmaps auf SD" #define TR_NO_BITMAPS_ON_SD "Keine Bitmaps auf SD"
#define TR_NO_SCRIPTS_ON_SD "Keine Scripte auf SD" #define TR_NO_SCRIPTS_ON_SD "Keine Scripte auf SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Spielen" #define TR_PLAY_FILE "Spielen"
#define TR_DELETE_FILE "Löschen" #define TR_DELETE_FILE "Löschen"
#define TR_COPY_FILE "Kopieren" #define TR_COPY_FILE "Kopieren"

View file

@ -845,6 +845,10 @@
#define TR_NO_MODELS_ON_SD "No Models" BREAKSPACE "on SD" #define TR_NO_MODELS_ON_SD "No Models" BREAKSPACE "on SD"
#define TR_NO_BITMAPS_ON_SD "No Bitmaps" BREAKSPACE "on SD" #define TR_NO_BITMAPS_ON_SD "No Bitmaps" BREAKSPACE "on SD"
#define TR_NO_SCRIPTS_ON_SD "No Scripts" BREAKSPACE "on SD" #define TR_NO_SCRIPTS_ON_SD "No Scripts" BREAKSPACE "on SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Play" #define TR_PLAY_FILE "Play"
#define TR_DELETE_FILE "Delete" #define TR_DELETE_FILE "Delete"
#define TR_COPY_FILE "Copy" #define TR_COPY_FILE "Copy"

View file

@ -800,6 +800,10 @@
#define TR_NO_MODELS_ON_SD "Sin Modelos en SD" #define TR_NO_MODELS_ON_SD "Sin Modelos en SD"
#define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD" #define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD"
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Play" #define TR_PLAY_FILE "Play"
#define TR_DELETE_FILE "Borrar" #define TR_DELETE_FILE "Borrar"
#define TR_COPY_FILE "Copiar" #define TR_COPY_FILE "Copiar"

View file

@ -800,6 +800,10 @@
#define TR_NO_MODELS_ON_SD "No Models on SD" #define TR_NO_MODELS_ON_SD "No Models on SD"
#define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD" #define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD"
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Play" #define TR_PLAY_FILE "Play"
#define TR_DELETE_FILE "Delete" #define TR_DELETE_FILE "Delete"
#define TR_COPY_FILE "Copy" #define TR_COPY_FILE "Copy"

View file

@ -837,6 +837,10 @@
#define TR_NO_MODELS_ON_SD "Aucun modèle SD" #define TR_NO_MODELS_ON_SD "Aucun modèle SD"
#define TR_NO_BITMAPS_ON_SD "Aucun Bitmap SD" #define TR_NO_BITMAPS_ON_SD "Aucun Bitmap SD"
#define TR_NO_SCRIPTS_ON_SD "Aucun Script SD" #define TR_NO_SCRIPTS_ON_SD "Aucun Script SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Lire" #define TR_PLAY_FILE "Lire"
#define TR_DELETE_FILE "Supprimer" #define TR_DELETE_FILE "Supprimer"
#define TR_COPY_FILE "Copier" #define TR_COPY_FILE "Copier"

View file

@ -848,6 +848,10 @@
#define TR_NO_MODELS_ON_SD "No Model. su SD" #define TR_NO_MODELS_ON_SD "No Model. su SD"
#define TR_NO_BITMAPS_ON_SD "No Immag. su SD" #define TR_NO_BITMAPS_ON_SD "No Immag. su SD"
#define TR_NO_SCRIPTS_ON_SD "No Scripts su SD" #define TR_NO_SCRIPTS_ON_SD "No Scripts su SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Suona" #define TR_PLAY_FILE "Suona"
#define TR_DELETE_FILE "Elimina" #define TR_DELETE_FILE "Elimina"
#define TR_COPY_FILE "Copia" #define TR_COPY_FILE "Copia"

View file

@ -867,6 +867,10 @@
#define TR_NO_MODELS_ON_SD "Geen Modellen" BREAKSPACE "op SD" #define TR_NO_MODELS_ON_SD "Geen Modellen" BREAKSPACE "op SD"
#define TR_NO_BITMAPS_ON_SD "Geen Bitmaps" BREAKSPACE "op SD" #define TR_NO_BITMAPS_ON_SD "Geen Bitmaps" BREAKSPACE "op SD"
#define TR_NO_SCRIPTS_ON_SD "Geen Scripts" BREAKSPACE "op SD" #define TR_NO_SCRIPTS_ON_SD "Geen Scripts" BREAKSPACE "op SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Speel af" #define TR_PLAY_FILE "Speel af"
#define TR_DELETE_FILE "Verwijderen" #define TR_DELETE_FILE "Verwijderen"
#define TR_COPY_FILE "Kopieer" #define TR_COPY_FILE "Kopieer"

View file

@ -849,6 +849,10 @@
#define TR_NO_MODELS_ON_SD "Brak modelu na SD" #define TR_NO_MODELS_ON_SD "Brak modelu na SD"
#define TR_NO_BITMAPS_ON_SD "Brak obrazków na SD" #define TR_NO_BITMAPS_ON_SD "Brak obrazków na SD"
#define TR_NO_SCRIPTS_ON_SD "Brak skryptów na SD" #define TR_NO_SCRIPTS_ON_SD "Brak skryptów na SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Odtwórz" #define TR_PLAY_FILE "Odtwórz"
#define TR_DELETE_FILE "Skasuj" #define TR_DELETE_FILE "Skasuj"
#define TR_COPY_FILE "Kopiuj" #define TR_COPY_FILE "Kopiuj"

View file

@ -800,6 +800,10 @@
#define TR_NO_MODELS_ON_SD "Sem Modelo no SD" #define TR_NO_MODELS_ON_SD "Sem Modelo no SD"
#define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD" #define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD"
#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_NO_SCRIPTS_ON_SD "No Scripts on SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Play" #define TR_PLAY_FILE "Play"
#define TR_DELETE_FILE "Apagar" #define TR_DELETE_FILE "Apagar"
#define TR_COPY_FILE "Copiar" #define TR_COPY_FILE "Copiar"

View file

@ -800,6 +800,10 @@
#define TR_NO_MODELS_ON_SD "Ingen modell i SD" #define TR_NO_MODELS_ON_SD "Ingen modell i SD"
#define TR_NO_BITMAPS_ON_SD "Ikoner saknas på SD" #define TR_NO_BITMAPS_ON_SD "Ikoner saknas på SD"
#define TR_NO_SCRIPTS_ON_SD "Programkod saknas på SD" #define TR_NO_SCRIPTS_ON_SD "Programkod saknas på SD"
#define TR_SCRIPT_SYNTAX_ERROR "Script syntax error"
#define TR_SCRIPT_PANIC "Script panic"
#define TR_SCRIPT_KILLED "Script killed"
#define TR_SCRIPT_ERROR "Unknown error"
#define TR_PLAY_FILE "Spela" #define TR_PLAY_FILE "Spela"
#define TR_DELETE_FILE "Radera" #define TR_DELETE_FILE "Radera"
#define TR_COPY_FILE "Kopia" #define TR_COPY_FILE "Kopia"