コード例 #1
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')
コード例 #2
0
def register(id):
    #if current_user.is_authenticated:
    # return redirect(url_for('index'))
    try:
        f = PyFingerprint('COM6', 57600, 0xFFFFFFFF, 0x00000000)
        if (f.verifyPassword() == False):
            raise ValueError('The given fingerprint sensor password is wrong!')

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

    positionNumber = int(id)
    f.loadTemplate(positionNumber, 0x01)
    temm = f.downloadCharacteristics(0x01)
    tem = str(temm)

    form = RegistrationForm()
    if form.validate_on_submit():
        print("working")
        user = User(id=positionNumber,
                    phonenumber=form.phonenumber.data,
                    name=form.name.data,
                    email=form.email.data,
                    template=tem,
                    money=0)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Congratulations, you are now a registered user!')
        return render_template('booth_login_first.html')
    else:
        print(form.errors)
    return render_template('register.html', title='Register', form=form)
コード例 #3
0
def authenticate():

    far = [[0, 50, 100], [20, 0, 60], [150, 40, 0]]
    station_names = [
        'Uttara North', 'Uttara Centre', 'Uttara South', 'Pallabi',
        'Mirpur 11', 'Mirpur-10', 'Kazipara', 'Shewrapara', 'Agargaon',
        'Bijoy Sarani', 'Farmgate', 'Karwan Bazar', 'Shahbag',
        'Dhaka University', 'Bangladesh Secretariat', 'Motijheel'
    ]

    data = request.get_json()

    try:
        f = PyFingerprint('COM6', 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))
        data = {'s': 'Exception message: ' + str(e), 'bool_found': '0'}
        return json.dumps(data)

    try:

        data = request.get_json()
        chrr = json.loads(data)
        chr = chrr["tem"]
        c = list()
        for i in range(0, len(chr)):
            c.append(int(chr[i]))

        f.uploadCharacteristics(0x01, chr)
        result = f.searchTemplate()

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

        if (positionNumber == -1):
            #del f
            #f.__del__()
            print("ok1")
            data = {'s': 'No match found!', 'bool_found': '0'}
            #f.loadTemplate(0, 0x01)
            #result = f.searchTemplate()
            print("ok2")
            print('No match found!')
            data = {'s': 'No match found!', 'bool_found': '0'}
            # exit(0)
        else:
            #f.__del__()
            #del f
            print("first else")
            if (chrr["entry_exit"] == 0):
                f.loadTemplate(0, 0x01)
                result = f.searchTemplate()
                f.__del__()
                u = User.query.filter_by(id=positionNumber).first()

                exit_station_number = int(chrr["station_number"])
                exit_station_name = station_names[exit_station_number]
                exit_time = chrr["scaned_time"]
                date = chrr["date"]
                entry_station_name = station_names[u.start_station]

                db_start_station = int(u.start_station)

                try:

                    fa = int(
                        u.money) - far[db_start_station][exit_station_number]
                    u.money = fa
                    print(far)
                    info = User_travel_history(
                        date=str(date),
                        entry_station=entry_station_name,
                        exit_station=exit_station_name,
                        entry_time=u.entry_time,
                        fare=str(far[db_start_station][exit_station_number]),
                        exit_time=exit_time,
                        human=u)
                    db.session.add(info)
                    db.session.commit()
                    #print("hi")
                    print('Found template')
                    data = {
                        's':
                        'Found template at position #' + str(positionNumber),
                        'bool_found': '1'
                    }
                    # print('The accuracy score is: ' + str(accuracyScore))
                except Exception as e:
                    print('Exception message: ' + str(e))
                    data = {'s': 'No match found!', 'bool_found': '0'}

            if (chrr["entry_exit"] == 1):
                f.loadTemplate(0, 0x01)
                result = f.searchTemplate()
                f.__del__()
                u = User.query.filter_by(id=positionNumber).first()
                if (u.money > 70):
                    u.start_station = int(chrr["station_number"])
                    u.entry_time = chrr["scaned_time"]
                    db.session.commit()
                    data = {'s': 'Enough money', 'bool_found': '1'}
                else:
                    data = {'s': 'Insufficent balance !', 'bool_found': '0'}

        #f.loadTemplate(0, 0x01)
        #result = f.searchTemplate()

        #f.__del__()

    except Exception as e:
        f.__del__()
        print('Operation failed!')
        print('Exception message: ' + str(e))
        data = {'s': 'No match found!', 'bool_found': '0'}

    return json.dumps(data)