예제 #1
0
    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())
예제 #2
0
    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)