from time import sleep import RPi.GPIO as GPIO from mfrc522 import SimpleMFRC522 import asyncio import sys sys.path.append('..') import TREx.config as config from TREx.indication_driver import IndicationDriver from TREx.rfid_driver import RFIDDriver async def __main__(): rfid_driver = RFIDDriver() indication_driver = IndicationDriver() indication_task = None while True: id = await rfid_driver.get_next_id() trash_category = None try: if indication_task is not None: indication_driver.stop_loop() await indication_task trash_category = config.RFID_LOOKUP_TABLE[id] indication_task = asyncio.create_task(indication_driver.indicate_async(trash_category)) await asyncio.sleep(1) except KeyError: indication_driver.stop_loop() asyncio.run(__main__()) # while True: # id, _ = reader.read() # if id in config.RFID_LOOKUP_TABLE.keys(): # trash_category = config.RFID_LOOKUP_TABLE[id] # print(f"{id}: {trash_category}") # indication_driver.indicate(trash_category) # else: # print(id) # sleep(1) # GPIO.cleanup()