Fix standalone Lua script screen flicker and improve error messages (#982)
* Relax assumptions about when Lua is called in foreground and background * Start Lua cycle timer both in foreground and background Do not assume that background/foreground alternates * Lua is called at every Standalone GUI cycle instead of 5 Hz Since Lua preempts every 50 ms or so, the GUI should remain responsive. * In standalone script, only call Lua once per GUI cycle, to avoid messing up buffer handling. * Revamped error reporting for Standalone and Telemetry Lua scripts * Font size for Lua error is reduced from XL to L on color if LCD_W < LCD_H * In drawTextLines, also possible linebreaks for opening brackets. * Smaller font for error message on tall color screen * Make titlebar height match font size on narrow LCD
This commit is contained in:
@@ -113,8 +113,7 @@ enum ScriptState {
|
||||
SCRIPT_OK,
|
||||
SCRIPT_NOFILE,
|
||||
SCRIPT_SYNTAX_ERROR,
|
||||
SCRIPT_PANIC,
|
||||
SCRIPT_FINISHED
|
||||
SCRIPT_PANIC
|
||||
};
|
||||
|
||||
enum ScriptReference {
|
||||
@@ -169,10 +168,9 @@ bool luaTask(event_t evt, bool allowLcdUsage);
|
||||
void checkLuaMemoryUsage();
|
||||
void luaExec(const char * filename);
|
||||
void luaDoGc(lua_State * L, bool full);
|
||||
void luaError(lua_State * L, uint8_t error, bool acknowledge=true);
|
||||
uint32_t luaGetMemUsed(lua_State * L);
|
||||
void luaGetValueAndPush(lua_State * L, int src);
|
||||
uint8_t isTelemetryScriptAvailable(uint8_t index);
|
||||
bool isTelemetryScriptAvailable();
|
||||
|
||||
#define luaGetCpuUsed(idx) scriptInternalData[idx].instructions
|
||||
#define LUA_LOAD_MODEL_SCRIPTS() luaState = INTERPRETER_RELOAD_PERMANENT_SCRIPTS
|
||||
|
||||
Reference in New Issue
Block a user