From 61d302980967f05f3e8a4957dfc45c859559cdf0 Mon Sep 17 00:00:00 2001
From: Hans Christian Olaussen <41271048+klutvott123@users.noreply.github.com>
Date: Mon, 13 Mar 2023 14:08:18 +0100
Subject: [PATCH] Create empty vtx table if not available

---
 src/SCRIPTS/BF/PAGES/vtx.lua  |  5 ++---
 src/SCRIPTS/BF/vtx_tables.lua | 14 ++++++++++----
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/src/SCRIPTS/BF/PAGES/vtx.lua b/src/SCRIPTS/BF/PAGES/vtx.lua
index b40e912..e2a978e 100644
--- a/src/SCRIPTS/BF/PAGES/vtx.lua
+++ b/src/SCRIPTS/BF/PAGES/vtx.lua
@@ -12,9 +12,8 @@ local labels = {}
 local fields = {}
 
 local vtx_tables
-local f = loadScript("VTX_TABLES/"..mcuId..".lua")
-if apiVersion >= 1.42 and f then
-    vtx_tables = f()
+if apiVersion >= 1.42 then
+    vtx_tables = assert(loadScript("VTX_TABLES/"..mcuId..".lua"))()
 else
     vtx_tables = assert(loadScript("VTX_TABLES/vtx_defaults.lua"))()
 end
diff --git a/src/SCRIPTS/BF/vtx_tables.lua b/src/SCRIPTS/BF/vtx_tables.lua
index 1340af8..d7edbba 100644
--- a/src/SCRIPTS/BF/vtx_tables.lua
+++ b/src/SCRIPTS/BF/vtx_tables.lua
@@ -2,7 +2,6 @@ local MSP_VTX_CONFIG = 88
 local MSP_VTXTABLE_BAND = 137
 local MSP_VTXTABLE_POWERLEVEL = 138
 
-local vtxAvailable = true
 local vtxTableAvailable = false
 local vtxConfigReceived = false
 local vtxFrequencyTableReceived = false
@@ -12,7 +11,6 @@ local requestedBand = 1
 local requestedPowerLevel = 1
 local vtxTableConfig = {}
 local frequencyTable = {}
-local frequenciesPerBand = 0
 local bandTable = {}
 local powerTable = {}
 
@@ -22,7 +20,15 @@ local INTERVAL = 100
 local function processMspReply(cmd, payload, err)
     if cmd == MSP_VTX_CONFIG then
         if err then
-            vtxAvailable = false
+            -- Vtx not available. Create empty vtx table to skip future download attempts
+            frequencyTable[1] = {}
+            vtxTableConfig.channels = 0
+            bandTable = { [0] = "U", "1" }
+            powerTable = { "LV0" }
+            vtxConfigReceived = true
+            vtxTableAvailable = true
+            vtxFrequencyTableReceived = true
+            vtxPowerTableReceived = true
             return
         end
         vtxConfigReceived = true
@@ -118,7 +124,7 @@ local function getVtxTables()
     end
     mspProcessTxQ()
     processMspReply(mspPollReply())
-    return vtxTablesReceived or not vtxAvailable
+    return vtxTablesReceived
 end
 
 return { f = getVtxTables, t = "Downloading VTX tables" }