import log from '../dxmodules/dxLogger.js' import bus from '../dxmodules/dxEventBus.js' import pool from '../dxmodules/dxWorkerPool.js' import config from '../dxmodules/dxConfig.js' import faceService from './service/faceService.js' import mqttService from './service/mqttService.js' import accessService from './service/accessService.js' import nfcService from './service/nfcService.js' import gpiokeyService from './service/gpiokeyService.js' import configService from './service/configService.js' import uartBleService from './service/uartBleService.js' import uartCodeService from './service/uartCodeService.js' import fingerService from './service/fingerService.js' import driver from './driver.js' import codeService from './service/codeService.js' pool.callback((data) => { try { let topic = data.topic let msg = data.data switch (topic) { case "bleCallback": uartBleService.receiveMsg(msg) break; case "recognition": faceService.receiveMsg(msg) break; case driver.gpiokey.RECEIVE_MSG: gpiokeyService.receiveMsg(msg) break; case "setConfig": configService.configVerifyAndSave(msg) break; case "access": accessService.access(msg.data, msg.fileName, msg.similarity) break; case driver.nfc.NFC_CARD_RECEIVE: case driver.nfc.EID_RECEIVE: if (config.get('sys.nfc')) { bus.fire("resetTimers") nfcService.receiveMsg(msg) } break; case driver.mqtt.CONNECTED_CHANGED: // TODO 最好不要在services内直接bus.fire,尝试简化链路 bus.fire("mqttStatus", msg) if (msg == "connected") { mqttService.report() } break; case driver.mqtt.RECEIVE_MSG: mqttService.receiveMsg(msg) break; case driver.uartCode.RECEIVE_MSG: bus.fire("resetTimers") uartCodeService.receiveMsg(msg) break; case "code": codeService.code(msg) break; case driver.finger.RECEIVE_MSG: bus.fire("resetTimers") fingerService.receiveMsg(msg) break; default: log.error("No such topic ", topic) break; } } catch (error) { log.error(error) } })