From 50cd1abe20a0987cde850c0286c8a18bb5158e88 Mon Sep 17 00:00:00 2001 From: John Wieland Date: Mon, 12 Aug 2024 20:56:44 -0400 Subject: [PATCH 1/3] v2.1 Repaired file based on an issue with it jumping --- main.lua | 170 ++++++++++++++++++++++++++----------------------------- 1 file changed, 79 insertions(+), 91 deletions(-) diff --git a/main.lua b/main.lua index 357dc81..ef995e9 100644 --- a/main.lua +++ b/main.lua @@ -1,7 +1,7 @@ -- ######################################################################### ----# F3A Practice Caller V2.0 # +---# F3A Practice Caller V2.1 # ---# Developer: https://github.com/jrwieland # --- # License GPLv3: http://www.gnu.org/licenses/gpl-3.0.html # +-- # License GPLv3: http://www.gnu.org/licenses/gpl-3.0.html # -- # # -- # This program is free software; you can redistribute it and/or modify # -- # it under the terms of the GNU General Public License version 3 as # @@ -16,8 +16,9 @@ --Locals local currentCall = 1 local errorOccured = false - -loadScript("/SOUNDS/lists/f25/playlist.lua")()--1st callList (below) +local curTime =getRtcTime() + +loadScript("/SOUNDS/lists/ama_advanced/playlist.lua")()--1st callList (below) --Call lists folders names i.e. /SOUNDS/lists/"foldername" below are the foldernames these can be rearranged or deleted to suit your needs. --Delete the rows that you do not use or the widget will fail since it cannot find the file @@ -33,15 +34,16 @@ local callList= --Options local options = { - { "switch", SOURCE, DEFAULT_PRACTICE_SWITCH_ID }, - { "TextColor", COLOR, COLOR_THEME_PRIMARY2 }, + { "switch", SOURCE, DEFAULT_PRACTICE_SWITCH_ID }, + { "TextColor", COLOR, COLOR_THEME_PRIMARY2 }, } -- create zones local function create(zone, options) local calls = { zone=zone, options=options} + model.setGlobalVariable(7,0,1) model.setGlobalVariable(8,0,1) -- resets GV9 to 1 upon startup - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[1][8],active=1,repetition=-1}) + flushAudio() return calls end @@ -56,123 +58,109 @@ end function refresh(calls) --call list and Sequence Controls - nextS = getValue("ls50") --Next Call LS - prevS = getValue("ls51") -- Previous Call LS - listN = getValue("ls52") --Change to Next Maneuver List LS - listP = getValue("ls53") --Change to Previous Maneuver List LS + nextS = getLogicalSwitchValue(49) --Next Call LS + prevS = getLogicalSwitchValue(50) -- Previous Call LS + listN = getLogicalSwitchValue(51) --Change to Next Maneuver List LS + listP = getLogicalSwitchValue(52) --Change to Previous Maneuver List LS again = getValue(calls.options.switch) - + elapsed = getRtcTime()-curTime + --Move forward to Specific Maneuver - if nextS >=1 and again < -1 then + if nextS == true and again <= -1 then if currentCall == #playlist then - currentCall = #playlist - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) + currentCall = model.setGlobalVariable(8,0,#playlist) else - currentCall = currentCall +1 - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) end + currentCall = model.getGlobalVariable(8,0) end - + --Move backwards to Specific Maneuver - if prevS >= 1 and again < -1 then - if currentCall == 1 then - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) - playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") + if prevS == true and again <= -1 then + if currentCall <= 0 then + model.setGlobalVariable(8,0,1) else - currentCall = currentCall - 1 - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) end + currentCall = model.getGlobalVariable(8,0) end - - -- Repeat call - if again <= 99 and again > -1 and nextS >=1 then - playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") - end - + +-- -- Repeat call + if again == 0 and elapsed >= 1 then + model.setGlobalVariable(8,0,currentCall) + model.setCustomFunction(59,{switch = 8,func = 11,name = playlist[currentCall][8],active=1,repetition=80}) + curTime =getRtcTime() + end + --Next Call - if nextS >=1 and again >= 1 then + if nextS == true and again >= 1 and elapsed >= 1 then + flushAudio() if currentCall == #playlist then - currentCall = #playlist - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) + currentCall = model.setGlobalVariable(8,0,#playlist) else - currentCall = currentCall +1 - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) - playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") end + currentCall = model.getGlobalVariable(8,0) + playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") + curTime =getRtcTime() end - + --Previous Call - if prevS >= 1 and again >= 1 then - if currentCall == 1 then - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) - playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") + if prevS == true and again >= 1 and elapsed >= 1 then + if currentCall <= 1 then + model.setGlobalVariable(8,0,1) else - currentCall = currentCall - 1 - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[currentCall][8],active=1,repetition=-1}) - playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") end + currentCall=model.getGlobalVariable(8,0) + playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") + curTime =getRtcTime() end - + --Change to Next Maneuver List - if listN > -1 then - if not nextListSwitchPressed then - if model.getGlobalVariable(8,0) >= #callList +1 then - set2 = callList[1] - currentCall = 1 - model.setGlobalVariable(8,0,1) - else - currentCall = 1 - set2 = callList[model.getGlobalVariable(8,0)] - end - loadScript("/SOUNDS/lists/"..set2.."/playlist.lua")() - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[1][8],active=1,repetition=-1}) - + if listN == true and elapsed >= 1 then + if model.getGlobalVariable(7,0) > #callList then + model.setGlobalVariable(7,0,1) else - nextListSwitchPressed = false end + loadScript("/SOUNDS/lists/"..callList[model.getGlobalVariable(7,0)].."/playlist.lua")() + model.setGlobalVariable(8,0,1) + currentCall = model.getGlobalVariable(8,0) + playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") + curTime =getRtcTime() end - + --Change to Previous Maneuver List - if listP > -1 then - if not prevListSwitchPressed then - if model.getGlobalVariable(8,0)<= 0 then - model.setGlobalVariable(8,0,#callList) - currentCall = 1 - set2 = callList[model.getGlobalVariable(8,0)] - else - currentCall = 1 - set2 = callList[model.getGlobalVariable(8,0)] - end - loadScript("/SOUNDS/lists/"..set2.."/playlist.lua")() - model.setCustomFunction(61,{switch = 233,func = 11,name = playlist[1][8],active=1,repetition=-1}) - + if listP == true and elapsed >= 1 then + if model.getGlobalVariable(7,0)<= 0 then + model.setGlobalVariable(7,0,#callList) else - prevListSwitchPressed = false end + loadScript("/SOUNDS/lists/"..callList[model.getGlobalVariable(7,0)].."/playlist.lua")() + model.setGlobalVariable(8,0,1) + currentCall = model.getGlobalVariable(8,0) + playFile("/SOUNDS/en/".. playlist[currentCall][8] ..".wav") + curTime =getRtcTime() end - + --LCD Display local selection=currentCall if calls.zone.w > 200 and calls.zone.h > 165 then - lcd.drawText(calls.zone.x+75,calls.zone.y, title, calls.options.TextColor) - lcd.drawText(calls.zone.x+130, calls.zone.y+30, "Sequence No. "..selection, INVERS+calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+55, playlist[selection][1],SMLSIZE+calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+70, playlist[selection][2],SMLSIZE+calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+85, playlist[selection][3],SMLSIZE+calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+100, playlist[selection][4],SMLSIZE+calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+115, playlist[selection][5],SMLSIZE+calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+130, playlist[selection][6],SMLSIZE+calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+145, playlist[selection][7],SMLSIZE+calls.options.TextColor) - if selection >= #playlist then - lcd.drawText(calls.zone.x+130, calls.zone.y+30, "End of Sequence", INVERS) - end + lcd.drawText(calls.zone.x+75,calls.zone.y, title, calls.options.TextColor) + lcd.drawText(calls.zone.x+130, calls.zone.y+30, "Sequence No. "..selection, INVERS+calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+55, playlist[selection][1],SMLSIZE+calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+70, playlist[selection][2],SMLSIZE+calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+85, playlist[selection][3],SMLSIZE+calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+100, playlist[selection][4],SMLSIZE+calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+115, playlist[selection][5],SMLSIZE+calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+130, playlist[selection][6],SMLSIZE+calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+145, playlist[selection][7],SMLSIZE+calls.options.TextColor) + if selection >= #playlist then + lcd.drawText(calls.zone.x+130, calls.zone.y+30, "End of Sequence", INVERS) + end else - lcd.drawText(calls.zone.x, calls.zone.y, title, calls.options.TextColor) - lcd.drawText(calls.zone.x, calls.zone.y+14, "Sequence No. "..selection, calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y, title, calls.options.TextColor) + lcd.drawText(calls.zone.x, calls.zone.y+14, "Sequence No. "..selection, calls.options.TextColor) if selection >= #playlist then - lcd.drawText(calls.zone.x, calls.zone.y+14, "End of Sequence", INVERS) + lcd.drawText(calls.zone.x, calls.zone.y+14, "End of Sequence", INVERS) end -end + end end return { name="F3A", options=options, create=create, update=update, refresh=refresh, background=background } From f3adcdb4cd73d0c3aab29cb1493e1a50d70b4008 Mon Sep 17 00:00:00 2001 From: John Wieland Date: Mon, 12 Aug 2024 20:58:45 -0400 Subject: [PATCH 2/3] Updated SF screenshot --- Screenshots/compsf.PNG | Bin 19808 -> 22017 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Screenshots/compsf.PNG b/Screenshots/compsf.PNG index 307ea70a0ab06ccc18ca057650742d7f6a7ac087..a310b4fba5a842b26215459255048e5440fabb35 100644 GIT binary patch literal 22017 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 literal 19808 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 Date: Mon, 12 Aug 2024 21:04:35 -0400 Subject: [PATCH 3/3] Updated README --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 71b37cd..a3efa87 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -F3A Caller Widget Version 2.0 +F3A Caller Widget Version 2.1 =========== *Caller for practicing F3A pattern* * Updated to 2024 Season @@ -17,7 +17,7 @@ Key Features 3. Advanced 4. Masters -[Get Release 2.0](https://github.com/jrwieland/F3A/releases/tag/v2.0) +[Get Release 2.1](https://github.com/jrwieland/F3A/releases/tag/v2.1) ## Widget Operation @@ -56,7 +56,7 @@ set your open logisal switches as follows If you don't use these please adjust the main.lua file to reflect the switches you use ![Refresh](Screenshots/refresh.PNG) -*6. Set 2 special functions SF63 & 64 (these adjust GV 9, which keeps track of which call list your using)* The needs to match the LS you use advance through the calls i.e. 50 & 51 +*6. Set 4 special functions SF61 - 64 (these adjust GV 8 & 9, which keeps track of which calls and maneuver lists your using)* They needs to match the LS you use advance through the calls i.e. 50 - 53 ![Companion SF](Screenshots/compsf.PNG)