UNPKG

icu-connect

Version:

connect and run Innovative Technology ICU™ device

100 lines (70 loc) 2.48 kB
const icu = require("./icu"); var EventEmitter = require('events'); var evObj = new EventEmitter(); var session_start = false; var sys_op = { 'rate':100 } function Enroll(data){ icu.EnrollData(data) } function SetOptions(options) { if(options !== undefined){ //forward options to ICU icu.SetOptions(options); } } function Run(options) { SetOptions(options) setInterval(function(){ icu.SetState(function(data){ if(data != undefined){ if('device_connected' in data){ if(data.device_connected){ evObj.emit('connected',data.device_data) }else{ evObj.emit('disconnected') } } if('device_state' in data){ evObj.emit('device_state',data) } if('face_saved' in data){ evObj.emit('face_saved',data['face_saved']) } if(session_start && 'age' in data && 'uid' in data && data.uid === 'none'){ var c_data = { 'estimated_age':data.age, 'captured_image':data.image, 'feature':data.feature } evObj.emit('age',c_data) } if(session_start && 'uid' in data && data.uid !== 'none'){ var c_data = { 'estimated_age':data.age, 'captured_image':data.image, 'uid':data.uid, 'database_image':data.record_image } evObj.emit('uid',c_data) } if(session_start == false && data.session){ evObj.emit('sessionstart',data) session_start = true }else if(session_start == true && !data.session){ evObj.emit('sessionend',data) session_start = false } } }) },sys_op.rate) } module.exports = { run:Run, icu:evObj, enroll:Enroll, set_options:SetOptions }