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()
示例#2
0
    ## Creates a template
    f.createTemplate()

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

    finger_position = str(positionNumber)
    firstname = raw_input('first name: ')
    lastname = raw_input('last name: ')
    now = datetime.now()
    saveddate = now.strftime('%Y/%m/%d-%H:%M')

    try:
        f = open("/project/files/users.txt", "a")
    	person = finger_position + "," + firstname + "," + lastname + "," + saveddate + ",0\n"
    	print(person)
    	f.write(person)
    	f.close()
    except Exception as e:
        raise


    print("saved")

except Exception as e:
    print('Operation failed!')
    print('Exception message: ' + str(e))
    exit(1)
    lcd.clear()
    lcd.message("Retire o dedo\n")
    lcd.message("do sensor 3/3")
    time.sleep(2)

    print('Aguarde o final da operacao...')
    lcd.clear()
    lcd.message("Aguarde ...")

    imageDestination = tempfile.gettempdir() + '/fingerprint.bmp'
    f.downloadImage(imageDestination)

    #print('The image was saved to "' + imageDestination + '".')

    ####################################################################

    print('Digital cadastrada com sucesso.')
    print('Nova digital cadastrada na posicao #' + str(positionNumber))
    lcd.clear()
    lcd.message("Digital Salva\n")
    lcd.message("na posicao " + str(positionNumber))

    f = open("position.txt", "w")
    f.write(str(positionNumber))
    f.close()

except Exception as e:
    print('Operation failed!')
    print('Exception message: ' + str(e))
    exit(1)
    if (positionNumber == -1):
        print('No match found!')
        print('========== [Start] _ Enroll Mode ==========')
        set_mode = 0

        ## Creates a template
        f.createTemplate()

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

        path = 'list.txt'
        with open(path, mode='w') as f:
            f.write(str(set_mode) + '\n' + str(positionNumber))
        f.close()

        exit(0)
        print('========== [End] _ Enroll Mode ==========')

    ## delete mode
    else:
        print('********** [Start] _ Delete Mode **********')
        set_mode = 1

        print('Found template at position #' + str(positionNumber))
        print('The accuracy score is: ' + str(accuracyScore))

        if (f.deleteTemplate(positionNumber) == True):
            print('Template deleted!')