跨平台边缘节点 (Go) 开发 TODO 计划与差异分析

基于对遗留 C# 色谱工作站项目(IBrainChrom2018)的全面代码检索与功能分析,现将旧系统中的所有功能模块与新重构的 Go 边缘节点(src/edge/)目前已实现的功能进行对比,并整理出后续开发的 TODO 计划。

1. 核心状态评估

  • 当前 Go 项目定位:目前 edge 节点主要作为轻量级数据采集与简单在线分析网关。目前已经跑通了底层 TCP 通讯、基础 Modbus/MQTT 上报、前端 Canvas 实时波形展示、非甲烷总烃/BTEX的分析计算逻辑、断点续传(虚拟屏幕架构)、以及硬件控制下发。
  • 与 C# 的差距:C# 版本是一个功能大而全的实验室级别色谱工作站 (CDS),包含了复杂的多阶程序升温、自动校准序列表、DevExpress 复杂富文本报表、手动拖拽基线切割以及合规的审计追踪。

2. 功能模块对比与 TODO 清单

2.1 基础通讯与采集 (Collector)

功能点遗留 C# 状态当前 Go 状态差异与 TODO 规划
底层 TCP 连接完整,支持自动重连和心跳已实现-
实时信号采集解析 143/159 命令,支持多通道已实现-
进样时间控制基于计时器和状态机的复杂时序控制已实现基础的 AcqMinCycleMin 循环控制。
断点续传/自动恢复有完整的意外断电恢复逻辑已实现确立了虚拟屏幕(状态机)架构,前后端分离,前端随时刷新瞬间恢复波形与最新结果快照。
多通道协同支持 FID, TCD, FPD 等多检测器协同部分实现TODO (P2): 完善多检测器信号的分通道独立解析与多通道并发存储机制。

2.2 硬件反控 (Control)

功能点遗留 C# 状态当前 Go 状态差异与 TODO 规划
恒温控制 (Temp)支持 6 路温度设定与保护,可自由开启关闭已实现支持 Cmd 8 (下发温度) 与 Cmd 16/17 (启停控温)。
气路控制 (EPC)支持全套 EPC/AFC 参数读取、设定与气体切换已实现气路压力配置与下发逻辑 (Cmd 33/34)。
点火与检测器完整的 FID 自动点火、量程控制已实现支持点火下发 (Cmd 20/21) 和状态监听。
外部事件/多位阀阀切换、外部事件时间程序下发已实现支持外部事件时间表下发 (Cmd 10)。
程序升温 (ProgTemp)支持多阶梯程序升温表未实现TODO (P3): 后续若非在线监测单一恒温场景,需增加程序升温多阶列表的下发机制。

2.3 分析内核 (Analyzer)

功能点遗留 C# 状态当前 Go 状态差异与 TODO 规划
峰识别与积分强大的算法:重叠峰切割、拖尾处理、自动平滑已实现实现了基础平滑、极值点寻峰、绝对峰高过滤、前后水平切割等自动基线逻辑。
峰分组 (PeakGroup)支持将多个相近的峰作为一个总组分进行计算已实现支持虚拟组分计算(如 NMHC = THC - CH4)。
校准曲线 (Cali)内/外标法,多等级多项式拟合,自动校准序列已实现实现了完整的分析方法模型(支持外标单点/多点校准曲线)。
复杂基线手动处理垂直切割、切线撇去、手动拖拽基线未实现TODO (P3): 前端增加交互式积分事件,支持拖拽基线,满足人工复核需求。
特定行业算法煤矿爆炸极限、VOC 专项计算等已实现VOCTODO (P3): 根据实际部署需求迁移特定的行业报表算法。

2.4 数据存储与报表 (Storage & Report)

功能点遗留 C# 状态当前 Go 状态差异与 TODO 规划
本地数据存储完善的 SQLite 数据库,图谱保存为二进制专有格式已实现引入 modernc.org/sqlite 管理历史结果,波形采用开放的 JSONL 扁平存储。
报表导出 (CSV)Excel 报表输出已实现支持查询并导出 CSV 报表。
高级报表打印 (PDF)DevExpress 复杂 PDF 打印未实现TODO (P3): 在前端增加基于 HTML/Canvas 的打印预览页或后端生成 PDF 功能。
审计与权限GXP 规范的审计追踪日志、多级权限TODO (P3): 如有实验室合规需求,需加入用户登录及操作审计日志记录。

2.5 边缘网关 (Edge Gateway)

功能点遗留 C# 状态当前 Go 状态差异与 TODO 规划
Modbus Slave支持标准及自定义帧,寄存器映射已实现寄存器 800 起 12 寄存器存 ASCII ID,并支持计算结果实时写入 (100/102/104等)。
MQTT Telemetry基于 C# 简单推送已实现Paho MQTT 框架已建立,支持推送遥测与分析结果至 EMQX/Elasticsearch。
断网续传上云本地缓存机制未实现TODO (P2): 完善 MQTT 断网时的本地历史缓存队列,网络恢复后断点续传。

3. 遗留任务与优先级建议 (Remaining Tasks)

目前系统已经完成了从底层通信到前端交互、从数据采集到结果出数的全流程 MVP 闭环。以下为针对后续完善和商用化的开发建议:

  1. P2 (业务刚需 - 紧随其后)

    • 完善 MQTT 断网续传:优化 MQTT 发布失败时的本地队列缓存逻辑,确保边缘侧网络异常恢复后历史数据能完整上报至云端。
    • 多检测器独立通道处理:如果同一设备外接多通道(如 TCD 和 FID 同时进样),需要完善后端的通道切分(Channel 1/2/3)与独立分析处理。
  2. P3 (完善体验 - 后期迭代)

    • 高级程序升温下发:补充 Cmd 报文解析与前端界面交互,下发复杂的柱温箱多阶程序升温指令。
    • 手动基线积分交互:在前端“谱图处理”页面引入交互操作,允许用户手动切分重叠峰、拉基线,重算结果。
    • PDF/打印报表:开发原生前端网页打印功能(window.print 结合 @media print),代替旧版的 DevExpress 报表。
    • 合规与权限系统:如有环保合规或 GXP 需求,引入用户登录鉴权和操作审计日志追踪。

4. 高级项目管理与文档同步规范 (过程裁剪)

为了保证项目的可持续迭代,并在每个里程碑后能够进行有效的项目复盘 (Retrospective),我们将采用裁剪后的高级项目管理流程,确保核心过程文档与代码同步输出:

4.1 必需的过程文档清单 (存放于 docs/ 目录)

  1. API 接口契约文档 (API_DESIGN.md)
    • 记录前后端交互的 RESTful API 和 SSE 数据结构规范。
  2. 核心数据结构设计 (DATA_SCHEMA.md)
    • 记录存储于 SQLite 或 JSON 中的核心模型,如 Method (分析方法)、Calibration (校准曲线)、Result (分析结果) 的实体关系。
  3. 测试报告与复盘记录 (SPRINT_RETROSPECTIVE.md)
    • 记录每个阶段完成后的测试通过情况、硬件联调问题(如通讯延时、状态机死锁)以及架构演进心得。