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