完成签约之后直接添加人员,录入下发凭证
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

107 lines
3.0 KiB

const STATE_WAIT_FINGER_DOWN = 1;
const STATE_WAIT_FINGER_LEAVE = 2;
const STATE_FINGER_DOWN = 3;
const STATE_FINGER_LEAVE = 4;
const STATE_EXTRACT_TEMPLATE = 5;
const STATE_DOWNLOAD_TEMPLATE = 6;
const STATE_EXTRACT_TEMPLATE_FAIL = 100;
const STATE_EXTRACT_TEMPLATE_DIRTY = 101;
const STATE_EXTRACT_TEMPLATE_POINTS_FEW = 102;
const STATE_EXTRACT_TEMPLATE_MERGE_FAIL = 103;
const ErrorReceiveDataErr = 1;
const ErrorEnrollTimeout = 2;
const ErrorDeviceNotFound = 3;
const ErrorEmptyFail = 4;
var mafp = {
isConnected: false,
ws: null,
enrollCount: 6,
enrollTimeout: 30 * 1000,
callback: null,
isWorking: false,
init(conf) {
if (conf && conf.enrollCount) {
this.enrollCount = conf.enrollCount;
}
if (conf && conf.enrollTimeout) {
this.enrollTimeout = conf.enrollTimeout;
}
return new Promise((resolve,reject) => {
var that = this;
if (this.isConnected) {
resolve();
return;
}
var timeout = setTimeout(() => {
if (!that.isConnected) {
reject("Connection timeout");
}
}, 2000)
var port = 9897;
var address = 'ws://localhost:' + port + '/';
that.ws = new WebSocket(address);
that.ws.addEventListener('open', function() {
that.isConnected = true;
if (timeout) {
clearTimeout(timeout);
timeout = 0;
}
resolve()
});
that.ws.addEventListener('close', function() {
console.log('Connection lost');
that.isConnected = false;
reject("Connection lost");
});
that.ws.addEventListener('message', function(e) {
let resp = JSON.parse(e.data);
if (that.callback) {
that.callback(resp);
if(resp.err || resp.data) {
that.isWorking = false;
that.callback = null;
}
}
});
});
},
_sendMessage(msg) {
this.ws.send(JSON.stringify(msg));
},
startEnroll(callback=((status, data)=>{})) {
this.callback = callback;
this.isWorking = true;
this.init().then(() => {
this._sendMessage({
cmd: "enrollStart",
config: {
enrollCount: this.enrollCount,
enrollTimeout: this.enrollTimeout
}
});
}).catch(err => {
this.callback = null;
this.isWorking = false;
callback({
err: err,
state: 0,
step:0
})
})
},
cancelEnroll() {
this.callback = null;
this.isWorking = false;
this._sendMessage({
cmd: "enrollCancel"
});
}
};