def simulate_scan(self): """Simulate OV card scan by entering the serial key""" user = User(self.scan_simulation.get()) if user.is_registered(): self.frame.pack_forget() InfoScreen(self.master, user) else: self.frame.pack_forget() RegisterScreen(self.master, user.get_ov())
def scan(self, static_ov=None): """Scan OV card with RFID-RC522 chip""" global ov_read if static_ov: ov = static_ov user = User(ov) ov_read = False if user.is_registered(): self.frame.pack_forget() InfoScreen(self.master, user) else: self.frame.pack_forget() RegisterScreen(self.master, user.get_ov()) else: reader = MFRC522() # Hook the SIGINT, Scan for cards signal.signal(signal.SIGINT, self.end_read) reader.MFRC522_Request(reader.PICC_REQIDL) # Get the UID of the card (status, uid) = reader.MFRC522_Anticoll() # If we have the UID, continue if status == reader.MI_OK: ov = '{}:{}:{}:{}'.format(uid[0], uid[1], uid[2], uid[3]) user = User(ov) ov_read = False if user.is_registered(): self.frame.pack_forget() InfoScreen(self.master, user) else: self.frame.pack_forget() RegisterScreen(self.master, user.get_ov()) else: self.master.after(200, self.scan)