Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
def Adicionar_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:
        while (f.readImage() == False):
            pass
        f.convertImage(0x01)
        result = f.searchTemplate()
        positionNumber = result[0]
        if (positionNumbe >= 0):
            Usr_ja_cad()
            exit(0)
            #Adicionar algo para fazer o user remover o dedo
            time.sleep(2)
            while (f.readImage() == False):
                pass
        f.convertImage(0x02)
        if (f.compareCharacteristics() == 0):
            raise Exception("Fingers not Match")
            Dedos_nao_batem()
        f.createTemplate()
        positionNumber = f.storeTemplate()
        USR = open(positionNumber + ".fin")
        USR.write(usr)
        USR.close
        Cadastrado()
        main_screen()
    except Exception as e:
        exit(1)
Ejemplo n.º 3
0
    def threadAddFinger(self):
        ## Enrolls new finger
        ## 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 với cảm biên vân tay")
            self.threadIsRun = False
            return
        ## Tries to enroll new finger
        try:
            self.lbThongBao.setText("Đặt ngón tay vào cảm biến vân tay")
            ## 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 ):
                self.lbThongBao.setText("Vân tay đã tồn tại")
                self.threadIsRun = False
                return

            self.lbThongBao.setText("Nhấc tay ra khỏi cảm biến")
            time.sleep(2)

            self.lbThongBao.setText("Đặt lại ngón tay lần 2 để xác thực")

            ## 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 ):
                self.lbThongBao.setText("Ngón tay 2 lần không khớp nhau! Lấy Vân tay thât bại")
                self.threadIsRun = False
                return
            ## Creates a template
            f.createTemplate()
            ## Saves template at new position number
            positionNumber = f.storeTemplate()
            self.lbThongBao.setText("Thêm văn tay thành công!")
            self.threadIsRun = False

        except Exception as e:
            print('Operation failed!')
            print('Exception message: ' + str(e))
            self.lbThongBao.setText("Lỗi trong qúa trình thêm vân tay")
            self.threadIsRun = False
            return
Ejemplo n.º 4
0
def enroll():
    ## Enrolls new finger

    try:
        finger = PyFingerprint('/dev/ttyUSB0')

        print('Waiting for finger...')
        print(finger.readImage())
        ## Wait for finger to read
        while ( finger.readImage() == False ):
            pass
        
        
        ## Converts read image to characteristics and stores it in charbuffer 1
        finger.convertImage(0x01)

     
        ## Checks if finger is already enrolled
        result = finger.searchTemplate()
        print(result)
        positionNumber = result[0]
     
        if ( positionNumber >= 0 ):
            print('Template already exists at position #' + str(positionNumber))
            return (-1)
            exit(0)
        #return True
    
        print('Remove finger...')
        time.sleep(2)
     
        print('Waiting for same finger again...')
     
        ## Wait for finger to read again
        while ( finger.readImage() == False ):
            pass
     
        ## Converts read image to characteristics and stores it in charbuffer 2
        finger.convertImage(0x02)
     
        ## Compares the charbuffers
        if ( finger.compareCharacteristics() == 0 ):
            
            raise Exception('Fingers do not match')
            return (-1)
        ## Creates a template
        finger.createTemplate()
     
        ## Saves template at new position number
        positionNumber = finger.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 (-1)
        exit(1)
        
Ejemplo n.º 5
0
def enroll():
    f = PyFingerprint('COM6', 57600, 0xFFFFFFFF, 0x00000000)

    print('Currently used templates: ' + str(f.getTemplateCount()) + '/' +
          str(f.getStorageCapacity()))

    print('Waiting for finger...')

    while (f.readImage() == False):
        pass

    f.convertImage(FINGERPRINT_CHARBUFFER1)

    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...')

    while (f.readImage() == False):
        pass

    f.convertImage(FINGERPRINT_CHARBUFFER2)

    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: ")

    f.createTemplate()

    file = open('profiles/' + str(positionNumber) + '.txt',
                'w',
                encoding='UTF8')
    file.writelines("StudentID: " + StudenID + "\nName: " + Name +
                    "\nClass: " + Class + "\nSchool: " + School +
                    "\nFaculty: " + Faculty + "\nRoom: " + Room + "\nPhone: " +
                    Phone + "\nEmail: " + Email)
    file.close()

    positionNumber = f.storeTemplate()
    print('Finger enrolled successfully!')
    print('New template position #' + str(positionNumber))
Ejemplo n.º 6
0
def techBinFingerPrint():
    try:
        f = PyFingerprint('/dev/ttyUSB1', 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))
    try:
        print('Waiting for finger...')

        while (f.readImage() == False):
            pass
        f.convertImage(0x01)

        result = f.searchTemplate()

        positionNumber = result[0]
        accuracyScore = result[1]
        if (positionNumber == -1):
            print('New user welcome...')
            #################################################
            print("Don't Remove finger...")
            time.sleep(2)

            print('Waiting for same finger again...')

            while (f.readImage() == False):
                pass

            f.convertImage(0x02)

            if (f.compareCharacteristics() == 0):
                raise Exception('Fingers do not match')

            f.createTemplate()

            positionNumber = f.storeTemplate()
            print('Finger enrolled successfully!')
            print('New template position #' + str(positionNumber))
            return str(positionNumber)
        else:
            print('Found template at position #' + str(positionNumber))
            return str(positionNumber)
        # print('The accuracy score is: ' + str(accuracyScore))

        f.loadTemplate(positionNumber, 0x01)

        characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8')

    # print('SHA-2 hash of template: ' + hashlib.sha256(characterics).hexdigest())

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
Ejemplo n.º 7
0
class fingerprint(object):
    def __init__(self):
        self._error = None
        self._positionNumber = -1
        try:
            self.f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF,
                                   0x00000000)
            if (self.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)

    def readFingerprint(self, buff=0x01):
        self._positionNumber = -1
        while (self.f.readImage() == False):
            pass
        self.f.convertImage(buff)
        self.result = self.f.searchTemplate()

    def searchFingerprint(self):
        try:
            self.readFingerprint()
            self._positionNumber = self.result[0]
            if (self._positionNumber <= -1): raise Exception('No match found')
        except Exception as e:
            self._error = str(e)

        return self._error, self._positionNumber

    def enrollFingerprint(self):
        try:
            self.readFingerprint()  # First Finger
            self._positionNumber = self.result[0]
            if (self._positionNumber >= 0):
                raise Exception('Fingerprint already exists')
            time.sleep(2)
            self.readFingerprint(0x02)  # Second Finger
            if (self.f.compareCharacteristics() == 0):
                raise Exception('Fingers do not match')

            #Save Fingerprint
            self.f.createTemplate()
            self._positionNumber = self.f.storeTemplate()

        except Exception as e:
            self._error = str(e)

        return self._error, self._positionNumber
Ejemplo n.º 8
0
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
        timeout = time.time() + 10
        while ( f.readImage() == False ):
            test = 0
            if test == 5 or time.time() > timeout:
                print('TimeOut')
                return -2 
                break
            test = test - 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
Ejemplo n.º 9
0
def Adicionar_Digital():
    global Tela
    Tela = Tk()
    Tela.title('bio')
    Tela.attributes('-fullscreen', True)
    Label(Tela, text='Iniciando...', font='Arial 12').pack()

    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)
    Label(Tela, text='Insira o dedo', font="Arial 12").pack()
    try:
        print('botodeda1')
        while (f.readImage() == False):
            pass
        f.convertImage(0x01)
        result = f.searchTemplate()
        positionNumber = result[0]
        if (positionNumber >= 0):
            print('já tem')
            exit(0)
        Label(Tela, text='Remova', font='Arial 12').pack()
        time.sleep(2)
        Label(Tela, text='Insira o mesmo dedo', font="Arial 12").pack()
        while (f.readImage() == False):
            pass
        f.convertImage(0x02)
        if (f.compareCharacteristics() == 0):
            raise Exception('Fingers do not match')
        f.createTemplate()
        print('Finger enrolled successfully!')
        Label(Tela, text='Registrado!!!!!!!!', font='Arial 12').pack()
    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        exit(0)
    Tela.mainloop()
Ejemplo n.º 10
0
def Adicionar_Digital():
	global sc_bioAdd
	sc_bioAdd = Toplevel(screen2)
	sc_bioAdd.title("Biometria")
	sc_bioAdd.attributes('fullscreen',True)
	Label(sc_bioAdd, text = "bota o dedin aí", font = "Arial 12").pack()
	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:
		Label(sc_bioAdd, text = "bota o dedin aí", font = "Arial 12").pack()
		while(f.readImage() == False):
			pass
		f.convertImage(0x01)
		result=f.searchTemplate()
		positionNumber= result[0]
		if (positionNumber >= 0):
			user_not_found()
			exit(0)
			Label(sc_bioAdd, text = "tira o dedin aí", font = "Arial 12").pack()
			time.sleep(2)
			Label(sc_bioAdd, text = "bota o dedin aí denovo", font = "Arial 12").pack()
			while(f.readImage() == False):
				pass
		f.convertImage(0x02)
		if (f.compareCharacteristics() == 0 ):
			raise Exception("Fingers not Match")
			password_not_recognised()
		f.createTemplate()
		positionNumber = f.storeTemplate()
		USR=open(positionNumber+".fin")
		USR.write(usr)
		USR.close
		Cadastrado()
		main_screen()
	except Exception as e:
		exit(1)
    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 enroll():
    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)

        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))
        ## 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')

        char = (hashlib.sha256(characterics).hexdigest())
    ## Hashes characteristics of template
    ##  print(char)

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        exit(1)
    return (char)
Ejemplo n.º 13
0
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))
Ejemplo n.º 14
0
        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)
Ejemplo n.º 15
0
        lcd.lcd_display_string('Authrization..',1)
        lcd.lcd_display_string('Please wait..',2)
        time.sleep(2)

        while ( finger.readImage() == False ):
            pass

        finger.convertImage(0x02)
    
        if ( finger.compareCharacteristics() == 0 ):
            lcd.lcd_display_string('Finger patterns',1)
            lcd.lcd_display_string('do not match',2)
            exit(0)
    
    
        finger.createTemplate()
    
        positionNumber = finger.storeTemplate()
    
        lcd.lcd_clear()
        lcd.lcd_display_string('Authrization',1)
        lcd.lcd_display_string('Complete',2)
        finger.loadTemplate(positionNumber, 0x01)
        characterics = str(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)
Ejemplo n.º 16
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()
Ejemplo n.º 17
0
def fingerscan():
    lcd_byte(0x01,LCD_CMD)
## Tries to initialize the sensor
    try:
        f = PyFingerprint('/dev/ttyUSB0', 9600, 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('Scan Finger...')
        lcd_string("Scan Finger:",LCD_LINE_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 ):
            print('Template already exists at position #' + str(positionNumber))
            lcd_string("Finger ID #"+str(positionNumber),LCD_LINE_2)
            time.sleep(5)
            fingerscan()

        else:

    #    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 ):
    #        lcd_string("ERROR!",LCD_LINE_2)
    #        time.sleep(3)
    #        fingerscan()
        
    ## Creates a template
            f.createTemplate()

    ## Saves template at new position number
            positionNumber = f.storeTemplate()
            print('Finger enrolled successfully!')
            lcd_string("successfully!",LCD_LINE_2)
            print('New template position #' + str(positionNumber))

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        pass

    return(positionNumber)
Ejemplo n.º 18
0
def enroll(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()))
    fingerdata = {}
    if os.path.exists('dataset_fingers.dat'):
        with open('dataset_fingers.dat', 'rb') as rf:
            fingerdata = pickle.load(rf)
    ## 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('Finger already present!')
            return 2

        print('Remove finger...')
        time.sleep(1)

        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()
        fingerdata[str(positionNumber)] = str(keyid)
        with open('dataset_fingers.dat', 'wb') as wf:
            pickle.dump(fingerdata, wf)
        print 'Finger enrolled successfully for ' + str(keyid) + ' !'
        #print('New template position #' + str(positionNumber))
        return 'Successful'

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        return 'Unknown Error'
Ejemplo n.º 19
0
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)
Ejemplo n.º 20
0
class fingerprint_sensor:
    def __init__(self):
        # Sensor Initialisation
        try:
            self.f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF,
                                   0x00000000)

            if (self.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))

    def enrollment(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))

            time.sleep(2)

            # 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))

            # Exports the template to a temporaryfile
            template = self.f.downloadCharacteristics()
            temp_file = open("template.txt", "w+")
            for item in template:
                temp_file.write(str(item) + "\n")
            temp_file.close()
            return os.path.abspath('temp_file.txt')

        except Exception as e:
            print('Operation failed!')
            print('Exception message: ' + str(e))

    def authentication(self, file_path):
        try:
            match_flag = 0
            # Uploading the template to the sensor
            temp_file = open(file_path, "r")
            template = []
            for x in temp_file:
                template.append(int(x))
            temp_file.close()
            self.f.uploadCharacteristics(characteristicsData=template)
            Index_template = self.f.storeTemplate()

            # Tries to search the finger
            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)

            # Searches template
            result = self.f.searchTemplate()

            positionNumber = result[0]

            if (positionNumber == -1):
                print('No match found!')
                match_flag = 0
            elif (positionNumber == Index_template):
                print('Matched')
                match_flag = 1

            return match_flag

        except Exception as e:
            print('Operation failed!')
            print('Exception message: ' + str(e))

    def Clear_Sensor(self):
        # Deleting the database
        self.f.clearDatabase()
Ejemplo n.º 21
0
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)
Ejemplo n.º 22
0
def hash():  
    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
    ## Tries to enroll new finger
    try:
        lcddeneme.yaz("Parmaginizi","okutun")
        print('Parmağınızı okutun')

        ## 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 ):
            lcddeneme.yaz("Parmak izi", "Zaten kayitli")
            print('Parmak izi Zaten kayıtlı')
            return -10
        lcddeneme.yaz("Parmaginizi","cekin")
        print('Parmağınızı çekin')
        time.sleep(2)
        lcddeneme.yaz("Parmaginizi","Tekrar okutun")
        print('Parmağınızı tekrar okutun')

        ## 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('Parmak izi Algılanamadı')
            return -10
        ## Creates a template
        f.createTemplate()

        ## Saves template at new position number
        positionNumber = f.storeTemplate()
        characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8')
        b=int(positionNumber)
        return (b)
    except Exception as e:
        print('İşlem başarısız')
        print(str(e))
        return -10
Ejemplo n.º 23
0
    print('Found template at position #' + str(positionNumber))
    f.loadTemplate(positionNumber, 0x01)
    characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8')
    print('SHA-2 hash of template: ' + hashlib.sha256(characterics).hexdigest())
    params = { "HashCode": hashlib.sha256(characterics).hexdigest()}
    query_string = urllib.parse.urlencode( params )
    data = query_string.encode( "ascii" )
    with urllib.request.urlopen( url, data ) as response:
        response_text = response.read()
        print( response_text )

try:
    print('Waiting for finger...')
    while ( f.readImage() == False ):    ## Wait that finger is read
        pass
    f.convertImage(0x01)## Converts read image to characteristics and stores it in charbuffer 1
    result = f.searchTemplate()## Checks if finger is already enrolled
    positionNumber = result[0]
    if ( positionNumber == -1 ):
        f.createTemplate()## Creates a template
        positionNumber = f.storeTemplate()
        printID(positionNumber)

    if ( positionNumber >= 0 ):
        printID(positionNumber)

except Exception as e:
    print('Operation failed!')
    print('Exception message: ' + str(e))
    exit(1)
Ejemplo n.º 24
0
def enroll():
    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))

    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

        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)

        ch1 = str(f.downloadCharacteristics(0x01)).encode('utf-8')
        ch2 = str(f.downloadCharacteristics(0x02)).encode('utf-8')
        hash1 = hashlib.sha256(ch1).hexdigest()
        hash2 = hashlib.sha256(ch2).hexdigest()
        print(hash1)
        print(hash2)
        ## Compares the charbuffers
        acur = f.compareCharacteristics()
        print(acur)
        if (acur == 0):
            raise Exception('Fingers do not match')

    ## Creates a template
        f.createTemplate()

        ## Saves template at new position number
        name = input('Enter name of the person')

        positionNumber = f.storeTemplate()
        print(hash1)
        print(hash2)
        print('Finger enrolled successfully!')
        print('New template position #' + str(positionNumber))

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
    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))

    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())
Ejemplo n.º 27
0
class Biometric:
    def __init__(self):
        self.initialize()
        return

    def initialize(self):
        self.f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000)
        if not self.f.verifyPassword():
            raise ValueError('The given fingerprint sensor password is wrong!')

    def getSureHash(self):
        hash1 = self.getFPrintHash()
        hash2 = self.getFPrintHash()
        hash3 = self.getFPrintHash()
        hash4 = self.getFPrintHash()
        return self.most_frequent()

    def most_frequent(self, List):
        counter = 0
        num = List[0]

        for i in List:
            curr_frequency = List.count(i)
            if (curr_frequency > counter):
                counter = curr_frequency
                num = i

        return num

    def getFPrintHash(self):
        # Wait that finger is read
        while not self.f.readImage():
            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:
            return self.getHash(positionNumber)

        time.sleep(2)

        # Wait that finger is read again
        while not self.f.readImage():
            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()
        return self.getHash(positionNumber)

    def getHash(self, positionNumber):
        # Loads the found template to charbuffer 1
        self.f.loadTemplate(positionNumber, 0x01)
        # Downloads the characteristics of template loaded in charbuffer 1
        characterics = str(
            self.f.downloadCharacteristics(0x01)).encode('utf-8')
        # Hashes characteristics of template
        fprint_hash = hashlib.sha256(str(positionNumber)).hexdigest()
        return fprint_hash
Ejemplo n.º 28
0
    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)
Ejemplo n.º 29
0
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(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 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()
Ejemplo n.º 32
0
    def enroll_student(self):

        try:
            f = PyFingerprint('/dev/serial0', 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)

        sha = self.get_finger_sha()

        name = raw_input("Please enter your name?")
        roll = raw_input("Please enter your roll number?")

        conn = sq.connect("attendance.db")
        c = conn.cursor()

        c.execute(''' insert into student(sha,name,roll) values(?,?,?)''',
                  (sha, name, roll))

        conn.commit()
        conn.close()