コード例 #1
0
def upload_fingerprint_template(name):
    myquery={}
    myquery['username'] = name
    mydoc = coll.find_one(myquery)
    #print(mydoc['uid'])
    print(mydoc['image_template'])
    image_temp = []
    image_temp = mydoc['image_template']
    print(image_temp)
    #image_temp = f.storeTemplate()
    
    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)
    result = image_temp
    result = f.searchTemplate()
    positionNumber = result[0]

    print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity()))
    position = f.getTemplateCount()
    position = position+1
    print("Inserting fingerprint matching user from mongo to local fingerprint sensor")
    f.uploadCharacteristics(0x01, image_temp)
    f.storeTemplate()
    print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity()))
コード例 #2
0
def Buscar_Digital():
	global sc_bioSrc
	sc_bioSrc = Toplevel(screen2)
	sc_bioSrc.title("Biometria")
	sc_bioSrc.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:
		user_not_found()
		exit(1)
	try:
		while ( f.readImage() == False ):
			pass
		f.convertImage(0x01)

		result = f.searchTemplate()

		positionNumber = result[0]
		accuracyScore = result[1]
		if ( positionNumber == -1 ):
			user_not_found()
			exit(0)
		else:
			Finger=positionNumber
			Lista= os.listdir()
		if Finger in Lista:
			Ver=open(Finger+".fin", 'r')
			usr=Ver.read().splitlines()
	except Exception as e:
		exit(1)
コード例 #3
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)
コード例 #4
0
def search():
    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]
    accuracyScore = result[1]

    if (positionNumber == -1):
        print('No match found!')
        exit(0)
    else:
        print('Found template at position #' + str(positionNumber))
        print('The accuracy score is: ' + str(accuracyScore))

        f = open('profiles/' + str(positionNumber) + '.txt',
                 'r',
                 encoding='UTF8')
        for line in f:
            print(line, end='')
        f.close()
コード例 #5
0
def search():
    port = config.figerScanPort
    f = PyFingerprint(port, 57600, 0xFFFFFFFF, 0x00000000)
    ## Tries to search the finger and calculate hash
    try:
        print('Waiting for finger...')

        ## Wait that finger is read
        while ( f.readImage() == False ):
            pass

        ## Converts read image to characteristics and stores it in charbuffer 1
        f.convertImage(0x01)

        ## Searchs template
        result = f.searchTemplate()

        positionNumber = result[0]
        accuracyScore = result[1]

        if ( positionNumber == -1 ):
            print('No match found!')
            return -1
        else:
            print('Found template at position #' + str(positionNumber))
            print('The accuracy score is: ' + str(accuracyScore))
            return positionNumber
            
    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        return -1
コード例 #6
0
def Buscar_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:
        user_not_found()
        exit(1)
    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):
            user_not_found()
            exit(0)
        else:
            Finger = positionNumber
            Lista = os.listdir()
        if Finger in Lista:
            Ver = open(Finger + ".fin", 'r')
            usr = Ver.read().splitlines()
    except Exception as e:
        exit(1)
コード例 #7
0
ファイル: example_search.py プロジェクト: tatedobs/piPass
def search(status=2):  #0 = on time    1 = tardy    2 = absent
    ## Search for a finger

    ## Tries to initialize the sensor
    try:
        f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000)

        if (f.verifyPassword() == False):
            raise ValueError('The given fingerprint sensor password is wrong!')

    except Exception as e:
        print('The fingerprint sensor could not be initialized!')
        print('Exception message: ' + str(e))
        exit(1)

    ## Gets some sensor information
    print('Currently used templates: ' + str(f.getTemplateCount()) + '/' +
          str(f.getStorageCapacity()))

    ## Tries to search the finger and calculate hash
    try:
        print('Waiting for finger...')

        ## Wait that finger is read
        while (f.readImage() == False):
            pass

        ## Converts read image to characteristics and stores it in charbuffer 1
        f.convertImage(0x01)

        ## Searchs template
        result = f.searchTemplate()

        positionNumber = result[0]
        accuracyScore = result[1]

        if (positionNumber == -1):
            print('No match found!')
            exit(0)
        else:
            print('Found template at position #' + str(positionNumber))
            set_status(str(positionNumber), status)

            print('The accuracy score is: ' + str(accuracyScore))

        ## OPTIONAL stuff
        ##

        ## Loads the found template to charbuffer 1
        f.loadTemplate(positionNumber, 0x01)

        ## Downloads the characteristics of template loaded in charbuffer 1
        characterics = str(f.downloadCharacteristics(0x01))

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

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
コード例 #8
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
コード例 #9
0
class FingerprintThread(threading.Thread):
    def __init__(self, app):
        super().__init__(daemon = True)
        #FingerprintThread.template = None
        self.app = app
        self._continue = threading.Event()
        #self.app.bind('<<GRANT_ACCESS>>', callback)
        self.start()

    def run(self):
        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))
        
        print('Currently used templates: ' + str(self.f.getTemplateCount()) +'/'+ str(self.f.getStorageCapacity()))

        while True:
            retry = 0
            while True:
                print('Waiting for finger...')
                retry+=1
                try:
                    while (self.f.readImage() == False):
                        #print('looping .readImage()')
                        time.sleep(0.5)
                        
                        pass
                    break
                except Exception as e:
                     print('PyFingerprint:{}, try {} of 3'.format(e, retry))
                     if retry == 3:
                         raise Exception('PyFingerprint: Failed to read image 3 times, exiting.')

                     # delay 2 seconds before next try
                     time.sleep(2)
                
            ## Converts read image to characteristics and stores it in charbuffer 1
            #f.convertImage(0x01)

                ## Searchs template
            #FingerprintThread.template = f.searchTemplate()
            self.app.event_generate('<<FINGERPRINT>>', when='tail')
            self._continue.clear()
            self._continue.wait()
            
    def searchTemplate(self):
        print('before convertImage(1)')
        self.f.convertImage(0x01)
        print('before searchTemplate()')
        template = self.f.searchTemplate()
        print('_continue.set()')
        self._continue.set()
        return template
コード例 #10
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)
        
コード例 #11
0
    def runScan(self):

        try:
            f = PyFingerprint(server.usbFinger, 57600, 0xFFFFFFFF, 0x00000000)
            if (f.verifyPassword() == False):
                raise ValueError(
                    'The given fingerprint sensor password is wrong!')
            print("pass van tay lan 1")

        except Exception as e:
            try:
                f = PyFingerprint(server.usbDieuHoa, 57600, 0xFFFFFFFF,
                                  0x00000000)
                if (f.verifyPassword() == False):
                    raise ValueError(
                        'The given fingerprint sensor password is wrong!')
                tempUSB = server.usbDieuHoa
                server.usbDieuHoa = server.usbFinger
                server.usbFinger = tempUSB
                print("pass van tay lan 2")
            except Exception as e:
                print('The fingerprint sensor could not be initialized!')
                print('Exception message: ' + str(e))
                self.lbThongBao.setText("Kiểm Tra cảm biến vân tay")
                return
        print('Currently used templates: ' + str(f.getTemplateCount()) + '/' +
              str(f.getStorageCapacity()))
        try:
            print('Waiting for finger...')
            ## Wait that finger is read
            numC = 0
            while (f.readImage() == False and self.isRun):
                pass
                # numC+=1
                # if numC > 20 :
                #     return
            ## Converts read image to characteristics and stores it in charbuffer 1
            if self.isRun == False:
                return
            f.convertImage(0x01)
            ## Searchs template
            result = f.searchTemplate()
            positionNumber = result[0]
            accuracyScore = result[1]

            if (positionNumber == -1):
                print('No match found!')
                self.lbThongBao.setText("Vân tay không khớp")

            else:
                print('Khop van tay')
                self.isRun = False
                return

        except Exception as e:
            self.lbThongBao.setText("Kiểm Tra cảm biến vân tay")
            print('Operation failed!')
            print('Exception message: ' + str(e))
コード例 #12
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))
コード例 #13
0
ファイル: example_search.py プロジェクト: hyuce/Paroliz
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))
        return -10

    ## Gets some sensor information
    ## Tries to search the finger and calculate hash
    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)

        ## Searchs template
        result = f.searchTemplate()

        positionNumber = result[0]
        accuracyScore = result[1]

        if (positionNumber == -1):
            lcddeneme.yaz("Kayit", "Bulunamadi")
            print('Kayıt bulunamadı')
            time.sleep(2.5)
            return -10
        else:
            pass

        ## OPTIONAL stuff
        ##

        ## Loads the found template to charbuffer 1
        #f.loadTemplate(positionNumber, 0x01)

        ## Downloads the characteristics of template loaded in charbuffer 1
        characterics = str(f.downloadCharacteristics(0x01)).encode('utf-8')

        ## Hashes characteristics of template

        b = int(positionNumber)
        return b
    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        return -10
コード例 #14
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))
コード例 #15
0
    def readFingerprint(self):
        try:
            # Sensor initialisieren
            sensor = PyFingerprint(self.__port, self.__baudrate,
                                   self.__sensoraddr, self.__password)
            if not sensor.verifyPassword():
                logger.warning(
                    'The given fingerprint sensor password is wrong!')
                return None

            logger.debug('Currently used templates: ' +
                         str(sensor.getTemplateCount()) + '/' +
                         str(sensor.getStorageCapacity()))
            # Sensor-Lesen & Event-Handling
            logger.debug('readFingerprint() started for %s', self.__timeout)
            while (not self._shutdown and self.__active):
                # Falls der Sensor nicht permanent aktiv ist und das Aktivitätsintervall überschritten ist - Abbruch
                if (self.__timeout > 0 and (time.time() > self.__timeout)):
                    self.__active = False
                    return None

                if (sensor.readImage()):
                    # Characteristics aus dem gelesenen Fingerabdruck auslesen und hinterlegen
                    sensor.convertImage(0x01)

                    # Datenbank nach diesen Characteristics durchsuchen
                    result = sensor.searchTemplate()
                    positionNumber = result[0]
                    accuracyScore = result[1]

                    # Input-Pin entsprechend der gefundenen Position aktivieren
                    self.last_key = positionNumber
                    self.last_key_time = time.time()
                    logger.debug('Found template at position #' +
                                 str(positionNumber))
                    logger.debug('The accuracy score is: ' +
                                 str(accuracyScore))

                    # Finger entweder gar nicht oder nicht exakt genug erkannt.
                    if (positionNumber
                            == -1) or (accuracyScore < self.__security):
                        # Finger unbekannt - Event ausloesen
                        doorpi.DoorPi().event_handler(
                            'OnFingerprintFoundUnknown', __name__)
                    else:
                        # Finger bekannt - Event ausloesen
                        doorpi.DoorPi().event_handler(
                            'OnFingerprintFoundKnown', __name__)
                        # Dem Finger zugeordnete Events auslösen
                        if (self.last_key in self._InputPins):
                            self._fire_OnKeyDown(self.last_key, __name__)
                            self._fire_OnKeyPressed(self.last_key, __name__)
                            self._fire_OnKeyUp(self.last_key, __name__)

        except Exception as ex:
            logger.exception(ex)
コード例 #16
0
def search():
	
	var = StringVar()
	var.set('Initializing')
	
	statusbar = Label(root, textvariable=var, height = 2, width = 40, bg = "#26232a",fg="white", bd=1, relief=SUNKEN, anchor="center")
	statusbar.place(relx=0.5,rely = 0.94,anchor = "center")
	
	l.append(statusbar)

	## 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:
		var.set('Initialization Error!')
		root.update_idletasks()
	
    ## Tries to search the finger and calculate hash
	try:
		var.set('Waiting for finger...')
		root.update_idletasks()

		## Wait that finger is read
		while ( f.readImage() == False ):
			pass

		## Converts read image to characteristics and stores it in charbuffer 1
		f.convertImage(0x01)

		## Searchs template
		result = f.searchTemplate()

		positionNumber = result[0]
		acdbacyScore = result[1]

		if ( positionNumber == -1 ):
			var.set("Fingerprint Not found.")
			root.update_idletasks()
			return -1
	
		else:
			var.set("Success")
			root.update_idletasks()

		return positionNumber

	except Exception as e:
		var.set('Operation failed!'+'Exception message: ' + str(e))
		root.update_idletasks()
コード例 #17
0
def checkAuth():
    ## Search for a finger
    ##

    ## Tries to initialize the sensor
    try:
        f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000)

        if (f.verifyPassword() == False):
            raise ValueError('The given fingerprint sensor password is wrong!')

    except Exception as e:
        print('The fingerprint sensor could not be initialized!')
        print('Exception message: ' + str(e))
        exit(1)


## Gets some sensor information
#print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity()))

## Tries to search the finger and calculate hash
    try:
        print('Waiting for finger...')

        ## Wait that finger is read
        while (f.readImage() == False):
            pass

    ## Converts read image to characteristics and stores it in charbuffer 1
        f.convertImage(0x01)

        ## Searchs template
        result = f.searchTemplate()
        scan = f.downloadCharacteristics(0x01)
        positionNumber = result[0]
        accuracyScore = result[1]

        if (positionNumber == -1):
            print('No match found!')
            return (False, scan)
            exit(0)
        else:
            print("Match Found")
            # print('Found template at position #' + str(positionNumber))
            # print('The accuracy score is: ' + str(accuracyScore))
            return (True, scan)

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        exit(1)
コード例 #18
0
def search():

    ## 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)
    if len(fingerdata) == 0:
        return 'No Data'
    ## Tries to search the finger and calculate hash
    try:
        print('Waiting for finger...')

        ## Wait that finger is read
        while (f.readImage() == False):
            pass

        ## Converts read image to characteristics and stores it in charbuffer 1
        f.convertImage(0x01)

        ## Searchs template
        result = f.searchTemplate()

        positionNumber = result[0]
        print positionNumber
        accuracyScore = result[1]
        if (positionNumber == -1):
            return 'Not Found'
        elif (accuracyScore < 150):
            return 'Not Accurate'
        else:
            print "Fingerprint recognized!"
            return fingerdata[str(positionNumber)]

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        return 'Sensor Error'
コード例 #19
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
コード例 #20
0
def login1():
    try:
        f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000)

        if ( f.verifyPassword() == False ):
            raise ValueError('The given fingerprint sensor password is wrong!')

    except Exception as e:
        print('The fingerprint sensor could not be initialized!')
        print('Exception message: ' + str(e))
        exit(1)

    print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity()))
    time.sleep(1)
    try:
        while ( f.readImage() == False ):
            pass
        f.convertImage(0x01)
        result = f.searchTemplate() ## Searchs template
        positionNumber = result[0]
        accuracyScore = result[1]
    
        if ( positionNumber == -1 ):
            print('No match found! Try again')
            time.sleep(0.5)
            #login()
        else:
            print('Found template at position #' + str(positionNumber))
            print('The accuracy score is: ' + str(accuracyScore))
            temp = positionNumber
            #return 0
    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        exit(1)
    
    if ( positionNumber == -1 ):
        print('No match found! Try again')
        #global login_fails
        #login_fails=login_fails+1
        #time.sleep(0.5)
        #print('login_fails' + str(login_fails))
        #if(login_fails <= 3):
        #    print("Login Attempt: #" + str(login_fails))
            #login1()
        print("Fingerprint login failed")
        return -1
    else:
        temp = positionNumber
        return temp
コード例 #21
0
ファイル: fingerscan.py プロジェクト: tong9977/elocker
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
コード例 #22
0
def finger_login():
    try:
        f = PyFingerprint('COM6', 57600, 0xFFFFFFFF, 0x00000000)
        if (f.verifyPassword() == False):
            raise ValueError('The given fingerprint sensor password is wrong!')

    except Exception as e:
        del f
        print('The fingerprint sensor could not be initialized!')
        print('Exception message: ' + str(e))
        return jsonify(result='-1')
    try:
        print('Waiting for finger...')

        ## Wait that finger is read
        while (f.readImage() == False):
            pass

        ## Converts read image to characteristics and stores it in charbuffer 1
        f.convertImage(0x01)

        ## Searchs template
        result = f.searchTemplate()

        positionNumber = result[0]
        accuracyScore = result[1]
        #del f
        f.__del__()
        if (positionNumber == -1):

            print('No match found!')
            return jsonify(result='-1')

        else:

            print('Found template at position #' + str(positionNumber))
            return jsonify(result=positionNumber)

    except Exception as e:

        print('Operation failed!')
        print('Exception message: ' + str(e))
        return jsonify(result='-1')
コード例 #23
0
def finger_verification():
    user_id = session.get('user_id')
    error = None
    db = get_db()
    try:

        f = PyFingerprint('/dev/ttyUSB1', 57600, 0xFFFFFFFF, 0x00000000)

        if (f.verifyPassword() == False):
            raise ValueError('The given password is wrong!')

    except Exception as e:
        print('Not initialized')
        print('Exception:' + str(e))

    try:
        while (f.readImage() == False):
            pass
        f.convertImage(0x01)
        result = f.searchTemplate()
        positionNumber = result[0]
        accuracyScore = result[1]
        if (positionNumber == -1):
            error = 'Finger Print not matched. Try again.'
            flash(error)
            return redirect(url_for('auth.finger_view'))
        else:
            user = db.execute('SELECT * FROM user WHERE user_id =?',
                              (user_id, )).fetchone()
            print(user['finger_id'])
            if user['finger_id'] == positionNumber:
                if user['face_encoding']:
                    return redirect(url_for('auth.face_view'))
                else:
                    return redirect(url_for('auth.balance_view'))
            elif user['finger_id_emergency'] == positionNumber:
                error = "Emergency Protocol Activated"
                flash(error)
                return redirect(url_for('auth.finger_view'))
    except Exception as e:
        error = str(e)
        flash(error)
        return redirect(url_for('auth.finger_view'))
コード例 #24
0
def check():

    ## Tries to search the finger

    try:

        finger = PyFingerprint('/dev/ttyUSB0')

        print('Waiting for finger...')

        ## Wait that finger is read

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

            pass

        ## Converts read image to characteristics and stores it in charbuffer 1

        finger.convertImage(0x01)

        ## Searchs template

        result = finger.searchTemplate()
        print(result)

        positionNumber = result[0]

        #accuracyScore = result[1]

        if (positionNumber == -1):
            print('no match found!')
            return (positionNumber)

        else:
            print('Found template at position #' + str(positionNumber))
            return (positionNumber)

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        return False
        exit(1)
コード例 #25
0
def login():
    try:
        f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000)

        if (f.verifyPassword() == False):
            raise ValueError('The given fingerprint sensor password is wrong!')

    except Exception as e:
        print('The fingerprint sensor could not be initialized!')
        print('Exception message: ' + str(e))
        exit(1)

    print('Currently used templates: ' + str(f.getTemplateCount()) + '/' +
          str(f.getStorageCapacity()))
    time.sleep(1)
    try:
        while (f.readImage() == False):
            pass
        f.convertImage(0x01)
        result = f.searchTemplate()  ## Searchs template
        positionNumber = result[0]
        accuracyScore = result[1]
        temp = positionNumber
        if (positionNumber == -1):
            print('No match found! Try again')
            login()
        else:
            print('Found template at position #' + str(positionNumber))
            print('The accuracy score is: ' + str(accuracyScore))
        f.loadTemplate(positionNumber, 0x01)
        if (positionNumber == -1):
            print('No match found! Try again')
            login()
        else:
            result = 1
            return (result)

    except Exception as e:
        print('Operation failed!')
        print('Exception message: ' + str(e))
        exit(1)
コード例 #26
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)
コード例 #27
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()
コード例 #28
0
ファイル: main0.py プロジェクト: BoCuoi98/example_fingerprint
def search():
    ## Tries to initialize the sensor
    f = PyFingerprint('COM6', 57600, 0xFFFFFFFF, 0x00000000)

    ## Gets some sensor information
    print('Currently used templates: ' + str(f.getTemplateCount()) + '/' +
          str(f.getStorageCapacity()))

    ## Tries to search the finger and calculate hash
    print('Waiting for finger...')

    ## Wait that finger is read
    while (f.readImage() == False):
        pass

    ## Converts read image to characteristics and stores it in charbuffer 1
    f.convertImage(FINGERPRINT_CHARBUFFER1)

    ## Searchs template
    result = f.searchTemplate()

    positionNumber = result[0]
    accuracyScore = result[1]

    if (positionNumber == -1):
        print('No match found!')
        exit(0)
    else:
        print('Found template at position #' + str(positionNumber))
        print('The accuracy score is: ' + str(accuracyScore))

        f = open('profiles/' + str(positionNumber) + '.txt',
                 'r',
                 encoding='UTF8')
        for line in f:
            print(line, end='')
        f.close()
コード例 #29
0
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()
コード例 #30
0
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))
    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())
    exit(0)

    print('Remove finger...')
    time.sleep(2)
コード例 #31
0
def pam_sm_authenticate(pamh, flags, argv):
    """
    PAM service function for user authentication.

    @param pamh
    @param flags
    @param argv

    @return int
    """

    ## The authentication service should return [PAM_AUTH_ERROR] if the user has a null authentication token
    flags = pamh.PAM_DISALLOW_NULL_AUTHTOK

    ## Initialize authentication progress
    try:
        ## Tries to get user which is asking for permission
        userName = pamh.ruser

        ## Fallback
        if ( userName == None ):
            userName = pamh.get_user()

        ## Be sure the user is set
        if ( userName == None ):
            raise UserUnknownException('The user is not known!')

        # Checks if path/file is readable
        if ( os.access(CONFIG_FILE, os.R_OK) == False ):
            raise Exception('The configuration file "' + CONFIG_FILE + '" is not readable!')

        configParser = ConfigParser.ConfigParser()
        configParser.read(CONFIG_FILE)

        ## Log the user
        auth_log('The user "' + userName + '" is asking for permission for service "' + str(pamh.service) + '".', syslog.LOG_DEBUG)

        ## Checks if the the user was added in configuration
        if ( configParser.has_option('Users', userName) == False ):
            raise Exception('The user was not added!')

        ## Tries to get user information (template position, fingerprint hash)
        userData = configParser.get('Users', userName).split(',')

        ## Validates user information
        if ( len(userData) != 2 ):
            raise InvalidUserCredentials('The user information of "' + userName + '" is invalid!')

        expectedPositionNumber = int(userData[0])
        expectedFingerprintHash = userData[1]

    except UserUnknownException as e:
        auth_log(str(e), syslog.LOG_ERR)
        return pamh.PAM_USER_UNKNOWN

    except InvalidUserCredentials as e:
        auth_log(str(e), syslog.LOG_ERR)
        return pamh.PAM_AUTH_ERR

    except Exception as e:
        auth_log(str(e), syslog.LOG_ERR)
        return pamh.PAM_IGNORE

    ## Initialize fingerprint sensor
    try:
        ## Gets sensor connection values
        port = configParser.get('PyFingerprint', 'port')
        baudRate = int(configParser.get('PyFingerprint', 'baudRate'), 10)
        address = int(configParser.get('PyFingerprint', 'address'), 16)
        password = int(configParser.get('PyFingerprint', 'password'), 16)

        ## Tries to init PyFingerprint
        fingerprint = PyFingerprint(port, baudRate, address, password)

        if ( fingerprint.verifyPassword() == False ):
            raise Exception('The given fingerprint sensor password is wrong!')

    except Exception as e:
        auth_log('The fingerprint sensor could not be initialized: ' + str(e), syslog.LOG_ERR)
        showPAMTextMessage(pamh, 'Sensor initialization failed!', True)
        return pamh.PAM_IGNORE

    if ( showPAMTextMessage(pamh, 'Waiting for finger...') == False ):
        return pamh.PAM_CONV_ERR

    ## Authentication progress
    try:
        ## Tries to read fingerprint
        while ( fingerprint.readImage() == False ):
            pass

        fingerprint.convertImage(0x01)

        ## Gets position of template
        result = fingerprint.searchTemplate()
        positionNumber = result[0]

        ## Checks if the template position is invalid
        if ( positionNumber == -1 ):
            raise Exception('No match found!')

        ## Checks if the template position is correct
        if ( positionNumber != expectedPositionNumber ):
            raise Exception('The template position of the found match is not equal to the stored one!')

        ## Gets characteristics
        fingerprint.loadTemplate(positionNumber, 0x01)
        characterics = fingerprint.downloadCharacteristics(0x01)

        ## Calculates hash of template
        fingerprintHash = hashlib.sha256(str(characterics)).hexdigest()

        ## Checks if the calculated hash is equal to expected hash from user
        if ( fingerprintHash == expectedFingerprintHash ):
            auth_log('Access granted!')
            showPAMTextMessage(pamh, 'Access granted!')
            return pamh.PAM_SUCCESS
        else:
            auth_log('The found match is not assigned to user!', syslog.LOG_WARNING)
            showPAMTextMessage(pamh, 'Access denied!', True)
            return pamh.PAM_AUTH_ERR

    except Exception as e:
        auth_log('Fingerprint read failed: ' + str(e), syslog.LOG_CRIT)
        showPAMTextMessage(pamh, 'Access denied!', True)
        return pamh.PAM_AUTH_ERR

    ## Denies for default
    return pamh.PAM_AUTH_ERR
コード例 #32
0
ファイル: UtilFingerprint.py プロジェクト: greencorecr/SIGUCA
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)
コード例 #33
0
ファイル: example_enroll.py プロジェクト: greencorecr/SIGUCA
## 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