/** * 服务池配置文件 * 注册系统中所有服务的事件处理回调,处理来自各模块的事件 */ import pool from '../dxmodules/dxWorkerPool.js' import face from '../dxmodules/dxFace.js' import driver from './driver.js' import bus from '../dxmodules/dxEventBus.js' import faceService from './service/faceService.js' import net from '../dxmodules/dxNet.js' import config from '../dxmodules/dxConfig.js' import nfc from '../dxmodules/dxNfc.js' import mqtt from '../dxmodules/dxMqtt.js' import map from '../dxmodules/dxMap.js' import mqttService from './service/mqttService.js' import accessService from './service/accessService.js' import nfcService from './service/nfcService.js' import common from '../dxmodules/dxCommon.js' import log from '../dxmodules/dxLogger.js' import dxGpioKey from '../dxmodules/dxGpioKey.js' import uart from '../dxmodules/dxUart.js' import uart485Service from './service/uart485Service.js' import configService from './service/configService.js' import grainService from './service/grainService.js' import gpiokeyService from './service/gpiokeyService.js' import codeService from './service/codeService.js' /** * 服务池回调函数 * 处理来自各模块的事件消息,根据事件主题分发到相应的服务处理 * @param {object} data - 事件数据 * @param {string} data.topic - 事件主题 * @param {any} data.data - 事件数据 */ pool.callback((data) => { let topic = data.topic let msg = data.data switch (topic) { case face.RECEIVE_MSG: // 处理人脸识别消息 faceService.receiveMsg(msg) break; case dxGpioKey.RECEIVE_MSG: // 处理GPIO按键消息 gpiokeyService.receiveMsg(msg) break; case "netGetWifiSsidList": // 获取WiFi列表 let wifiList = driver.net.netGetWifiSsidList() bus.fire("netWifiSsidList", wifiList) break; case "switchNetworkType": // 切换网络类型 config.setAndSave("net.type", msg) console.log("切换网络", msg); driver.net.changeNetType() break; case "setConfig": // 配置验证和保存 configService.configVerifyAndSave(msg) break; case "access": // 处理通行验证 accessService.access(msg.data, msg.fileName, msg.similarity) break; case nfc.RECEIVE_MSG: // 处理NFC卡片消息 nfcService.receiveMsg(msg) break; case net.STATUS_CHANGE: // 网络状态变化 map.get("NET").put("status", msg.status) bus.fire("netStatus", msg) break; case mqtt.CONNECTED_CHANGED: // MQTT连接状态变化 bus.fire("mqttStatus", msg) // mqtt连接上报 if (msg == "connected") { mqttService.report() } break; case mqtt.RECEIVE_MSG: // 处理MQTT消息 mqttService.receiveMsg(msg) break; case uart.VG.RECEIVE_MSG + driver.uart485.id: // 处理UART485指令消息 uart485Service.receive(msg, 'instruction') break; case uart.VG.RECEIVE_MSG + driver.uartCode.id: // 处理UART码消息 uart485Service.receive(msg, 'code') break; case "getCode": // 处理条码数据 codeService.code(msg) break; case "trackResult": // 处理人脸识别结果事件(由mainView.js处理) break; default: // 未知主题 log.error("No such topic ", topic) break; } })