Skip to content

feat: 增加 GEM 报警目录查询 - #21

Merged
CSJ608 merged 1 commit into
mainfrom
feat-gem-alarm-catalog
Aug 29, 2026
Merged

CSJ608 merged 1 commit into
mainfrom
feat-gem-alarm-catalog

Conversation

@CSJ608

@CSJ608 CSJ608 commented Aug 29, 2026

Copy link
Copy Markdown
Owner

路线图判断

报警通知和远程命令最小链路完成后,报警管理先补“目录查询”,再设计启停。目录是启停引用的前置能力;启停还必须明确它与通知发送、set/clear 代码和 GEM 状态门控的关系,在未核对授权 E30 前不宜直接固化。

本 PR 的最小纵向切片仅包含:可配置报警目录消息对、不可变报警定义、Equipment 运行期精确注册、Host 全量/按动态 ID 查询、严格请求/回复校验和真实 TCP 快照。不包含启停/屏蔽、历史、持久化或目录对报警通知发送的自动门控。

变更

  • 在 GemMessageProfile 增加显式报警目录查询消息对,工程基线使用 S5F5/S5F6,并保留前三代构造签名。
  • 新增 GemAlarmDefinition 和可释放 GemAlarmRegistration;定义保留原始代码、动态 ID 与 ASCII 文本。
  • Equipment 维护注册顺序目录;Host 可省略 ID 查询全部,或按唯一 ID 请求顺序取得匹配项。
  • 未知 ID 被忽略并返回空/部分结果,避免在无额外失败 ACK 的查询上制造 T3 超时。
  • 严格校验 W-Bit、请求 List、ID 唯一性、三字段定义、单字节 Binary 代码、ASCII 文本和 Secondary 消息对。
  • 更新 README、路线图、GEM/端点文档和 Unreleased CHANGELOG。

验证

  • dotnet build SecsFrame.slnx -c Release:通过,0 警告、0 错误。
  • dotnet test SecsFrame.slnx -c Release --no-build:net8.0/net10.0 主测试各 195 项通过;官方 nuget.org Secs4Net 3.1.0 互操作测试各 2 项通过。
  • 本机 net48 testhost 在发现后无进展并手动中止;合并前以 Windows Actions 的 net48 作强制门禁。
  • 未修改 Secs4Net 依赖,互操作项目继续使用 nuget.org 官方 3.1.0 包。

标准边界

S5F5/S5F6、正文形状和未知 ID 行为仅作为仓库的非规范性工程基线。目录注册不限制 SendAlarmNotificationAsync,也没有启用状态。未使用授权 E30-0526 与一致性测试核对前,不声明报警目录生命周期、代码位、状态条件或完整 GEM 合规。

@CSJ608
CSJ608 merged commit 9332e87 into main Aug 29, 2026
4 checks passed
@CSJ608
CSJ608 deleted the feat-gem-alarm-catalog branch August 29, 2026 01:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant