def begin(): # Tries to initialize the sensor global Finger try: # pulled up to avoid false detection. # So we'll be setting up falling edge detection GPIO.setmode(GPIO.BCM) GPIO.setup(TOUCH_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) Finger = PyFingerprint(FINGER_PORT, FINGER_BAUDRATE, FINGER_ADDRESS, FINGER_PASSWORD) if not Finger.verifyPassword(): raise ValueError('Password for the Fingerprint module is wrong!') # Gets some sensor information print('Fingerprint used templates: ' + str(Finger.getTemplateCount()) + '/' + str(Finger.getStorageCapacity())) return True except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) return False
def verify_test(): try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) time.sleep(0.1) try: while ( f.readImage() == False ): pass f.convertImage(0x01) result = f.searchTemplate() ## Searchs template positionNumber = result[0] accuracyScore = result[1] temp = positionNumber if ( positionNumber == -1 ): print('No match found! Try again') time.sleep(0.5) #login() else: print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) #return 0 except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1) if ( positionNumber == -1 ): print('No match found! Try again....') time.sleep(0.5) verify_test() #else: return positionNumber
def init_sensor(): try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) used = f.getTemplateCount() #0,1,2,3 = 4 print('Currently used templates: ' + str(used) + '/' + str(f.getStorageCapacity())) if (used > 0): del_me(used, f) else: print("Nothing to be deleted in module!")
def display(): ## Reads image and download it ## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to read image and download it try: print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass print('Downloading image (this take a while)...') imageDestination = tempfile.gettempdir() + '/fingerprint.bmp' f.downloadImage(imageDestination) print('The image was saved to "' + imageDestination + '".') print('Displaying fingerprint:') os.system('eog /tmp/fingerprint.bmp') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def delete(self): try: f = PyFingerprint(self.com, self.port, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to delete the template of the finger try: positionNumber = input( 'Please enter the template position you want to delete: ') positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): with open('./data_log.csv', 'r') as inp, open('./data_log_edit.csv', 'w') as out: writer = csv.writer(out) rows = csv.DictReader(inp) writer.writerows([['positionnumber'] + ['empolynumber']]) for row in rows: if row['positionnumber'] != str(positionNumber): writer.writerow( [row['positionnumber'], row['empolynumber']]) os.rename('./data_log_edit.csv', './data_log.csv') print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def enroll(): print('start enroll') port = config.figerScanPort f = PyFingerprint(port, 57600, 0xFFFFFFFF, 0x00000000) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to enroll new finger try: print('Waiting for finger...') ## Wait that finger is read while ( f.readImage() == False ): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if ( positionNumber >= 0 ): print('Template already exists at position #' + str(positionNumber)) return -1 f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() print('Finger enrolled successfully!') print('New template position #' + str(positionNumber)) return positionNumber except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) return -2
def delete(self, uid): ## Deletes a finger from sensor ## employee = Employee() ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to delete the template of the finger finger_ids = employee.utof(uid) if finger_ids != -1: for finger_id in finger_ids: try: if ( f.deleteTemplate(finger_id) == True ): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) print(traceback.format_exc()) exit(1) employee.remove_fingerprint(uid) else: print('invalid finger id list')
def search(): ## Tries to initialize the sensor f = PyFingerprint('COM6', 57600, 0xFFFFFFFF, 0x00000000) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to search the finger and calculate hash print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(FINGERPRINT_CHARBUFFER1) ## Searchs template result = f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] if (positionNumber == -1): print('No match found!') exit(0) else: print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) f = open('profiles/' + str(positionNumber) + '.txt', 'r', encoding='UTF8') for line in f: print(line, end='') f.close()
def index(): ## Shows the template index table ## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently stored templates: ' + str(f.getTemplateCount())) ## Tries to show a template index table page try: page = raw_input( 'Please enter the index page (0, 1, 2, 3) you want to see: ') page = int(page) tableIndex = f.getTemplateIndex(page) for i in range(0, len(tableIndex)): print('Template at position #' + str(i) + ' is used: ' + str(tableIndex[i])) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently stored templates: ' + str(f.getTemplateCount())) ## Tries to read image and download it try: print('Waiting for finger...') ## Wait that finger is read while ( f.readImage() == False ): pass print('Downloading image (this take a while)...') imageDestination = tempfile.gettempdir() + '/fingerprint.bmp' f.downloadImage(imageDestination) print('The image was saved to "' + imageDestination + '".')
print('Operation failed!') print('Exception message: ' + str(e)) return def clear_FDB(): clearDB = yesno("HEY!!!", "Are you sure?") if clearDB == True: clear() info("HEY!!", "Operation was successful") else: info("NOTE!!", "Going back to main window ") delete_menu_window.hide() app.show() clear_FDB_btn = PushButton(delete_menu_window, text="Clear FDB", command=clear_FDB) clearDB_text = Text (delete_menu_window, text='Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) #delete menu window ends #enroll window starts def enroll(): ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) enroll_status_text1.value = 'Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity()) ## Tries to enroll new finger try: print('Waiting for finger...') enroll_status_text2.value = 'Waiting for finger...' ## Wait that finger is read while ( f.readImage() == False ): pass
clearDB = yesno("HEY!!!", "Are you sure?") if clearDB == True: clear() info("HEY!!", "Operation was successful") else: info("NOTE!!", "Going back to main window ") delete_menu_window.hide() app.show() clear_FDB_btn = PushButton(delete_menu_window, text="Clear FDB", command=clear_FDB) clearDB_text = Text(delete_menu_window, text='Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) #delete menu window ends #enroll window starts def enroll(): ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) enroll_status_text1.value = 'Currently used templates: ' + str( f.getTemplateCount()) + '/' + str(f.getStorageCapacity()) ## Tries to enroll new finger try: print('Waiting for finger...')
def RegisterFinger(): continue_reading = True try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to enroll new finger try: Pinlbl = Label(top, text="Waiting for finger...", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] print(positionNumber) if (positionNumber >= 0): print('Template already exists at position #' + str(positionNumber)) continue_reading = False Pinlbl = Label(top, text="Remove Finger...", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print('Remove finger...') time.sleep(2) Pinlbl = Label(top, text="Waiting Same Finger Again...", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print('Waiting for same finger again...') ## Wait that finger is read again while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 f.convertImage(0x02) ## Compares the charbuffers if (f.compareCharacteristics() == 0): Pinlbl = Label(top, text="Fingers do not match", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') raise Exception('Fingers do not match') continue_reading = False ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() Pinlbl = Label(top, text="Finger enrolled successfully!", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print('Finger enrolled successfully!') print(positionNumber) print('New template position #' + str(positionNumber)) Pinlbl = Label(top, text="Input Your ID", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') ID = pinin.get() userID = ''.join(str(e) for e in ID) print("ID Number: ", userID) lockstatus = SendtoServer("/add/fingerprint/1", 1, 2, { 'FingerPrint': str(positionNumber), 'UserID': userID }) if lockstatus['status'] == 0: pinlbl = Label(top, text="Input Data Failed", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print("Tambah Data Gagal") else: Pinlbl = Label(top, text="Input Data Succes", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print("Tambah Data Berhasil") continue_reading = False except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) continue_reading = False
def Finger(): continue_reading = True try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') Pinlbl = Label(top2, text="Finger Not Deteted", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print('Exception message: ' + str(e)) continue_reading = False ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to search the finger and calculate hash try: print('Waiting for finger...') Pinlbl = Label(top2, text="Waiting For Finger", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Searchs template result = f.searchTemplate() print(result) positionNumber = result[0] accuracyScore = result[1] lockstatus = SendtoServer("/scan/fingerprint/1", 1, 2, {'FingerPrint': str(positionNumber)}) print(lockstatus) if lockstatus['status'] == 3: Pinlbl = Label(top2, text="Access Danied", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') print("Access Denied, YOU SHALL NOT PASS!") print(positionNumber) continue_reading = False else: print("Access Granted") Pinlbl = Label(top2, text="Access Granted", font=myfont, width=16) Pinlbl.grid(row=0, column=3) Pinlbl.configure(bg='#ff7700') GPIO.output(Relay, GPIO.HIGH) #Turn on Relay time.sleep(5) #Wait 5 Seconds GPIO.output(Relay, GPIO.LOW) #Turn off Relay continue_reading = False ## Loads the found template to charbuffer 1 f.loadTemplate(positionNumber, 0x01) ## Downloads the characteristics of template loaded in charbuffer 1 characterics = str( f.downloadCharacteristics(0x01)).encode('utf-8') ## Hashes characteristics of template print('SHA-2 hash of template: ' + hashlib.sha256(characterics).hexdigest()) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) continue_reading = False
## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to enroll new finger try: print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate()
def predict(self): try: f = PyFingerprint(self.com, self.port, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to search the finger and calculate hash try: print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Searchs template result = f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] if (positionNumber == -1): print('No match found!') exit(0) else: with open('./data_log.csv', 'r') as file: self.rows = csv.DictReader(file) for row in self.rows: if row['positionnumber'] == str(positionNumber): print('Name :', row['empolynumber']) #print('\nName : ', self.data_empoly[positionNumber]) #print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) ## OPTIONAL stuff ## ## Loads the found template to charbuffer 1 f.loadTemplate(positionNumber, 0x01) ## Downloads the characteristics of template loaded in charbuffer 1 characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8') ## Hashes characteristics of template #print('SHA-2 hash of template: ' + hashlib.sha256(characterics).hexdigest()) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def enroll_finger(): try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to enroll new finger try: print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): print('Template already exists at position #' + str(positionNumber)) exit(0) print('Remove finger...') time.sleep(2) print('Waiting for same finger again...') ## Wait that finger is read again while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 f.convertImage(0x02) ## Compares the charbuffers if (f.compareCharacteristics() == 0): raise Exception('Fingers do not match') ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() print('Finger enrolled successfully!') print('New template position #' + str(positionNumber)) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def fprint(): ## Search for a finger## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to search the finger and calculate hash try: print('Waiting for finger...') ## Wait that finger is read while ( f.readImage() == False ): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Searchs template result = f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] if ( positionNumber == -1 ): print('No match found!') else: print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) return True '''if(s_mode==0): s_mode=1 DC=1./18.*(120)+2 pwm.ChangeDutyCycle(DC) else: s_mode=0 DC=1./18.*(60)+2 pwm.ChangeDutyCycle(DC)''' ## OPTIONAL stuff ## ## Loads the found template to charbuffer 1 f.loadTemplate(positionNumber, 0x01) ## Downloads the characteristics of template loaded in charbuffer 1 characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8') ## Hashes characteristics of template print('SHA-2 hash of template: ' + hashlib.sha256(characterics).hexdigest()) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e))
def read(self): outlog = '' ## Search for a finger ## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) outlog += ('\nThe fingerprint sensor could not be initialized!' + 'Exception message: ' + str(e)) return ('init_error', outlog) #exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) outlog += ('\nCurrently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to search the finger and calculate hash try: print('Waiting for finger...') outlog += '\nWaiting for finger...' ## Wait that finger is read tic = time.clock() toc = time.clock() while ( f.readImage() == False and (toc - tic < 0.1)): toc = time.clock() try: ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) except: print('error converting image') outlog += '\nerror converting image' return ('convert_error', outlog) try: ## Search template result = f.searchTemplate() positionNumber = int(result[0]) accuracyScore = int(result[1]) except: print('could not find template') outlog += '\ncould not find template' return ('find_error', outlog) if ( positionNumber == -1 ): print('No match found!') outlog += '\nNo match found!' return ('no_match', outlog) #exit(0) else: print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) outlog += ('\nFound template at position #' + str(positionNumber) + '\nThe accuracy score is: ' + str(accuracyScore)) except: print('error reading finger') outlog += '\nerror reading finger' return ('reading_error', outlog) #delete excess fingerprints #self.delete_extra() return (positionNumber, outlog)
## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyS0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to show a template index table page try: page = input('Please enter the index page (0, 1, 2, 3) you want to see: ') page = int(page) tableIndex = f.getTemplateIndex(page) for i in range(0, len(tableIndex)): print('Template at position #' + str(i) + ' is used: ' + str(tableIndex[i])) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def enroll(self): outlog = '' ## Enrolls new finger ## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) outlog += ('\nThe fingerprint sensor could not be initialized!\n'+ 'Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) outlog += ('\nCurrently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to enroll new finger try: print('Waiting for finger...') outlog += '\nWaiting for finger...' scanned = False ## Wait that finger is read tic = time.clock() toc = time.clock() while ( f.readImage() == False and (toc - tic < 0.1)): toc = time.clock() scanned = f.readImage() ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if ( positionNumber >= 0 ): print('Template already exists at position #' + str(positionNumber)) outlog += '\nTemplate already exists at position #' + str(positionNumber) return (self.read()[0], outlog) print('Remove finger...') outlog += '\nRemove finger...' time.sleep(2) print('Waiting for same finger again...') outlog += '\nWaiting for same finger again...' ## Wait that finger is read again tic = time.clock() toc = time.clock() while ( f.readImage() == False and (toc - tic < 0.1)): toc = time.clock() scanned = f.readImage() if not scanned: print('not scanned') return -1 ## Converts read image to characteristics and stores it in charbuffer 2 f.convertImage(0x02) ## Compares the charbuffers if ( f.compareCharacteristics() == 0 ): outlog += '\nFingers do not match' raise Exception('Fingers do not match') ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() print('Finger enrolled successfully!') outlog += '\nFinger enrolled successfully!' print('New template position #' + str(positionNumber)) outlog += '\nNew template position #' + str(positionNumber) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) outlog += ('\nException message: ' + str(e)) return (-1, outlog) #time.sleep(1) #exit(1) return (positionNumber, outlog)
def search(): try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): GPIO.output(BLUE, 1) sleep(1) GPIO.output(BLUE, 0) raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: GPIO.output(BLUE, 1) sleep(1) GPIO.output(BLUE, 0) print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to search the finger and calculate hash try: print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass print('Downloading image (this take a while)...') if (os.path.isfile('/home/pi/webapp/static/fingerprint.bmp')): os.remove('/home/pi/webapp/static/fingerprint.bmp') imageDestination = '/home/pi/webapp/static/fingerprint.bmp' f.downloadImage(imageDestination) print('The image was saved to "' + imageDestination + '".') ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Searchs template result = f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] if (positionNumber == -1): GPIO.output(RED, 1) sleep(1) GPIO.output(RED, 0) print('No match found!') return 0 else: GPIO.output(GREEN, 1) sleep(1) GPIO.output(GREEN, 0) print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) ## OPTIONAL stuff ## ## Loads the found template to charbuffer 1 f.loadTemplate(positionNumber, 0x01) ## Downloads the characteristics of template loaded in charbuffer 1 characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8') ## Hashes characteristics of template print('SHA-2 hash of template: ' + hashlib.sha256(characterics).hexdigest()) return 1 except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
#f = PyFingerprint('COM10', 57600, 0xFFFFFFFF, 0x00000000) ## Debian f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError( "Mot de passe du capteur d'empreinte digitale incorrect") except Exception as e: print("Impossible d'initialiser le capteur d'empreinte digitale") print("Message d'erreur : " + str(e)) exit(1) ## Affiche les données sur le capteur print("Bienvenue sur le module de recherche d'empreinte digitale") print("Emplacements utilisés dans le capteur: " + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Lit et exporte au format .bmp l'empreinte digitale try: print("Présentez le doigt... \n") ## Attendre que le lecteur lise le doigt while (f.readImage() == False): pass ## Convertis l'image lue en caractéristiques et la stocke en charbuffer 1 f.convertImage(0x01) ## Recherche les caractéristiques de l'image dans le capteur result = f.searchTemplate()
## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently stored templates: ' + str(f.getTemplateCount())) ## Tries to enroll new finger try: print('Waiting for finger...') ## Wait that finger is read while ( f.readImage() == False ): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0]
def added(self): print('success') try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to enroll new finger try: print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): print('Template already exists at position #' + str(positionNumber)) print('Remove finger...') print('Waiting for same finger again...') ## Wait that finger is read again while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 f.convertImage(0x02) ## Compares the charbuffers if (f.compareCharacteristics() == 0): raise Exception('Fingers do not match') ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() print('Finger enrolled successfully!') print('New template position #' + str(positionNumber)) df = pd.read_csv('hostel.csv') roll = self.nameEdit_2.text() yop = self.yearedit.text() x = df.shape[0] df.set_value(x, 'Name', str(roll)) df.set_value(x, 'fingerid', str(positionNumber)) df.set_value(x, 'YoP', str(yop)) df.to_csv('hostel.csv', encoding="utf-8", index=False) print('success') self.yearedit.setText("") self.nameEdit_2.setText("") self.rolledit.setText("") except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) self.addcheck()
else: lcd.lcd_clear() lcd.lcd_display_string('Correct!', 1, 4) lcd.lcd_display_string( 'accuracy: ' + str(accuracyScore), 2, 2) time.sleep(3) except Exception as e: lcd.lcd_clear() lcd.lcd_display_string('Error Occur!', 1, 2) print('Exception message' + str(e)) exit(1) print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) try: lcd.lcd_clear() lcd.lcd_display_string('Enter index:', 1, 2) positionNumber = input( 'Please enter the template position you want to delete: ' ) positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): print('Template deleted!') lcd.lcd_clear() lcd.lcd_display_string('Deleted!', 1, 4) time.sleep(3)
class Fingerprint: _shed_Job: Union[schedule.Job, None] = None _sensor: Sensor _plugin_manager: PluginManager err_str: str = "OK" _access_check: Union[threading.Thread, None] = None _access_check_stop: bool wakupPin: Union[Pin.Pin, None] currentFinger: BinarySensor currentError: BinarySensor level1: Switch level2: Switch level3: Switch def __init__(self, client: mclient.Client, opts: conf.BasicConfig, logger: logging.Logger, device_id: str): from gpiozero.pins.native import NativeFactory from gpiozero import Device Device.pin_factory = NativeFactory() self._config = conf.PluginConfig(opts, PluginLoader.getConfigKey()) self.__client = client self.__logger = logger.getChild("Fingerprint") self._finger = PyFingerprint( self._config["serial"], 57600, 0xFFFFFFFF, self._config.get("password", 0x00000000) ) if not self._finger.verifyPassword(): self.err_str = "PASSWD" if self._config.get("WAKEUP", 0) is not 0: self.wakupPin = Pin.Pin(pin=self._config.get("WAKEUP", 0), direction=Pin.PinDirection.IN_PULL_LOW) self.wakupPin.set_detect(self.wakeup, Pin.PinEventEdge.BOTH) else: self.wakeup(None, threadsleep=False) def register(self): t = ad.Topics.get_std_devInf() self.currentFinger = BinarySensor( self.__logger, self._plugin_manager, self._config["name"], binary_sensor_type=ad.BinarySensorDeviceClasses.PRESENCE, value_template="{{ value_json.dedected }}", json_attributes=True, icon="mdi:fingerprint" ) self.currentFinger.register() self.currentFinger.turn( { "dedected": False, "fingerID": -1, "confidency": 0, "hash": None } ) self.currentError = BinarySensor( self.__logger, self._plugin_manager, "{} Error".format(self._config["name"]), ad.BinarySensorDeviceClasses.PROBLEM, json_attributes=True, value_template="{{ value_json.is_error }}" ) self.currentError.register() self.update_error_sensor() self.level1 = Switch( self.__logger, self._plugin_manager, self.level1_callback, "{} Level1".format(self._config["name"]), icon="mdi:shield-lock" ) self.level1.register() self.level1.turn(self._config.get("allow_level1", False)) self.level2 = Switch( self.__logger, self._plugin_manager, self.level2_callback, "{} Level2".format(self._config["name"]), icon="mdi:shield-lock" ) self.level2.register() self.level2.turn(self._config.get("allow_level2", False)) self.level3 = Switch( self.__logger, self._plugin_manager, self.level3_callback, "{} Level3".format(self._config["name"]), icon="mdi:shield-lock" ) self.level3.register() self.level3.turn(self._config.get("allow_level3", False)) def level1_callback(self, message:str, state_requested=False): self._config["allow_level1"] = True if message == "ON" else False self.send_update() def level2_callback(self, message:str, state_requested=False): self._config["allow_level2"] = True if message == "ON" else False self.send_update() def level3_callback(self, message:str, state_requested=False): self._config["allow_level3"] = True if message == "ON" else False self.send_update() def update_error_sensor(self): try: self.currentFinger.turn( { "is_error": self.err_str != "OK", "msg": self.err_str } ) except:pass def set_pluginManager(self, pm): self._plugin_manager = pm def stop(self): pass def sendStates(self): self.send_update(True) def send_update(self, force=False): # Send Error Messeges self.update_error_sensor() # if resend requested, null fingerprint if force: self.currentFinger.turn( { "dedected": False, "fingerID": -1, "confidency": 0, "hash": None } ) # Update the Authorisation Levels to Home Assistant self.level1.turn(self._config.get("allow_level1", False)) self.level2.turn(self._config.get("allow_level2", False)) self.level3.turn(self._config.get("allow_level3", False)) def access_thread(self): while not self._access_check_stop: try: img = self._finger.readImage() if not img: sleep(0.1) continue self._finger.convertImage(FINGERPRINT_CHARBUFFER1) res = self._finger.searchTemplate() optional = {} # Extra Exception handling, because this stuff is optional try: if res[0] > -1: self._finger.loadTemplate(res[0], FINGERPRINT_CHARBUFFER1) characterics = str(self._finger.downloadCharacteristics(FINGERPRINT_CHARBUFFER1)).encode('utf-8') optional = { "sha256": hashlib.sha256(characterics).hexdigest(), "capacity": self._finger.getStorageCapacity(), "stored": self._finger.getTemplateCount(), "security": self._finger.getSecurityLevel() } except Exception as e: self.err_str = str(e) self.update_error_sensor() #Tell homeassistant about the new fingerprint required = { "dedected": res[0] > -1, "fingerID": res[0], "confidency": res[1], "hash": hex } required.update(optional) self.currentFinger.turn( required ) #Wait some time sleep( 5.0 if res[0] > -1 else 0.25 ) #Clear the fingerprint message self.currentFinger.turn( { "dedected": False, "fingerID": -1, "confidency": 0, "hash": None } ) except Exception as e: self.__logger.exception("access_thread()") self.err_str = str(e) self.update_error_sensor() def stop_access_thread(self): self._access_check_stop = True if self._access_check is not None: self._access_check.join() self._access_check = None if self._shed_Job is not None: schedule.cancel_job(self._shed_Job) self._shed_Job = None def wakeup(self, device, threadsleep:bool=True): if self._access_check is not None and self._access_check.is_alive(): return if self._shed_Job is not None: schedule.cancel_job(self._shed_Job) if threadsleep: job = schedule.every(self._config.get("WAKEUP_active_secs", 120)).seconds job.do(self.stop_access_thread) self._shed_Job = job self._access_check_stop = False self._access_check = threading.Thread(target=self.access_thread, name="FingerAccess", daemon=False) self._access_check.start()
def finger(): try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to enroll new finger while 1: disp.clear() disp.display() draw.rectangle((0, 0, width, height), outline=0, fill=0) draw.text((x, top), 'Welcome to Enroll', font=font, fill=255) draw.text((x, top + 16), 'Waiting for finger...', font=font, fill=255) print('Waiting for finger...') disp.image(image) disp.display() time.sleep(.1) ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): disp.clear() disp.display() draw.rectangle((0, 0, width, height), outline=0, fill=0) draw.text((x, top + 16), 'Finger already exists', font=font, fill=255) disp.image(image) disp.display() time.sleep(1) os.system("python password.py") print('Template already exists at position #' + str(positionNumber)) # disp.clear() # disp.display() # draw.rectangle((0,0,width,height), outline=0, fill=0) # draw.text((x, top + 16), 'Remove finger' , font=font, fill=255) # disp.image(image) # disp.display() # time.sleep(.1) # print('Remove finger...') # time.sleep(2) # disp.clear() # disp.display() # draw.rectangle((0,0,width,height), outline=0, fill=0) # draw.text((x, top + 16), 'Waiting for same' , font=font, fill=255) # draw.text((x, top + 24), 'finger again' , font=font, fill=255) # disp.image(image) # disp.display() # print('Waiting for same finger again...') # time.sleep(.1) ## Wait that finger is read again # while ( f.readImage() == False ): # pass # ## Converts read image to characteristics and stores it in charbuffer 2 # f.convertImage(0x02) # ## Compares the charbuffers # if ( f.compareCharacteristics() == 0 ): # disp.clear() # disp.display() # draw.rectangle((0,0,width,height), outline=0, fill=0) # draw.text((x, top + 16), 'Fingers do not match' , font=font, fill=255) # disp.image(image) # disp.display() # time.sleep(2) # disp.clear() # disp.display() # draw.rectangle((0,0,width,height), outline=0, fill=0) # os.system("python enroll_trial.py") ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() print('tihis is code ', code) sql_enroll(code, positionNumber) # print("Wrong Input") disp.clear() disp.display() draw.rectangle((0, 0, width, height), outline=0, fill=0) draw.text((x, top), 'Employee Number:', font=font, fill=255) draw.text((x, top + 8), code, font=font, fill=255) draw.text((x, top + 16), 'Employee add suceess', font=font, fill=255) disp.image(image) disp.display() GPIO.cleanup() time.sleep(2) os.system("python password.py")
def enroll(): ## Tries to initialize the sensor f = PyFingerprint('COM6', 57600, 0xFFFFFFFF, 0x00000000) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(FINGERPRINT_CHARBUFFER1) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): print('Template already exists at position #' + str(positionNumber)) exit(0) print('Remove finger...') time.sleep(2) print('Waiting for same finger again...') ## Wait that finger is read again while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 f.convertImage(FINGERPRINT_CHARBUFFER2) ## Compares the charbuffers if (f.compareCharacteristics() == 0): raise Exception('Fingers do not match') ## print("Nhập thông tin:") StudenID = input("StudentID: ") Name = input("Name: ") Class = input("Class: ") School = input("School: ") Faculty = input("Faculty: ") Room = input("Room: ") Phone = input("Phone: ") Email = input("Email: ") file = open('profiles/2.txt', 'w', encoding='UTF8') file.writelines("StudentID: " + StudenID + "\nName: " + Name + "\nClass: " + Class + "\nSchool: " + School + "\nFaculty: " + Faculty + "\nRoom: " + Room + "\nPhone: " + Phone + "\nEmail: " + Email) file.close() ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() print('Finger enrolled successfully!') print('New template position #' + str(positionNumber))
def fingerprintdemo(): global start start = time.time() print(start) ## Search for a finger ## ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to search the finger and calculate hash try: print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): if (time.time() > start + PERIOD_OF_TIME): morewaiting() start = time.time() print(start) else: pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Searchs template result = f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] global repeataccess if (positionNumber == -1): print('No match found!') exit(0) repeataccess = 0 else: print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) repeataccess = 1 ## OPTIONAL stuff ## ## Loads the found template to charbuffer 1 f.loadTemplate(positionNumber, 0x01) ## Downloads the characteristics of template loaded in charbuffer 1 characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8') ## Hashes characteristics of template print('SHA-2 hash of template: ' + hashlib.sha256(characterics).hexdigest()) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def enroll(self): try: f = PyFingerprint(self.com, self.port, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to enroll new finger try: empoly_number = input( '\n[SET]Please input the Employee No , (ex.48628) = ') if len(empoly_number) == 0: raise Exception('Empoly number error') print('[INFO]Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): print('Template already exists #' + str(empoly_number)) exit(0) print('Remove finger...') time.sleep(2) print('[INFO]Waiting for same finger again...') ## Wait that finger is read again while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 f.convertImage(0x02) ## Compares the charbuffers if (f.compareCharacteristics() == 0): raise Exception('Fingers do not match') ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() cw = open("./data_log.csv", 'a+') cw.write(str(positionNumber) + "," + str(empoly_number) + "\n") print('[OK]Finger enrolled successfully!') print('[OK]New template position #' + str(empoly_number)) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def run(): ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to enroll new finger try: msg = messagebox.showinfo("Enroll", "Press OK when Finger Ready") print('Waiting for finger...') ## Wait that finger is read while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 f.convertImage(0x01) ## Checks if finger is already enrolled result = f.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): print('Template already exists at position #' + str(positionNumber)) exit(0) print('Remove finger...') time.sleep(1) msg = messagebox.showinfo("Enroll", "Press OK when Finger Ready") print('Waiting for same finger again...') ## Wait that finger is read again while (f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 f.convertImage(0x02) ## Compares the charbuffers if (f.compareCharacteristics() == 0): raise Exception('Fingers do not match') run() ## Creates a template f.createTemplate() ## Saves template at new position number positionNumber = f.storeTemplate() #print(positionNumber) idnum = positionNumber print('Finger enrolled successfully!') print('New template position #' + str(positionNumber)) idnum = positionNumber #template = result[0] firstname = input("Enter your first name: ") lastname = input("Enter your last name: ") c.execute("INSERT INTO students VALUES(?, ?, ?, ?, ?, ?);", (idnum, firstname, lastname, 'NULL', 'NULL', 'NULL')) conn.commit() #conn.close() f = open("idtemplate.txt", "w") f.write(str(idnum)) f.close #exit(1) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1) #run() #top.mainloop()
## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: print('The fingerprint sensor could not be initialized!') mylcd.lcd_clear() mylcd.lcd_display_string('Unable to initialize!') print('Exception message: ' + str(e)) exit(1) ## Gets some sensor information template_count = f.getTemplateCount() storage_capacity = f.getStorageCapacity() print('Currently used templates: ' + str(template_count) +'/'+ str(storage_capacity)) mylcd.lcd_clear() mylcd.lcd_display_string('Used: ' + str(template_count) +'/'+ str(storage_capacity)) ## Tries to show a template index table page try: page = input('Please enter the index page (0, 1, 2, 3) you want to see: ') page = int(page) tableIndex = f.getTemplateIndex(page) for i in range(0, len(tableIndex)): print('Template at position :' + str(i) + ' is used: ' + str(tableIndex[i]))