commented the logic + tidied it up a bit

This commit is contained in:
Boyan 2022-07-29 17:26:46 +03:00
parent 017f5b29ee
commit 6294807ed3

View File

@ -1,6 +1,7 @@
import time
from pigpio_encoder.rotary import Rotary
# Bands dict
bands = {
"80m":[3.5, 4],
"40m":[7, 7.3],
@ -10,25 +11,33 @@ bands = {
"70cm":[430,440]
}
# iterate over band
band = iter(bands)
CURRENT_BAND = next(band)
CURRENT_BAND = None
def setup_encoder(ranges:list):
def setup_encoder(ranges:list, scale:float=.25):
# make the minimum and maximum deviate by .1
minimum, maximum = ranges
minimum -= .1
maximum += .1
# prints current value
def rotary_callback(counter):
print("Counter value: ", round(counter, 2))
# init rotary
my_rotary = Rotary(
clk_gpio=17,
dt_gpio=27,
sw_gpio=22
)
# setup rotary
my_rotary.setup_rotary(
min=ranges[0],
max=ranges[1],
scale=.25,
min=minimum,
max=maximum,
scale=scale,
debounce=300,
rotary_callback=rotary_callback
)
@ -39,27 +48,29 @@ def setup_encoder(ranges:list):
def change_band(plus:bool=False, minus:bool=False):
global CURRENT_BAND
if plus:
# rollover positive next
CURRENT_BAND = next(band)
if minus:
try:
CURRENT_BAND = bands[list(bands)[list(bands.keys()).index(CURRENT_BAND)-1]]
# rollover negative previous
bands_keys = list(bands)
CURRENT_BAND = bands[bands_keys[bands_keys.index(CURRENT_BAND)-1]]
print(CURRENT_BAND)
except Exception as e:
print(e)
except IndexError:
pass
# new encoder
encoder = setup_encoder(bands[CURRENT_BAND])
print(CURRENT_BAND)
return encoder
encoder = setup_encoder(bands[next(band)])
def main():
global encoder
while True:
if encoder.counter >= encoder.max:
encoder = change_band(plus=True)
if encoder.counter <= encoder.min:
while True:
if encoder.counter > bands[CURRENT_BAND][1]:
encoder = change_band(plus=True)
if encoder.counter < bands[CURRENT_BAND][0]:
encoder = change_band(minus=True)
time.sleep(.5)