Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 70f5e47

Browse files
Merge pull request #480 from atomgomba/hide-vtx-menu
Hide VTX menu when feature is unavailable
2 parents b5a9948 + 47f9efb commit 70f5e47

File tree

5 files changed

+36
-5
lines changed

5 files changed

+36
-5
lines changed

‎src/SCRIPTS/BF/features.lua

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
local features = {
2+
vtx = true,
3+
}
4+
5+
return features

‎src/SCRIPTS/BF/ui.lua

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,24 @@ local function confirm(page)
8282
collectgarbage()
8383
end
8484

85+
local function filterAvailablePages(pageFiles)
86+
local newPageFiles = pageFiles
87+
88+
local function skipPage(script)
89+
local currentPageFiles = {}
90+
for i = 1, #newPageFiles do
91+
if newPageFiles[i].script ~= script then
92+
currentPageFiles[#currentPageFiles + 1] = newPageFiles[i]
93+
end
94+
end
95+
newPageFiles = currentPageFiles
96+
end
97+
98+
if not features.vtx then skipPage("vtx.lua") end
99+
100+
return newPageFiles
101+
end
102+
85103
local function createPopupMenu()
86104
popupMenuActive = 1
87105
popupMenu = {}
@@ -296,7 +314,7 @@ local function run_ui(event)
296314
return 0
297315
end
298316
init = nil
299-
PageFiles = assert(loadScript("pages.lua"))()
317+
PageFiles = filterAvailablePages(assert(loadScript("pages.lua"))())
300318
invalidatePages()
301319
uiState = prevUiState or uiStatus.mainMenu
302320
prevUiState = nil

‎src/SCRIPTS/BF/ui_init.lua

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,15 @@ local function init()
2222
mcuIdReceived = getMCUId.f()
2323
if mcuIdReceived then
2424
getMCUId = nil
25-
local f = loadScript("VTX_TABLES/"..mcuId..".lua")
26-
if f and f() then
27-
vtxTablesReceived = true
28-
f = nil
25+
local f = loadScript("VTX_TABLES/" .. mcuId .. ".lua")
26+
if f then
27+
local table = f()
28+
if table then
29+
vtxTablesReceived = true
30+
features.vtx = 0 < table.frequenciesPerBand
31+
f = nil
32+
table = nil
33+
end
2934
end
3035
collectgarbage()
3136
f = loadScript("BOARD_INFO/"..mcuId..".lua")

‎src/SCRIPTS/BF/vtx_tables.lua

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@ local function processMspReply(cmd, payload, err)
2929
vtxTableAvailable = true
3030
vtxFrequencyTableReceived = true
3131
vtxPowerTableReceived = true
32+
features.vtx = false
3233
return
3334
end
3435
vtxConfigReceived = true
3536
vtxTableAvailable = payload[12] ~= 0
37+
features.vtx = vtxTableAvailable
3638
vtxTableConfig.bands = payload[13]
3739
vtxTableConfig.channels = payload[14]
3840
vtxTableConfig.powerLevels = payload[15]

‎src/SCRIPTS/TOOLS/bf.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ if scriptsCompiled then
1212
radio = assert(loadScript("radios.lua"))().msp
1313
assert(loadScript(protocol.mspTransport))()
1414
assert(loadScript("MSP/common.lua"))()
15+
features = assert(loadScript("features.lua"))()
1516
run = assert(loadScript("ui.lua"))()
1617
else
1718
run = assert(loadScript("COMPILE/compile.lua"))()

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /