41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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() |