/** * 控制器文件 * 负责定期执行系统各驱动的循环操作,确保系统正常运行 */ import log from '../dxmodules/dxLogger.js' import std from '../dxmodules/dxStd.js' import face from '../dxmodules/dxFace.js' import bus from '../dxmodules/dxEventBus.js' import driver from './driver.js' /** * 运行控制器 * 设置多个定时器,定期执行不同的循环任务 */ function run() { // 每5ms执行一次主循环 std.setInterval(() => { try { driver.watchdog.feed("controller", 30) // 喂狗,设置30秒超时 loop() // 执行主循环 } catch (error) { log.error(error) // 记录错误 } }, 5) // 每500ms执行一次网络循环 std.setInterval(() => { try { driver.watchdog.feed("controller1", 30) // 喂狗,设置30秒超时 driver.net.loop() // 执行网络循环 } catch (error) { log.error(error) // 记录错误 } }, 500) // 每1000ms执行一次NTP循环 std.setInterval(() => { try { driver.watchdog.feed("controller2", 30) // 喂狗,设置30秒超时 driver.ntp.loop() // 执行NTP循环 } catch (error) { log.error(error) // 记录错误 } }, 1000) } /** * 启动控制器 */ try { run() } catch (error) { log.error(error) } /** * 主循环函数 * 执行各驱动的循环操作 */ function loop() { driver.capturer.loop() // 执行摄像头循环 driver.face.loop() // 执行人脸识别循环 driver.nfc.loop() // 执行NFC循环 driver.mqtt.heartbeat() // 执行MQTT心跳 driver.gpiokey.loop() // 执行GPIO按键循环 }