协议覆盖范围

标准基线:DL/T 698.45—2017。当前版本是 0.x 阶段,尚未覆盖完整协议。

本页列出每个能力的状态和证据来源。跨设备联调前请先确认对应条目。

状态图例

标记含义
已实现线格式与协议行为都已实现并有测试证据
部分实现主路径可用,但有明确限制
未实现接口存在但会返回 unsupported_service 或未接线
未验证代码完成但缺硬件或环境证据

基础能力

项目状态协议行为与限制测试证据
ByteView、Result、Reader/Writer已实现借用视图不跨异步边界core
A-XDR 长度已实现拒绝不定长、非最小编码、溢出和超限core
单帧长度、控制域、HCS/FCS已实现2017 版长度保留位严格检查;功能码支持 1/3core、固定 GET 帧
变长 SA、逻辑地址、CA部分实现原始线格式已实现;BCD 地址文本转换、组/通配的业务匹配待实现core,1/16 字节地址
广播地址部分实现检查 AA 地址字节;广播无需应答的会话行为待实现core
扰码 SC部分实现单帧加/减 33H 已实现;与实际分帧状态机组合待实现core
流解析已实现半帧、粘帧、噪声、校验失败恢复;合法但不完整帧须由调用方超时 resetcore,每个切分点/噪声洪流
链路分帧格式与逐帧确认已实现LinkFragmenter/LinkReassembler 提供;会话侧超时与重发由 fragment_timeout/fragment_retries 控制session、serial_link

服务层

服务状态协议行为与限制测试证据
GET Normal/NormalList已实现PIID、逐项 Data/DAR、可选 TimeTag;FollowReport 存在时返回 unsupported_service附录 D.3.1/D.3.2 固定向量、tcp
GET Record/RecordList部分实现请求响应与分块已实现;选择器业务语义由 provider 解释mutation、session、tcp
SET Normal/NormalList已实现原始 DAR、精确 OAD/顺序匹配;无重试或列表回滚mutation,附录 D.4.1/D.4.2、tcp
ACTION 普通/列表已实现DAR/可选 Data、完整 OMD 模式匹配,区分 NULL 与没有数据mutation、附录 D.5.1、tcp
LINK部分实现登录/心跳/退出 Request 与 Response 已实现;自动周期心跳和完整重试策略待完善connection、session
CONNECT部分实现四种认证 CHOICE 线格式和公共连接协商已实现;非公共机制真实认证未实现,Session 只接受 NullSecurityconnection、session
RELEASE已实现请求/响应/通知;会话释放及空闲失效connection、session
ERROR已实现双向异常响应 codec;保留远端类型原码connection
REPORT未实现List、RecordList、TransData 通知/确认待补
PROXY未实现GetList、GetRecord、SetList、SetThenGetList、ActionList、ActionThenGetList、TransCommand待补
SECURITY未实现Request/Response 全部明文/密文/验证结果分支及真实后端待补
FollowReport未实现普通结果/记录结果;带该字段的响应返回 unsupported_service待补
then-get未实现SET/ACTION 的 ThenGetNormalList 请求/响应待补

会话与对象

普通应用可使用托管服务器与 Device及托管客户端:直接设置、启动、连接和读取,由库管理线程、协议会话和关闭。多个连接或服务器可共享设备,数据跨连接和停止保留;动态 provider、外部运行时及恢复连接仍待后续开发。

项目状态协议行为与限制测试证据
预连接与应用会话已实现公共 CONNECT、版本/能力/尺寸协商、单次 LINK、预设连接、RELEASE/闲置通知;精确单地址、单在途事务session、tcp,两种拨号方向
请求路由与生命周期已实现SA/CA/DIR/PRM/PIID/OAD/列表匹配、序号隔离、超时/取消关闭、重入session,错配/重复/迟到/耗尽/时钟异常/析构
异步执行器已实现ManualExecutor、IoRuntime::executor 串行投递与单调计时;应用负责驱动,没有隐藏工作线程session、tcp
对象 schema/provider已实现显式 writable、方法权限/参数/返回类型、一级索引、异常映射 DAR;标准对象目录及单位换算待补mutation、session
ClientService/ServerService已实现GET/SET/ACTION 异步普通与列表;每项 Data/DAR/可选 Data,按顺序独立执行mutation、session、tcp
同步服务已实现显式 drive 或应用后台线程;循环回调内调用返回 busymutation、tcp
周期心跳与 TimeTag 语义部分实现heartbeat_seconds 可配置自动周期;TimeTag 可按原字段编解码,但延时与有效期语义未验证session

传输

项目状态协议行为与限制测试证据
TCP 客户端/监听/双向通道已实现DNS/连接、单个在途读、串行全量写、关闭、队列限制;不自动重试或设置超时tcp,含 GET 回环与销毁测试
内存通道已实现分块读取,接收缓存及投递前写字节/条数预算;无部分写入session,缓存/待写超限、EOF、未驱动销毁
原始串口部分实现速率/字格式/流控、串行队列与关闭;真实设备收发未验证tcp,参数/打开失败路径
串行时序适配已实现四 FE、收发 33 位间隔、投递前预算、方向与真实排空 hooksserial_link、memory_mutation 闭环
RS-485 物理验收未验证手动切换必须有真实排空驱动;USB/流控/适配器需硬件测量待设备
安装包已实现导出单一 dlt698 库及旧组件兼容别名;不安装 Asio 头文件,MSVC 传递 /utf-8installed_consumer

Data 标签覆盖

「已测」表示该标签具有固定字节预期、编码及解码验证。

标签类型状态
0NULL已实现/已测
1array已实现/已测
2structure已实现/已测
3bool已实现/已测,限制 0/1
4bit-string已实现/已测,保留位数、检查填充位
5double-long已实现/已测
6double-long-unsigned已实现/已测
9octet-string已实现/已测
10visible-string已实现/已测,检查可见 ASCII
12UTF8-string已实现/已测,拒绝非法 UTF-8
15integer已实现/已测
16long已实现/已测
17unsigned已实现/已测
18long-unsigned已实现/已测
20long64已实现/已测
21long64-unsigned已实现/已测
22enum已实现/已测
23float32已实现/已测,含 NaN 原始位往返
24float64已实现/已测
25date_time原始 10 字节已实现/已测
26date原始 5 字节已实现/已测
27time原始 3 字节已实现/已测
28date_time_s原始 7 字节已实现/已测
80OI已实现/已测
81OAD已实现/已测
82ROAD未实现
83OMD已实现/已测
84TI已实现/已测
85TSA原始地址字节已实现/已测
86MAC未实现
87RN未实现
88Region未实现
89Scaler_Unit已实现/已测,单位枚举目录待补
90RSD未实现,需逐个选择器分支登记
91CSD未实现
92MS未实现,需逐个集合分支登记
93SID未实现
94SID_MAC未实现
95COMDCB未实现
96RCSD未实现

保留或未知标签返回 unsupported_tag,不会猜测长度后跳过。

max_elements 是单个 Data 树的节点总数(含根节点),max_depth 从根的 0 开始。完整输入 codec 拒绝尾随字节。

待办

按优先级排列:

  1. 真实设备验收。 串口收发、RS-485 硬件时序、安全后端。
  2. 标准对象目录扩充。 已内置 118 个普通 OI 及4 个记录入口和5个记录列,完整目录 127 个;完整参数业务、写入/复位方法和其余事件目录仍待扩充。
  3. 周期心跳与 TimeTag 语义。 延时、有效期和时钟可信的完整行为。
  4. 记录选择器。 RSD/CSD/MS/RCSD 各分支的登记与语义。
  5. REPORT、PROXY、SECURITY。 三个服务族尚未开始。
  6. then-get 与 GET Next 独立暴露。 目前由 Session 自动完成分块。
  7. Python 绑定和分发。 在 C++ 稳定阶段之后进行。

本地验证范围

2026-10-07 托管服务器这一批 Windows x64 验证:

配置结果
MSVC 19.39 Release 共享库完整构建、11 项 CTest 通过,含安装调用方与两项网络测试
MSVC 19.39 Release 静态库完整构建、11 项 CTest 通过
MinGW GCC 15.1 Release 静态库、开启 Asio完整构建、11 项 CTest 通过
MinGW GCC 15.1 Release 静态库、关闭传输完整构建、8 项 CTest 通过,Device 仍可使用

新库和 device/app 测试通过 /WX / -Werror;完整现有回归使用普通告警配置,原测试中的窄化转换、变量遮蔽和未使用函数告警仍保留。安装消费方独立验证只链接 dlt698::app 以及原分层接口的导出。transport 统一 Asio 线程配置,修复 MinGW 因包含顺序导致的类型混用;transport_tcp 已恢复默认执行。

客户端更新沿用上述构建组合,app 新增 9 个客户端用例,包含 400 行记录分块、实际读写/方法、超时/取消、原码及回调销毁。两个独立进程 dlt698_server / dlt698_client 成功读取频率 5000 并正常关闭。

GitHub Actions 已配置 Ubuntu/Windows/macOS 静态/共享及纯核心检查,但尚未在远程执行,不能据此宣告 Linux/macOS 已验证。串口目前只完成软件模拟和打开失败测试;真实串口、RS-485 设备、安全后端、sanitizer 和 fuzz 验证均未开展。

稳定性承诺

0.x 阶段允许接口调整。公开头文件使用中文 Doxygen 注释,本文档与其保持一致。涉及行为的变更会同步更新源码注释与本文档。