return function check(callback) { fps.checkEnrolled(ID).then(function() { callback(null, true); }, function(err) { if (err == fps.NACK_IS_NOT_USED) { callback(null, false); } else { callback(fps.decodeError(err)); } }); };
stdin.on('data', function(key) { if (key == '0') { if (isInit) { fps.close().then(function() { console.log('close OK!'); exit(); }, function(err) { console.log('close err: ' + fps.decodeError(err)); fps.closePort(); exit(); }); } else { fps.closePort(); exit(); } } else if (key == '1') { fps.ledONOFF(1).then(function() { console.log('ledON: OK!'); }, function(err) { console.log('ledON error: ' + fps.decodeError(err)); }); } else if (key == '2') { fps.ledONOFF(0).then(function() { console.log('ledOFF: OK!'); }, function(err) { console.log('ledOFF error: ' + fps.decodeError(err)); }); } else if (key == '3') { var functionList = []; for (var i = 0; i < 200; i++) { var fun = function(ID) { return function check(callback) { fps.checkEnrolled(ID).then(function() { callback(null, true); }, function(err) { if (err == fps.NACK_IS_NOT_USED) { callback(null, false); } else { callback(fps.decodeError(err)); } }); }; }; functionList.push(fun(i)); } fps.getEnrollCount().then(function(count) { console.log('getEnrollCount count: ' + count); async.series(functionList, function(err, results) { if (err) { console.log('checkEnrolled list error: ' + fps.decodeError(err)); } else { for (var i = 0; i < results.length; i++) console.log('[' + i + '] ' + (results[i] ? 'USED' : 'EMPTY')); } }); }, function(err) { console.log('getEnrollCount error: ' + fps.decodeError(err)); }); } else if (key == '4') { fps.checkEnrolled(ID_TO_USE).then(function() { console.log('checkEnrolled: ' + ID_TO_USE + ' is enrolled!'); }, function(err) { console.log('checkEnrolled error: ' + fps.decodeError(err)); }); } else if (key == '5') { fps.enrollStart(ID_TO_USE).then(function() { console.log('enrollStart: ' + ID_TO_USE + ' enroll started!'); }, function(err) { console.log('enrollStart error: ' + fps.decodeError(err)); }); } else if (key == '6') { fps.enroll1().then(function() { console.log('enroll1 OK!'); }, function(err) { console.log('enroll1 error: ' + fps.decodeError(err)); }); } else if (key == '7') { fps.enroll2().then(function() { console.log('enroll2 OK!'); }, function(err) { console.log('enroll2 error: ' + fps.decodeError(err)); }); } else if (key == '8') { fps.enroll3().then(function() { console.log('enroll3 OK!'); }, function(err) { console.log('enroll3 error: ' + fps.decodeError(err)); }); } else if (key == '9') { fps.isPressFinger().then(function() { console.log('isPressFinger: pressed!'); }, function(err) { console.log('isPressFinger err: ' + fps.decodeError(err)); }); } else if (key == 'q') { fps.waitReleaseFinger(8000).then(function() { console.log('waitReleaseFinger: released!'); }, function(err) { console.log('waitReleaseFinger err: ' + fps.decodeError(err)); }); } else if (key == 'w') { fps.waitFinger(8000).then(function() { console.log('waitFinger: pressed!'); }, function(err) { console.log('waitFinger err: ' + fps.decodeError(err)); }); } else if (key == 'e') { fps.enroll(ID_TO_USE).then(function() { console.log('enroll: enrolled!'); }, function(err) { console.log('enroll err: ' + fps.decodeError(err)); }); } else if (key == 'r') { fps.deleteID(ID_TO_USE).then(function() { console.log('deleteID: ' + ID_TO_USE + ' deleted!'); }, function(err) { console.log('deleteID err: ' + fps.decodeError(err)); }); } else if (key == 't') { fps.deleteAll().then(function() { console.log('deleteAll: OK!'); }, function(err) { console.log('deleteAll err: ' + fps.decodeError(err)); }); } else if (key == 'y') { fps.verify(ID_TO_USE).then(function() { console.log('verify: ' + ID_TO_USE + ' verified!'); }, function(err) { console.log('verify err: ' + fps.decodeError(err)); }); } else if (key == 'u') { fps.captureFinger(0) .then(function() { return fps.identify(); }) .then(function(ID) { console.log("identify: ID = " + ID); }, function(err) { console.log("identify err: " + fps.decodeError(err)); }); } else if (key == 'i') { var readStream = fs.createReadStream(TEMPLATE_PATH + '/template_' + ID_TO_USE + '.tpl'); readStream.on('data', function(template) { fps.verifyTemplate(ID_TO_USE, template).then(function() { console.log('verifyTemplate: ' + ID_TO_USE + ' template verified!'); }, function(err) { console.log('verifyTemplate err: ' + fps.decodeError(err)); }); }); } else if (key == 'o') { var readStream = fs.createReadStream(TEMPLATE_PATH + '/template_' + ID_TO_USE + '.tpl'); readStream.on('data', function(template) { fps.identifyTemplate(template).then(function(ID) { console.log('identifyTemplate: ID = ' + ID); }, function(err) { console.log('identifyTemplate err: ' + fps.decodeError(err)); }); }); } else if (key == 'p') { fps.captureFinger().then(function() { console.log('captureFinger: OK!'); }, function(err) { console.log('captureFinger err: ' + fps.decodeError(err)); }); } else if (key == 'a') { fps.makeTemplate().then(function(template) { TEMPLATE = new Buffer(template); console.log('makeTemplate: [' + template.length + '] ' + (new Buffer(template)).toString('hex')); var templateFile = TEMPLATE_PATH + '/template_custom' + '.tpl'; fs.writeFile(templateFile, template, function(err) { if (err) { console.log('getTemplate err: ' + fps.decodeError(err)); } else { console.log('getTemplate: template saved! [' + templateFile + ']'); } }); }, function(err) { console.log('makeTemplate err: ' + fps.decodeError(err)); }); } else if (key == 's') { fps.getImage().then( function(image) { console.log('getImage: [' + image.length + '] ' + (new Buffer(image)).toString('hex')); var imageFile = IMAGE_PATH + '/image' + '.tpl'; fs.writeFile(imageFile, image, function(err) { if (err) { console.log('getImage err: ' + fps.decodeError(err)); } else { console.log('getImage: image saved! [' + imageFile + ']'); } }); }, function(rawImage) { console.log('getImage err: ' + fps.decodeError(err)); } ); } else if (key == 'd') { fps.getRawImage().then( function(rawImage) { console.log('getRawImage: [' + rawImage.length + '] ' + (new Buffer(rawImage)).toString('hex')); var imageFile = IMAGE_PATH + '/rawImage' + '.tpl'; fs.writeFile(imageFile, rawImage, function(err) { if (err) { console.log('getRawImage err: ' + fps.decodeError(err)); } else { console.log('getRawImage: image saved! [' + imageFile + ']'); } }); }, function(err) { console.log('getRawImage err: ' + fps.decodeError(err)); } ); } else if (key == 'f') { fps.getTemplate(ID_TO_USE).then( function(template) { TEMPLATE = new Buffer(template); console.log('getTemplate: ID = ' + ID_TO_USE + ' [' + template.length + '] ' + (new Buffer(template)).toString('hex')); var templateFile = TEMPLATE_PATH + '/template_' + ID_TO_USE + '.tpl'; fs.writeFile(templateFile, template, 'binary', function(err) { if (err) { console.log('getTemplate err: ' + fps.decodeError(err)); } else { console.log('getTemplate: template saved! [' + templateFile + ']'); } }); }, function(err) { console.log('getTemplate err: ' + fps.decodeError(err)); } ); } else if (key == 'g') { var readStream = fs.createReadStream(TEMPLATE_PATH + '/template_' + ID_TO_USE + '.tpl'); readStream.on('data', function(template) { fps.setTemplate(ID_TO_USE, template).then( function() { console.log('setTemplate: ID = ' + ID_TO_USE + ' OK!'); }, function(err) { console.log('setTemplate err: ' + fps.decodeError(err)); } ); }); } else if (key == 'z') { fps.init().then( function() { isInit = true; console.log('init: OK!'); setTimeout(function() { console.log('init: OK1!'); fps.ledONOFF(1); setTimeout(function() { fps.ledONOFF(0); }, 1000); }, 1000); }, function(err) { console.log('init err: ' + fps.decodeError(err)); } ); } else if (key == 'b') { fps.changeBaudRate(9600).then( function() { console.log('changeBaudRate: OK!'); }, function(err) { console.log('changeBaudRate err: ' + fps.decodeError(err)); } ); } else if (key == 'h') { printHelp(); } });