import logger from '../dxmodules/dxLogger.js'
|
import std from '../dxmodules/dxStd.js'
|
import driver from './driver.js'
|
import dxDriver from '../dxmodules/dxDriver.js'
|
import dxMap from '../dxmodules/dxMap.js'
|
import bus from '../dxmodules/dxEventBus.js'
|
|
let count = 0
|
function run() {
|
driver.face.init()
|
driver.watchdog.enable(driver.watchdog.CONTROLLER_WORKER, true)
|
setCallbacks()
|
events()
|
std.setInterval(() => {
|
try {
|
driver.watchdog.restart(driver.watchdog.CONTROLLER_WORKER)
|
loop()
|
} catch (error) {
|
logger.error(error)
|
}
|
}, 20)
|
}
|
|
try {
|
run()
|
} catch (error) {
|
logger.error(error)
|
}
|
|
function loop() {
|
if (dxDriver.DRIVER.MODEL != "vf105" || std.loadFile('/etc/app/nfc.conf')) {
|
driver.nfc.loop()
|
}
|
driver.gpiokey.loop()
|
driver.face.loop()
|
if (!driver.device.finger && (dxDriver.DRIVER.MODEL == "vf105" || dxDriver.DRIVER.MODEL == "vf114")) {
|
driver.uartCode.loop()
|
}
|
if (dxDriver.DRIVER.MODEL == "vf202") {
|
driver.uartBle.loop()
|
}
|
getTrackingBox()
|
if(count++ == 80 && driver.device.finger){
|
driver.finger.loop()
|
count = 0
|
}
|
}
|
|
let oldData = ''
|
function getTrackingBox() {
|
let event = driver.face.getTrackingBox();
|
const mapUI = dxMap.get("UI")
|
if (event && event.length > 0) {
|
let newData = JSON.stringify(event)
|
if (newData !== oldData) {
|
oldData = newData
|
bus.fire("trackingBox", newData)
|
if (mapUI.get("isScreenOff") || mapUI.get("isScreenSaver")) {
|
bus.fire("resetTimers")
|
}
|
}
|
}
|
}
|
|
function setCallbacks() {
|
driver.gpiokey.setCallbacks({
|
onKeyEvent: (event) => {
|
bus.fire(driver.gpiokey.RECEIVE_MSG, event)
|
}
|
});
|
if (!driver.device.finger && (dxDriver.DRIVER.MODEL == "vf105" || dxDriver.DRIVER.MODEL == "vf114")) {
|
driver.uartCode.setCallbacks({
|
onMessage: (event) => {
|
bus.fire(driver.uartCode.RECEIVE_MSG, event)
|
}
|
});
|
}
|
driver.face.setCallbacks({
|
onRecognition: (event) => {
|
bus.fire("recognition", event)
|
}
|
});
|
if (dxDriver.DRIVER.MODEL == "vf202") {
|
driver.uartBle.setCallbacks({
|
//透传数据回调
|
onMessage: (event) => {
|
bus.fire("bleCallback", event)
|
},
|
//连接成功回调
|
onConnectSuccess: function (connId) {
|
let map = dxMap.get("connId")
|
map.put("connId", connId)
|
}
|
})
|
}
|
}
|
|
function events() {
|
// 监听获取特征值事件
|
bus.on("getFeaByCapStart", (timeout) => {
|
try {
|
std.setTimeout(() => {
|
driver.face.status(1)
|
let res = driver.face.getFeaByCap(timeout)
|
driver.face.status(0)
|
if (res) {
|
bus.fire("getFeaByCapEnd", res)
|
}
|
}, 1500);
|
} catch (error) {
|
logger.error(error)
|
bus.fire("getFeaByCapEnd", null)
|
driver.face.status(0)
|
}
|
})
|
}
|