diff --git a/main.py b/main.py index d5718fc..179ba15 100644 --- a/main.py +++ b/main.py @@ -4,25 +4,27 @@ import time import datetime import asyncio import os +from itertools import cycle -PTT_IS_ON = False -modulations = { - "ssb":"./modulations/ssb.sh", - "fmrds":"./modulations/fmrds.sh" -} +PTT_IS_ON:bool = False +MODULATION:str = None +FREQUENCY:float = float(430) +modulations = cycle(["./modulations/ssb.sh", "./modulations/fmrds.sh"]) # init GPIO pi = pigpio.pi() # button pin pi.set_mode(10, pigpio.INPUT) +# modulation change pin(change this) +pi.set_mode(11) async def run_command(*args): process = await asyncio.create_subprocess_exec(*args, stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE) print("Started: %s, pid=%s" % (args, process.pid), flush=True) -async def button_press(gpio:int, level) -> bool: +async def button_press(gpio:int, level): global PTT_IS_ON while True: if(pi.read(gpio)!=0): @@ -31,14 +33,28 @@ async def button_press(gpio:int, level) -> bool: PTT_IS_ON = False await asyncio.sleep(.5) -async def main(mod, freq:float): + +async def moduation_change(gpio:int, level): + global MODULATION + while True: + # given that the logic is the same + # if it isn't: TODO: rewrite this func + if(pi.read(gpio)!=0): + MODULATION = next(modulations) + await asyncio.sleep(.5) + +async def frequency(gpio): + # TODO write this function after hooking up the encoder +async def main(freq:float): asyncio.create_task(button_press(10, pigpio.EITHER_EDGE)) - global PTT_IS_ON - task_created = False + # TODO change after figuring out the logic + asyncio.create_task(modulation_change(11, pigpio.EITHER_EDGE)) + task_created = False + print("Ready") while True: if (PTT_IS_ON and not task_created): - asyncio.create_task(run_command(modulations[mod], str(freq))) + asyncio.create_task(run_command(MODULATION, str(freq))) task_created = True elif (task_created and not PTT_IS_ON): await asyncio.sleep(1) @@ -46,8 +62,9 @@ async def main(mod, freq:float): task_created = False await asyncio.sleep(.5) + if __name__ == "__main__": try: - asyncio.run(main("fmrds", 430)) + asyncio.run(main("", 430)) except KeyboardInterrupt: print("\n")