From 405926484ebdd8ebc27e1f6354bf0baddca7a4eb Mon Sep 17 00:00:00 2001 From: Hans Christian Olaussen <41271048+klutvott123@users.noreply.github.com> Date: Sat, 29 Feb 2020 12:08:08 +0100 Subject: [PATCH] Add vtx tables download to popup menu Deletes the contents of the .lua file containing vtx tables for the selected model and downloads them again. The menu item is only available for firmwares supporting vtx tables. --- src/SCRIPTS/BF/ui.lua | 28 +++++++++++++++++++++------- src/SCRIPTS/BF/ui_init.lua | 9 ++++++++- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/src/SCRIPTS/BF/ui.lua b/src/SCRIPTS/BF/ui.lua index 77dd57e1..04d59058 100644 --- a/src/SCRIPTS/BF/ui.lua +++ b/src/SCRIPTS/BF/ui.lua @@ -32,7 +32,7 @@ local popupMenuActive = 1 local killEnterBreak = 0 local pageScrollY = 0 local mainMenuScrollY = 0 -local PageFiles, Page, init +local PageFiles, Page, init, popupMenuList local backgroundFill = TEXT_BGCOLOR or ERASE local foregroundColor = LINE_COLOR or SOLID @@ -72,11 +72,24 @@ local function eepromWrite() protocol.mspRead(uiMsp.eepromWrite) end -local popupMenuList = { - { t = "save page", f = saveSettings }, - { t = "reload", f = invalidatePages }, - { t = "reboot", f = rebootFc }, -} +local function getVtxTables() + uiState = uiStatus.init + PageFiles = nil + invalidatePages() + io.close(io.open("/BF/VTX/"..model.getInfo().name..".lua", 'w')) + return 0 +end + +local function createPopupMenu() + popupMenuList = { + { t = "save page", f = saveSettings }, + { t = "reload", f = invalidatePages }, + { t = "reboot", f = rebootFc }, + } + if apiVersion >= 1.042 then + popupMenuList[#popupMenuList + 1] = { t = "vtx tables", f = getVtxTables } + end +end local function processMspReply(cmd,rx_buf) if not Page or not rx_buf then @@ -254,6 +267,7 @@ local function run_ui(event) return 0 end init = nil + createPopupMenu() PageFiles = assert(loadScript("pages.lua"))() invalidatePages() uiState = uiStatus.mainMenu @@ -312,7 +326,7 @@ local function run_ui(event) killEnterBreak = 0 else pageState = pageStatus.display - popupMenuList[popupMenuActive].f() + return popupMenuList[popupMenuActive].f() or 0 end end elseif pageState == pageStatus.display then diff --git a/src/SCRIPTS/BF/ui_init.lua b/src/SCRIPTS/BF/ui_init.lua index e31e9dac..8686b5dc 100644 --- a/src/SCRIPTS/BF/ui_init.lua +++ b/src/SCRIPTS/BF/ui_init.lua @@ -1,6 +1,13 @@ local apiVersionReceived = false -local vtxTablesReceived = loadScript("/BF/VTX/"..model.getInfo().name..".lua") +local vtxTablesReceived = false local data_init, getVtxTables +local vtxTables = loadScript("/BF/VTX/"..model.getInfo().name..".lua") + +if vtxTables and vtxTables() then + vtxTablesReceived = true + vtxTables = nil + collectgarbage() +end local function init() if apiVersion == 0 then