40 lines
No EOL
1.1 KiB
Python
40 lines
No EOL
1.1 KiB
Python
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(2, f"{int(temp.read())/1000:4.1f}{chr(0b11011111)}C"))
|
|
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() |