/**
|
* 服务池配置文件
|
* 注册系统中所有服务的事件处理回调,处理来自各模块的事件
|
*/
|
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;
|
}
|
})
|