状态:需求梳理,2026-09-30;2026-10-16 补充双环境需求、文件获取方式和 FR-06 操作方式。本文记录目标能力与待确认的产品口径,不将协议描述中的未验证字段写为已确认需求。协议证据见 protocol-observations.md,当前实现见 implementation-status.md。
目标是在 repositories/mqtt 对接设备故障录波协议,使以下操作可以直接通过 MQTT 完成,减少对 FWH API 的依赖:
本工具负责向设备发送请求并监听设备上传;对 379 的应答和录波文件上传由 FWH 平台自动完成,本工具不重复应答。录波文件的触发和状态跟踪走 MQTT,文件本身仍从 FWH 平台的 hes-upload 下载。
以上能力需同时支持测试服和生产服(见 FR-05)。这里的“子设备”至少需要明确所在网关、设备类型和设备 SN。现有样本只有 aGate,且网关 SN 与 info.sn 相同;真正子设备的寻址方式待实测。
本需求描述独立的 MQTT 能力。现有 DataDownload 的故障录波任务、日期固化和文件归档规则继续由其文档定义;是否接入新 MQTT 能力需单独设计。
已确定:开放 code=1~3,按字段显示原始值,可展开原始 hexData;页面见 ui-design.md。code 集合(1~3)及含义已由 FaultFilter_MQTT协议文档 定义;单条记录的故障数据和波形数据不属于实时数据查询,归入 FR-02。
同一次请求包含多个记录时,应能看到每个记录的结果,避免把部分成功显示为全部成功。
状态应覆盖“设备已应答”“记录已就绪(379)”“平台开始上传(607)”“上传完成(609)”“已下载”,以及每个阶段的失败或超时。
获取到的压缩包应解析出故障数据和波形数据供查看:基本信息、快照通道、多通道波形(原始值),见 ui-design.md。
导出:用户可任选原始压缩包或 CSV。
已确定:每个设备每次获取 1 条记录;导出原始压缩包或 CSV;导出不设权限;暂不清理。按 FaultFilter 文档,记录列表来自 cmd=0, code=3 目录,记录序号即目录项索引;每条记录生成 failuredata 与 waveformdata 两个文件,设备每次获取记录前会清空历史文件。文件由平台上传后,按 https://<环境域名>/hes-upload/v1/file/download/logger/<equipNo>/<文件名>.tar.bz2 下载。功能统一称为“故障录波”。
已确定:开放功能码 2、4、5、6、7(1、3 为动作,无可读状态);显示原始十六进制,协议已定义结构的同时显示解读。按 FaultFilter 文档,查询指令为 cmd=3,idList 可一次填多个功能码(1~7),返回 idInfo[].idData 十六进制,结构参照对应功能码的设置参数;经外层转发的实际报文待实测。
已确定:提交前弹窗确认,危险操作醒目标注;以 379 逐项 resultOne 判定结果,可选设置后自动复读。仍待实测:378 与 379(cmd=1) 的实际报文。按 FaultFilter 文档,参数 ID 实为功能码,各功能码的 setVal 字节结构已定义;逐项结果为 setResultList[].resultOne,整体 result 为 ok/error。
busy 时,明确提示用户,不自动重试。cmd=4(退出)结束当前处理。code/index/参数 ID,以及设备返回的原始结果,便于排查请求与上传不一致的问题。| 功能 | 必须取得的证据或决策 |
|---|---|
| 实时数据 | code=3 已验证;code=1/2 实报;可见输出形式 |
| 记录查询 | 查询条件(目录来源与 index 映射已明确) |
| 文件导出 | 平台对本工具直连发出的 cmd=2 同样自动上传(下载认证、压缩包结构已确认) |
| 双环境 | 测试服与生产服各完成一次完整的 cmd=2 获取与下载 |
| 参数读取 | cmd=3 实报样本 |
| 参数设置 | cmd=1 完整成功及失败样本、最终成功条件 |
| 通用收发 | 379/380 topic、消息关联、超时与重发行为 |