Skip to the content.

数据源与输出动作设计说明(嵌入式局域网优化版)

一、概述

本设计针对嵌入式设备在局域网环境运行的特点进行优化,主要目标:

  1. 去掉所有互联网依赖(云推送、外网告警)。
  2. 强化本地执行、南向控制、局域网内通信能力。
  3. 保证轻量化和嵌入式资源可控。
  4. 提供统一的可配置接口,支持 bbolt 本地存储缓存和离线重发机制。
  5. 前端页面需支持数据源和输出动作的配置、监控和操作。

数据流向(影子快照融合版): 南向采集模块 / 北向订阅 → 输入适配器 → Shadow Device(原子快照) → Snapshot Bus(合并/优先级) → 调度引擎 → 规则执行单元 → 结果处理器 → Workflow/Commit → 北向局域网输出 / 本地动作 / 南向控制


二、数据源页面设计优化

1. 数据源列表视图

显示字段:

字段 描述 可操作性
数据源ID 系统唯一标识 不可修改
数据源名称 用户自定义名称 可编辑
数据源类型 南向采集(影子设备) / 北向订阅(局域网内) 可筛选
快照版本 最新 Snapshot Version 可刷新
快照延迟 Snapshot Bus P95 延迟 监控指标
Commit计数 差量 Commit 次数 可查看
协议类型 Modbus/BACnet/OPC UA/MQTT(局域网Broker) 不可修改
状态 在线 / 离线 / 异常 高亮异常
最新数据时间 最近采集时间 可刷新
数据质量 正常 / 异常 / 丢失 / 超时 颜色区分
订阅规则数 被多少规则共享 支持跳转规则列表

交互功能:


2. 数据源详细页

详细信息展示:

  1. 基本信息

    • 数据源ID / 名称 / 类型 / 协议 / 连接参数
    • 局域网 IP / 端口 / 通信状态
  2. 实时数据

    • 最新采集值 / 时间戳 / 数据质量 / Snapshot Version(组完成后递增)
    • 历史数据趋势图(折线图/表格)
  3. 共享源订阅规则

    • 当前订阅规则列表
    • 规则状态(启用 / 停用)
    • 可跳转编辑规则
  4. 缓存与分发信息

    • 缓存使用率(环形/条形图)
    • Snapshot Bus 分发延迟(P95/P99)与队列深度
    • 合并窗口(window_ms)与优先级(Pack 高优先)
    • 去重与丢弃次数(去抖动生效)
  5. 操作按钮

    • 测试连接 / 立即采集
    • 启停数据源
    • 调整缓存策略
    • 异常清理(丢弃或重试缓存)

三、输出动作优化(嵌入式局域网版)

1. 总体原则

  1. 局域网优先:所有输出动作只在局域网内执行,不依赖互联网。
  2. 接口统一化:动作接口抽象化,可动态选择通道、设备及点位。
  3. 动作配置化:动作类型、目标、数据格式、触发条件可在前端配置。
  4. 可重试与容错:失败动作缓存至本地数据库(bbolt),支持重发。
  5. 轻量与稳定:异步执行、批量优化、资源可控。
  6. 触发源约束:北向发布只由 Points Commit 触发;规则只消费 OnSnapshot(不直接监听点位)。

2. 输出动作类型及优化细节

2.1 北向局域网上报(局域网内数据分发)

类型 优化设计
MQTT(局域网Broker) - QoS 0/1/2
- 支持主题模板(${SourceID}/${Metric})
- 支持批量/实时发送
- 支持离线缓存重发
- 支持局域网 IP 白名单
WebSocket(局域网内) - 单条或批量发送
- 连接状态监控
- 异常重连策略
- 可选心跳机制维持长连接

前端配置项:

优化要点:


2.2 本地动作(嵌入式设备内部处理)

类型 优化设计
本地日志 - 支持日志级别
- 按规则生成单独日志文件
- 支持轮转与归档
数据库存储 - 使用轻量嵌入式数据库 bbolt
- 批量写入,异步操作
- 数据过期清理策略
文件缓存 - CSV/JSON 文件
- 支持断电/断网续存
- 文件大小和数量可配置

前端配置项:

优化要点:


2.3 南向控制动作(局域网设备控制)

类型 优化设计
设备控制 - 支持 Modbus/BACnet 等局域网协议
- 支持批量/单点指令下发
- 支持执行结果回调
- 支持失败重试与告警
子系统联动 - 局域网内联动空调/照明/门禁等
- 支持条件触发
- 支持多目标动作顺序配置

前端配置项:

优化要点:


2.4 动作触发策略与组合


3. 输出动作通用优化策略

  1. 统一动作管理:规则配置页统一管理所有动作,支持启停和优先级设置
  2. 异步执行与线程池:确保高频数据流时系统稳定
  3. 失败处理策略:入队列重试、失败记录、UI 告警
  4. 批量优化:支持批量发送 / 批量写入 / 批量控制,降低 CPU 和 I/O 压力
  5. 可监控性:统计成功率、延迟、失败次数,并提供前端仪表盘
  6. 来源一致性:所有北向发布与页面展示统一从 Points Commit / Snapshot Bus 消费,避免直接点位驱动

五、配置示例(快照与输出动作)

# system.yaml(节选)

snapshot_bus:
  window_ms: 250
  queue_capacity: 10000
  async: true
  priority:
    pack: high
    cell: normal

rule_engine:
  thread_pool:
    size: 32
    max_queue: 5000

points_commit:
  differential: true

outputs:
  mqtt:
    enabled: true
    qos: 1
    topic_template: "${SourceID}/${Metric}"
    retry:
      max_attempts: 5
      backoff_ms: 500

4. 数据可靠性与容错