Извините за ошибку идентификации. У меня ошибка с read_thread.
Мое приложение, когда я запускаю свое устройство, оно начинает читать RFID-карту. Когда я кладу карту в устройство чтения, она мигает зеленым светодиодом и говорит соответственно, а когда я вынимаю карту, она мигает красным светодиодом и говорит соответственно.
Моя проблема в том, что когда я кладу карточку для чтения, она мигает зеленым светом, но через 2-3 секунды она автоматически мигает КРАСНЫМ цветом и не начинает читать снова.
Я хочу, чтобы он работал так, как при запуске он должен прочитать карту, а при установке должен загореться зеленым светодиодом и должен мигать красным после того, как я вытащил карту из устройства чтения. и снова должно начаться чтение карты. Но мне не кажется Почему это не работает?
class Rfid(MycroftSkill):
def __init__(self):
MycroftSkill.__init__(self)
self.stopped = False
self.status = False
self.thread = Thread(target=self.read_thread)
self.thread.daemon = True
self.thread.start()
self.stop = True
self.stop1 = False
def read_thread(self):
while not self.stopped:
self.id, self.text = reader.read_no_block()
if self.text is not None:
self.status = True
if self.stop == True:
self.confirm()
self.stop = False
elif self.text is None:
if self.status == True:
if self.stop1 == False:
self.unconfirm()
self.stop1 = True
def confirm(self):
GPIO.output(GREEN,GPIO.HIGH)
GPIO.output(RED,GPIO.LOW)
response = {'text': self.text}
self.speak_dialog("to.hello.say", data=response)
time.sleep(2)
def unconfirm(self):
GPIO.output(RED,GPIO.HIGH)
GPIO.output(GREEN,GPIO.LOW)
self.speak_dialog("to.bye.say")
time.sleep(2)
def shutdown(self):
self.stopped = True