import asyncio import asyncpio from button import button from decoder import decoder from display import display def wheel_handler(dir): print(f"wheel: {dir}") loop = asyncio.get_event_loop() loop.create_task(disp.write(1, f"wheel: {dir}")) def button_test(*args): print(args) loop = asyncio.get_event_loop() loop.create_task(disp.write(2, args)) async def tcpu_monitor(): loop = asyncio.get_event_loop() while True: with open("/sys/class/thermal/thermal_zone0/temp") as temp: loop.create_task(disp.write(3, f"{int(temp.read())/1000:4.1f}{chr(0b11011111)}C", 14)) await asyncio.sleep(1) async def main(): pi = asyncpio.pi() dec = decoder(pi, 27, 17, wheel_handler) b1 = button(pi, 23, button_test) b2 = button(pi, 24, button_test) await pi.connect() await dec.start() await b1.start() await b2.start() if __name__ == "__main__": disp = display() loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) loop.create_task(main()) loop.create_task(tcpu_monitor()) loop.run_forever()