I'm using this MFRC522 UART library in python This While reading if the module gets reset it stops reading doesn't print anything. This is read.py which is calling the external class MFRC522.py
#!/usr/bin/env python
# -*- coding: utf8 -*-
import MFRC522
import signal
import threading
continue_reading = True
SECTORS_TOREAD = 8
sector_now = 0
# Capture SIGINT for cleanup when the script is aborted
def end_read(signal,frame):
global continue_reading
print "Ctrl+C captured, ending read."
continue_reading = False
exit()
# Hook the SIGINT
signal.signal(signal.SIGINT, end_read)
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
# Welcome message
print "Welcome to the MFRC522 data read example"
print "Press Ctrl-C to stop."
def rfid_check():
# This loop keeps checking for chips. If one is near it will get the UID and authenticate
while continue_reading:
try:
# Scan for cards
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQA)
# Get the UID of the card
(status,uid) = MIFAREReader.MFRC522_Anticoll()
# If we have the UID, continue
if status == MIFAREReader.MI_OK:
# Print UID
print "Card read UID: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3])
except:
print("HANDLING EXCEPTION")
threading.Thread(target=rfid_check).start
and I don't know how to handle if my rfid_check function if it gets stuck while calling the external MFRC522 class Does anyone have any suggestions?
I have tried timeout but it didn't work for me