def fingerprintGrab(ref, bucketLoc, universalLoc): 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())) link = universalLoc + 'biom' ## Tries to search the finger and calculate hash try: f.deleteTemplate(0) char = ref.get(link, '') f.uploadCharacteristics(0x02, char) f.createTemplate() positionNumber = f.storeTemplate() auth, scan = checkAuth() return (auth, scan) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def delete(): from pyfingerprint.pyfingerprint import PyFingerprint ## Deletes a finger from sensor ## ## 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 delete the template of the finger try: positionNumber = raw_input( 'Please enter the template position you want to delete: ') positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def delete(position_number): ## Tries to initialize the sensor try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if not f.verifyPassword(): print('The given fingerprint sensor password is wrong!') return False except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) return False ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to delete the template of the finger try: position_number = int(position_number) if not f.deleteTemplate(position_number): return False else: return True except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) return False
def delete(self, finger_id): ## 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 if finger_id != -1: try: if (f.deleteTemplate(finger_id) == True): employee.remove_fingerprint(employee.ftou(finger_id)) print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) print(traceback.format_exc()) exit(1)
def del1(positionNumber): 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 try: positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def btXoaVanTay_click(self): dialogKey = Ui_Keyboard() value = dialogKey.exec_() if (value == uart.dtMK or value == uart.dtMKHard): ## Tries to initialize the sensor try: f = PyFingerprint(self.USB, 57600, 0xFFFFFFFF, 0x00000000) if ( f.verifyPassword() == False ): raise ValueError('The given fingerprint sensor password is wrong!') except Exception as e: self.lbThongBao.setText("Lỗi kết nối cảm biến vân tay!") return ## Gets some sensor information #print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to delete the template of the finger numVantay = int(f.getTemplateCount()) while numVantay > 0: try: if ( f.deleteTemplate(numVantay-1) == True ): print('Template deleted!', numVantay) except Exception as e: self.lbThongBao.setText("Xóa vân tay có lỗi!") return numVantay -= 1 self.lbThongBao.setText("Xóa hết vân tay thành công!")
def delete_worker(self): 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 try: positionNumber = int(self.controller.template_number) if (f.deleteTemplate(positionNumber) == True): self.controller.create_info_frame('Fingerprint Deleted') self.controller.remove_from_DB() self.controller.restore_initial_frame_from_delete() print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def deleteFingerprints(self, deletePosition): try: f = PyFingerprint('/dev/ttyUSB1', 57600, 0xFFFFFFFF, 0x00000000) for x in range(f.getTemplateCount()): # f.deleteTemplate(int(x-1)) if (f.deleteTemplate(x) == True): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) pass
def delete(positionNumber): port = config.figerScanPort f = PyFingerprint(port, 57600, 0xFFFFFFFF, 0x00000000) try: if ( f.deleteTemplate(positionNumber) == True ): print('Template deleted!' + str(positionNumber)) return 1 except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) return -1
def delete(): f = PyFingerprint('COM6', 57600, 0xFFFFFFFF, 0x00000000) print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) positionNumber = input( 'Please enter the template position you want to delete: ') positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): print('Template deleted!')
def delete(keyid): ## 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)) return 'Sensor Error' ## Gets some sensor information #print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity())) ## Tries to delete the template of the finger try: keyid = str(keyid) fingerset = {} if os.path.exists('dataset_fingers.dat'): with open('dataset_fingers.dat', 'rb') as readf: fingerset = pickle.load(readf) keys = fingerset.keys() values = fingerset.values() hasFlag = False posNo = -1 for i in range(len(keys)): if values[i] == keyid: hasFlag = True posNo = int(keys[i]) break if hasFlag == False: return 'Key Not Present' del fingerset[str(posNo)] with open('dataset_fingers.dat', 'wb') as writef: pickle.dump(fingerset, writef, protocol=pickle.HIGHEST_PROTOCOL) if (f.deleteTemplate(posNo) == True): print 'Successfully deleted', keyid, 'from the database!' return 'Done' except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) return 'Unknown Error'
def Remover_Digital(): 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: exit(1) try: positionNumber = input( 'Please enter the template position you want to delete: ') positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
def Effacer(f): opwd = (hashlib.sha256( gp("Entrez le password: "******"erreur")
def delete_fid(self, finger_id): 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) 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)
def silme(sil): try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): pass except Exception as e: pass ## Gets some sensor information ## Tries to delete the template of the finger try: positionNumber = sil + 1 positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): return 4 except Exception as e: pass
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 temizle(): try: f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (f.verifyPassword() == False): pass except Exception as e: pass ## Gets some sensor information ## Tries to delete the template of the finger try: for i in range(2, 11): positionNumber = i positionNumber = int(positionNumber) if (f.deleteTemplate(positionNumber) == True): if (i == 10): return 4 except Exception as e: pass
def delete_all(self): ## 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 for finger_id in range(f.getTemplateCount() + 5): try: if ( f.deleteTemplate(finger_id) == True ): print('Template deleted!') except: print('could not delete')
def Remover_Digital(): global sc_bioRem sc_bioRem = Toplevel(screen2) sc_bioRem.title("Biometria") sc_bioRem.attributes('fullscreen',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: exit(1) try: positionNumber = input('Please enter the template position you want to delete: ') positionNumber = int(positionNumber) if ( f.deleteTemplate(positionNumber) == True ): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
class fp_class: def __init__(self, ttl_path): try: print('ttl path ' + ttl_path) self.f = PyFingerprint(ttl_path, 57600, 0xFFFFFFFF, 0x00000000) if (self.f.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') ## Gets some sensor information print('Currently used templates: ' + str(self.f.getTemplateCount()) + '/' + str(self.f.getStorageCapacity())) except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) def enrollNgetID(self): try: print('Waiting for finger...') ## Wait that finger is read while (self.f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 self.f.convertImage(0x01) ## Checks if finger is already enrolled result = self.f.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): print('Template already exists at position #' + str(positionNumber)) return positionNumber print('Remove finger...') time.sleep(2) print('Waiting for same finger again...') ## Wait that finger is read again while (self.f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 self.f.convertImage(0x02) ## Compares the charbuffers if (self.f.compareCharacteristics() == 0): raise Exception('Fingers do not match') ## Creates a template self.f.createTemplate() ## Saves template at new position number positionNumber = self.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 0 def enrollWithID(self, ID_num): try: print('Waiting for finger...') ## Wait that finger is read while (self.f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 1 self.f.convertImage(0x01) print('Remove finger...') time.sleep(2) print('Waiting for same finger again...') ## Wait that finger is read again while (self.f.readImage() == False): pass ## Converts read image to characteristics and stores it in charbuffer 2 self.f.convertImage(0x02) ## Compares the charbuffers if (self.f.compareCharacteristics() == 0): raise Exception('Fingers do not match') ## Creates a template self.f.createTemplate() ## Saves template at new position number positionNumber = self.f.storeTemplate(ID_num) print('Finger enrolled successfully!') print('New template position #' + str(positionNumber)) return positionNumber except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) def CheckFingerPrint(self): if self.f.readImage() == False: print('Waiting for finger...') return (0) ## Converts read image to characteristics and stores it in charbuffer 1 self.f.convertImage(0x01) ## Searchs template result = self.f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] if (positionNumber == -1): print('No match found!') return (12) else: print('Found template at position #' + str(positionNumber)) print('The accuracy score is: ' + str(accuracyScore)) return (positionNumber) def deletfpTemplet(self, positionNumber): ## Tries to delete the template of the finger try: positionNumber = int(positionNumber) print('You want to delete: {} Template'.format(positionNumber)) if (self.f.deleteTemplate(positionNumber) == True): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) return (0)
def Updated_fingerprint(self, event): self.update() curItem = self.tree.focus() inter_var = self.tree.item(curItem) list_values = inter_var['values'] print(list_values) # check the value of a dictionary if list_values[12] != '': 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 delete the template of the finger positionNumber = list_values[12] positionNumber = int(positionNumber) print(positionNumber) if (f.deleteTemplate(positionNumber) == True): print('Template deleted!') 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 enroll new 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): messagebox.showinfo( "Notice", "Fingerprint is already registered\n please try again", parent=self) time.sleep(2) ## 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): messagebox.showerror("Error", "Finger do not match\n Please try again", parent=self) ## Creates a template else: f.createTemplate() characterics = str( f.downloadCharacteristics(0x01)).encode('utf-8') ## Saves template at new position number positionNumber = f.storeTemplate() self.cursor.execute( "UPDATE residents_db SET FINGER_TEMPLATE = %s WHERE ID = %s", (positionNumber, list_values[0])) self.db.commit() messagebox.showinfo("Success", "Fingerprint successfully updated", parent=self) self.update_finger_frame.destroy() self.treeview_frame_residents.pack(expand=1, fill="both") else: 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())) ## 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): messagebox.showinfo( "Notice", "Fingerprint is already registered\n please try again", parent=self) time.sleep(2) ## 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): messagebox.showerror("Error", "Finger do not match\n Please try again", parent=self) ## Creates a template else: f.createTemplate() characterics = str( f.downloadCharacteristics(0x01)).encode('utf-8') ## Saves template at new position number positionNumber = f.storeTemplate() self.cursor.execute( "UPDATE residents_db SET FINGER_TEMPLATE = %s WHERE ID = %s", (positionNumber, str(list_values[0]))) self.db.commit() messagebox.showinfo("Success", "Fingerprint successfully updated", parent=self) self.update_finger_frame.destroy() self.treeview_frame_residents.pack(expand=1, fill="both")
## ## 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 delete the template of the finger try: positionNumber = raw_input('Please enter the template position you want to delete: ') positionNumber = int(positionNumber) if ( f.deleteTemplate(positionNumber) == True ): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
class DoorLock(threading.Thread): def __init__(self, sc): try: threading.Thread.__init__(self) self.mode = 'check' self.sc = sc self.f = PyFingerprint('/dev/ttyAMA0', 57600, 0xFFFFFFFF, 0x00000000) if self.f.verifyPassword() == False: raise ValueError( 'The given fingerprint sensor password is wrong!') GPIO.setmode(GPIO.BCM) GPIO.setup(21, GPIO.OUT) os.system('killall nc') self.camera() self.lcdControl = monitor.lcd() self.lcdControl.lcd_clear() except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) def camera(self): PIPE = subprocess.PIPE self.p = subprocess.Popen([ "/bin/bash", "-i", "-c", "sudo raspivid -n -ih -t 0 -rot 0 -w 1280 -h 720 -fps 15 -b 1000000 -o - | nc -lkv4 5000" ], stdout=PIPE, preexec_fn=os.setsid) print(self.p) def run(self): while True: if self.mode == 'check': self.checkFingerprint() elif self.mode == 'enroll': self.saveFingerprint() def chageMode(self, modename): self.mode = modename def deleteFingerprint(self, id): if (self.f.deleteTemplate(id) == True): print('Template deleted!') def checkFingerprint(self): while True: try: print('mode: ' + self.mode) print('Waiting for finger...') self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string("Waiting Finger", 2) while self.f.readImage() == False and self.mode == 'check': pass if self.mode != 'check': return self.f.convertImage(0x01) print('Remove finger...') self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string("Remove Finger...", 2) time.sleep(2) result = self.f.searchTemplate() positionNumber = result[0] os.killpg(os.getpgid(self.p.pid), signal.SIGKILL) with PiCamera() as camera: camera.start_preview() time.sleep(1) camera.capture('/home/pi/Desktop/image.jpg') camera.stop_preview() self.var = self.rand() if storage.download('doorlock/' + self.var + '.jpg'): self.var = self.rand() storage.upload('/home/pi/Desktop/image.jpg', 'doorlock/' + self.var + '.jpg') self.camera() if (positionNumber >= 0): print('Success #' + str(positionNumber)) self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string( "Success #" + str(positionNumber), 2) GPIO.output(21, True) time.sleep(1) GPIO.output(21, False) now = datetime.datetime.now() timenow = now.strftime('%Y-%m-%d %H:%M:%S') picturePath = storage.path('doorlock/' + self.var + '.jpg') doorLockstatus = '정상' self.sc.sndMsg('doorlock\timage\t' + str(picturePath[3:]) + '\t' + timenow + '\t' + doorLockstatus) else: print('Failed to FingerPrint') self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string("Falied Finger", 2) time.sleep(1) now = datetime.datetime.now() timenow = now.strftime('%Y-%m-%d %H:%M:%S') picturePath = storage.path('doorlock/' + self.var + '.jpg') doorLockstatus = '비정상' self.sc.sndMsg('doorlock\timage\t' + str(picturePath[3:]) + '\t' + timenow + '\t' + doorLockstatus) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) def saveFingerprint(self): try: print('mode: ' + self.mode) print('Waiting for finger...') self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string("Waiting Finger...", 2) while self.f.readImage() == False and self.mode == 'enroll': pass if self.mode != 'enroll': return self.f.convertImage(0x01) print('Remove finger...') self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string("Remove Finger...", 2) print('Waiting for same finger again...') self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string("SameFinger again", 2) while self.f.readImage() == False and self.mode == 'enroll': pass if self.mode != 'enroll': return self.f.convertImage(0x02) time.sleep(2) if self.f.compareCharacteristics() == 0: self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string("Do not match", 2) time.sleep(1) if self.f.compareCharacteristics() == 0: raise Exception('Fingers do not match') self.f.createTemplate() positionNumber = self.f.storeTemplate() print('#' + str(positionNumber)) self.lcdControl.lcd_clear() self.lcdControl.lcd_display_string("mode: " + self.mode, 1) self.lcdControl.lcd_display_string( "Success #" + str(positionNumber), 2) time.sleep(1) self.sc.sndMsg('doorlock\tenroll\t' + str(positionNumber)) time.sleep(2) self.mode = 'check' except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) def openDoor(self): GPIO.output(21, True) time.sleep(4) GPIO.output(21, False) def rand(self): _LENGTH = 8 random_var = string.digits result = "" for i in range(_LENGTH): result += random.choice(random_var) return result
class UtilFingerprint: #Realiza la coneccion con el fingerprint def __init__(self, instIndex): self.initFP(instIndex) #Realiza la coneccion con el fingerprint def initFP(self, instIndex): self.instIndex = instIndex try: self.f = PyFingerprint('/dev/ttyS0', 57600, 0xFFFFFFFF, 0x00000000) if (self.f.verifyPassword() == False): raise ValueError( 'La contrasena del sensor de huella dactilar presento un error.' ) except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) #Busca una huella en especifico def search(self, instIndex): self.initFP(instIndex) try: #Esperando a que sea leido el dedo while (self.instIndex.semaforo == False and self.f.readImage() == False): pass if self.instIndex.semaforo == True: return 0 #Convierte la imagen en caracteristicas self.f.convertImage(0x01) #Se busca la imagen leida en las guardadas previamente result = self.f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] self.instIndex.idUser = positionNumber self.instIndex.semaforo = True return positionNumber except Exception as e: print('Mensaje de Excepcion: ' + str(e)) exit(1) #-------- Elimina una huella en el dispositivo -------- def delete(self, positionNumber, instIndex): self.initFP(instIndex) try: if (self.f.deleteTemplate(positionNumber) == True): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1) #---------- Verifica existencia de huella ----------- def exist(self, instIndex): self.initFP(instIndex) try: print("Waiting for finger") #Escucha el fingerprint while self.instIndex.semaforo == False and self.f.readImage( ) == False: pass #Si se acaba el tiempo se elimina la ejecucion if self.instIndex.semaforo == True: self.instIndex.result = "timeout" return "timeout" #En caso de que se ingresara una huella se analiza self.f.convertImage(0x01) result = self.f.searchTemplate() positionNumber = result[0] self.instIndex.result = str(positionNumber) return str(positionNumber) + "" # -1 quiere = No existe except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1) #-------- Guarda una huella en el dispositivo -------- def save(self, instIndex): self.initFP(instIndex) try: #Se valida que la huella se registrara correctamente while (self.instIndex.semaforo == False and self.f.readImage() == False): pass #En caso de ser eliminado desde otra clase se termina el flujo if self.instIndex.semaforo == True: self.instIndex.result = "ERROR!, debe colocar el dedo en el dispositivo" return 0 self.f.convertImage(0x02) if (self.f.compareCharacteristics() == 0): self.instIndex.result = "Las huellas no coinciden" return 0 self.f.createTemplate() positionNumber = self.f.storeTemplate() #print ("La posicion de la huella es " + str(positionNumber)) self.instIndex.idUser = positionNumber self.instIndex.result = "Realizado con exito." self.instIndex.semaforo = True except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
print('Exception message: ' + str(e)) elif i == 3: ## Deletes a finger ## Gets some sensor information print('Currently used templates: ' + str(f.getTemplateCount()) + '/' + str(f.getStorageCapacity())) ## Tries to delete the template of the finger try: rollno = input('Please enter the Roll No. to delete: ') for i in range(len(dfStudent.index)): if (rollno == dfStudent.loc[i, 0]): positions.append(dfStudent.loc[i, 4]) positions.append(dfStudent.loc[i, 6]) break positionNumber = int(positionNumber) if (f.deleteTemplate(positions[0]) == True and f.deleteTemplate(positions[1] == True)): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) else: mylcd.lcd_display_string('Exiting...', 1, 3) time.sleep(1) mylcd.lcd_clear() exit(0)
def enroll(ref, firstName, lastName, licNo, lmv): 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())) f.deleteTemplate(0) ## 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() f.loadTemplate(positionNumber, 0x01) scan = f.downloadCharacteristics(0x01) f.deleteTemplate(positionNumber) print('Finger scanned successfully!') data = { 'Name': firstName, 'LastName': lastName, 'LicenseNo': licNo, 'LMV': lmv, 'biom': scan } driverBucketId = ref.post('/DrivingLicense/details', data) except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
class UtilFingerprint: #Realiza la coneccion con el fingerprint def __init__(self,instIndex): self.initFP(instIndex) #Realiza la coneccion con el fingerprint def initFP(self,instIndex): self.instIndex = instIndex try: self.f = PyFingerprint('/dev/ttyS0', 57600, 0xFFFFFFFF, 0x00000000) if ( self.f.verifyPassword() == False ): raise ValueError('La contrasena del sensor de huella dactilar presento un error.') except Exception as e: print('The fingerprint sensor could not be initialized!') print('Exception message: ' + str(e)) exit(1) #Busca una huella en especifico def search(self,instIndex): self.initFP(instIndex) try: #Esperando a que sea leido el dedo while (self.instIndex.semaforo == False and self.f.readImage() == False ): pass if self.instIndex.semaforo == True: return 0 #Convierte la imagen en caracteristicas self.f.convertImage(0x01) #Se busca la imagen leida en las guardadas previamente result = self.f.searchTemplate() positionNumber = result[0] accuracyScore = result[1] self.instIndex.idUser = positionNumber self.instIndex.semaforo = True return positionNumber except Exception as e: print('Mensaje de Excepcion: ' + str(e)) exit(1) #-------- Elimina una huella en el dispositivo -------- def delete(self, positionNumber, instIndex): self.initFP(instIndex) try: if ( self.f.deleteTemplate(positionNumber) == True ): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1) #---------- Verifica existencia de huella ----------- def exist(self, instIndex): self.initFP(instIndex) try: print("Waiting for finger") #Escucha el fingerprint while self.instIndex.semaforo == False and self.f.readImage() == False: pass #Si se acaba el tiempo se elimina la ejecucion if self.instIndex.semaforo == True: self.instIndex.result = "timeout" return "timeout" #En caso de que se ingresara una huella se analiza self.f.convertImage(0x01) result = self.f.searchTemplate() positionNumber = result[0] self.instIndex.result = str(positionNumber) return str(positionNumber)+""# -1 quiere = No existe except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1) #-------- Guarda una huella en el dispositivo -------- def save(self, instIndex): self.initFP(instIndex) try: #Se valida que la huella se registrara correctamente while (self.instIndex.semaforo == False and self.f.readImage() == False): pass #En caso de ser eliminado desde otra clase se termina el flujo if self.instIndex.semaforo == True: self.instIndex.result = "ERROR!, debe colocar el dedo en el dispositivo" return 0 self.f.convertImage(0x02) if(self.f.compareCharacteristics() == 0): self.instIndex.result = "Las huellas no coinciden" return 0 self.f.createTemplate() positionNumber = self.f.storeTemplate() #print ("La posicion de la huella es " + str(positionNumber)) self.instIndex.idUser = positionNumber self.instIndex.result = "Realizado con exito." self.instIndex.semaforo = True 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 numTemps = str(f.getTemplateCount()) print('Currently used templates: ' + numTemps +'/'+ 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) numT=f.getTemplateCount() for x in range(0,numT): f.deleteTemplate(x) numTemps = str(f.getTemplateCount()) print('Currently used templates: ' + numTemps +'/'+ str(f.getStorageCapacity())) 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!\n" + "Exception message: " + str(e)) exit(1) ## Load the template to compare against. if (f.deleteTemplate(0) == True): print('Template deleted!') #print("Uploading characteristics") f.uploadCharacteristics(0x01, finger_template1) f.uploadCharacteristics(0x02, finger_template2) #print("Peak on the uploaded characteristics: " + str(f.downloadCharacteristics(0x02))) ## 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...\n") #
## 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 try: positionNumber = input('Please enter the template positions you want to delete: ') positionNumber = int(positionNumber) for Number in range(positionNumber): if ( f.deleteTemplate(Number) == True ): print('Template deleted!') except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
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) lcd.lcd_display_string( str(f.getTemplateCount()) + 'finGer left', 1, 1) time.sleep(2) lcd.lcd_clear() except Exception as e: print('Operation failed!') print('Exception message: ' + str(e)) exit(1)
class User(): def __init__(self): self.finger = None self.digit = None self.FLAG = True self.inserted_password = '' self.cnt_ENTER = 0 self.cnt_OUT = 0 self.data_flag = 'active' self.positive_flag = '' self.camera_flag = 'active' #self.CamThreadFlag = True def ResetButtonCallback(self, channel): diode.resetAll() self.cnt_ENTER = 0 self.cnt_OUT = 0 self.FLAG = True self.digit = None self.inserted_password = '' self.data_flag = 'active' self.positive_flag = '' lcd.lcd_clear() lcd2.lcd_clear() #GPIO.cleanup() def CameraButtonCallback(self, channel): self.camera_flag = 'off' self.CamThreadFlag = False def fingerprint_init(self): try: self.finger = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000) if (self.finger.verifyPassword() == False): raise ValueError( 'The given fingerprint sensor password is wrong!') except Exception as e: lcd.lcd_display_string('Error', 1) print(e) exit(0) def add_user_fingerprint(self, user_id): try: lcd.lcd_clear() lcd.lcd_display_string('Adding user..', 1) lcd.lcd_display_string('Place finger..', 2) while (self.finger.readImage() == False): pass self.finger.convertImage(0x01) result = self.finger.searchTemplate() positionNumber = result[0] if (positionNumber >= 0): lcd.lcd_clear() lcd.lcd_display_string('Pattern already', 1) lcd.lcd_display_string('exist', 2) lcd.lcd_clear() lcd.lcd_display_string('Authrization..', 1) lcd.lcd_display_string('Please wait..', 2) time.sleep(2) while (self.finger.readImage() == False): pass self.finger.convertImage(0x02) if (self.finger.compareCharacteristics() == 0): lcd.lcd_display_string('Finger patterns', 1) lcd.lcd_display_string('do not match', 2) self.finger.createTemplate() positionNumber = self.finger.storeTemplate() lcd.lcd_clear() lcd.lcd_display_string('Authrization', 1) lcd.lcd_display_string('Complete', 2) self.finger.loadTemplate(positionNumber, 0x01) characterics = str( self.finger.downloadCharacteristics(0x01)).encode('utf-8') Char = hashlib.sha256(characterics).hexdigest() database.send_data("update users set user_fingerprint = '" + Char + "', pattern_position = " + str(positionNumber) + " where user_id = " + str(user_id)) time.sleep(1) lcd.lcd_clear() lcd.lcd_display_string('User added', 1) lcd.lcd_display_string('Finger enrolled', 2) time.sleep(1.5) lcd.lcd_clear() lcd2.lcd_clear() except Exception as e: lcd.lcd_clear() lcd.lcd_display_string('Error', 1) print(e) def counter_OUT(self): self.cnt_OUT += 1 if self.cnt_OUT == 1: diode.setRedDiode_OUT() time.sleep(1.5) diode.resetRedDiode_OUT() elif self.cnt_OUT == 2: diode.blinkRedDiode_OUT() elif self.cnt_OUT == 3: diode.setAlarm() time.sleep(0.1) diode.resetAlarm() lcd2.lcd_display_string('AUTHORIZATION', 1) lcd2.lcd_display_string('FAILED !!!', 2) self.FLAG = False def counter_ENTER(self): self.cnt_ENTER += 1 if self.cnt_ENTER == 1: diode.setRedDiode_OUT() time.sleep(1.5) diode.resetRedDiode_OUT() elif self.cnt_ENTER == 2: diode.blinkRedDiode_OUT() #time.sleep(1.5) elif self.cnt_ENTER == 3: diode.setAlarm() time.sleep(0.1) diode.resetAlarm() lcd2.lcd_display_string('AUTHORIZATION', 1) lcd2.lcd_display_string('FAILED !!!', 2) self.FLAG = False def positive(self): if self.positive_flag == 'OUT': diode.setGreenDiode_OUT() diode.resetRedDiode_OUT() time.sleep(1.5) diode.resetGreenDiode_OUT() elif self.positive_flag == 'ENTER': diode.setGreenDiode_ENTER() diode.resetRedDiode_ENTER() time.sleep(1.5) diode.resetGreenDiode_ENTER() def residence_time(self, user_id): time_in = database.get_data( "select time_in from usertime where user_id = " + str(user_id)) time_out = database.get_data( "select time_out from usertime where user_id = " + str(user_id)) if ((time_in is not None) and (time_out is not None)): res_time = (time_out - time_in) database.send_data("update usertime set residence_time = '" + str(res_time) + "' where user_id = " + str(user_id)) def add_delete_user(self): try: while self.FLAG: lcd2.lcd_display_string('Insert password:'******'#': if self.inserted_password[0] == 'A': DoesAddCodeExists = database.get_data( "select count(create_acc_code) from usercode where create_acc_code = '" + self.inserted_password + "'") if DoesAddCodeExists == 1: can_be_added = database.get_data( "select users.availability from users where users.user_id = (select usercode.user_id from usercode where create_acc_code = '" + self.inserted_password + "' and users.user_id = usercode.user_id)") if can_be_added == 1: user_code_quantity = database.get_data( "select count(user_id) as quantity from usercode where create_acc_code = '" + self.inserted_password + "'") if user_code_quantity == 1: expire_date = database.get_data( "select expire_date from usercode where create_acc_code = '" + self.inserted_password + "'") current_date = datetime.datetime.strptime( time.strftime( '%Y-%m-%d %H:%M:%S', time.localtime()), '%Y-%m-%d %H:%M:%S') if current_date < expire_date: user_id = database.get_data( "select users.user_id from users where users.user_id = (select usercode.user_id from usercode where usercode.create_acc_code = '" + self.inserted_password + "' and users.user_id = usercode.user_id)" ) database.send_data( "update usercode set create_acc_code = null where create_acc_code = '" + self.inserted_password + "'") lcd2.lcd_clear() lcd2.lcd_display_string( 'Code correct!', 1) time.sleep(1.5) lcd2.lcd_clear() lcd2.lcd_display_string( 'Add your', 1) lcd2.lcd_display_string( 'finger pattern', 2) self.data_flag = 'off' self.add_user_fingerprint(user_id) self.FLAG = False else: lcd2.lcd_clear() lcd2.lcd_display_string( 'Code expired!', 1) self.inserted_password = '' self.data_flag = 'active' self.digit = None time.sleep(2) lcd2.lcd_clear() else: lcd2.lcd_clear() lcd2.lcd_display_string( 'Wrong password', 1) self.inserted_password = '' self.digit = None time.sleep(2) else: lcd2.lcd_clear() lcd2.lcd_display_string('User cannot', 1) lcd2.lcd_display_string('be added', 2) self.inserted_password = '' self.digit = None time.sleep(1.5) lcd2.lcd_clear() else: lcd2.lcd_clear() lcd2.lcd_display_string('This password', 1) lcd2.lcd_display_string('not exists', 2) elif self.inserted_password[0] == 'D': DoesDeleteCodeExists = database.get_data( "select count(delete_acc_code) from usercode where delete_acc_code = '" + self.inserted_password + "'") if DoesDeleteCodeExists == 1: getUserID = database.get_data( "select user_id from usercode where delete_acc_code = '" + self.inserted_password + "'") can_be_deleted = database.get_data( "select availability from users where user_id = " + str(getUserID)) if can_be_deleted == 0: positionNumber = database.get_data( "select pattern_position from users where user_id = " + str(getUserID)) if (self.finger.deleteTemplate( positionNumber) == True): database.send_data( "call delete_user(" + str(getUserID) + ")") lcd2.lcd_clear() lcd2.lcd_display_string( 'User has been', 1) lcd2.lcd_display_string('deleted', 2) self.inserted_password = '' self.digit = None time.sleep(1.5) lcd2.lcd_clear() else: lcd2.lcd_clear() lcd2.lcd_display_string('User cannot', 1) lcd2.lcd_display_string('be deleted', 2) self.inserted_password = '' self.digit = None time.sleep(1.5) lcd2.lcd_clear() else: lcd2.lcd_display_string('Password not', 1) lcd2.lcd_display_string('recognized', 2) elif self.inserted_password[0] == 'B': user_id = database.get_data( "select user_id from users where user_exit_password = '******'") if user_id >= 1: lcd2.lcd_clear() lcd2.lcd_display_string('Password correct', 1) time_out_date = datetime.datetime.strptime( time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()), '%Y-%m-%d %H:%M:%S') database.send_data( "update usertime set time_out = '" + str(time_out_date) + "' where user_id = " + str(user_id)) self.positive_flag = 'OUT' self.positive() self.residence_time(user_id) self.data_flag = 'off' self.FLAG = False else: lcd2.lcd_clear() lcd2.lcd_display_string('Wrong password', 1) self.counter_OUT() time.sleep(1.5) self.digit = None self.inserted_password = '' else: lcd2.lcd_clear() lcd2.lcd_display_string('Password not', 1) lcd2.lcd_display_string('recognized', 2) if self.digit == 'C': index1 = len(self.inserted_password) - 1 index2 = len(self.inserted_password) - 2 _char1 = self.inserted_password[index1] _char2 = self.inserted_password[index2] self.inserted_password = self.inserted_password.replace( _char1, '', 1) self.inserted_password = self.inserted_password.replace( _char2, '', 1) if self.data_flag == 'active': lcd2.lcd_clear() lcd2.lcd_display_string('insert password', 1) lcd2.lcd_display_string(self.inserted_password, 2) except Exception as e: lcd.lcd_clear() lcd2.lcd_clear() lcd.lcd_display_string('Error occured', 1) lcd2.lcd_display_string('Error occured', 1) print(e) def check_user(self): while True: try: while (self.finger.readImage() == False): pass lcd.lcd_clear() lcd.lcd_display_string('Verifying..', 1) self.finger.convertImage(0x01) result = self.finger.searchTemplate() positionNumber = result[0] if positionNumber == -1: lcd.lcd_clear() lcd.lcd_display_string('Given pattern', 1) lcd.lcd_display_string('does not exists', 2) self.counter_ENTER() #exit(0) else: lcd.lcd_clear() lcd.lcd_display_string('Welcome', 1) EnterToRoomDate = datetime.datetime.strptime( time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()), '%Y-%m-%d %H:%M:%S') database.send_data( "update usertime set time_in = '" + str(EnterToRoomDate) + "' where user_id = (select user_id from users where pattern_position = " + str(positionNumber) + " and usertime.user_id = users.user_id)") self.positive_flag = 'ENTER' self.positive() lcd.lcd_clear() except Exception as e: lcd.lcd_clear() lcd.lcd_display_string('Error', 1) print(e)