新威对外接口改为后端直连管道,撤销机器端取数程序
ADR-0068 §3 原以为命名管道仅本机可达,于是把取数形态定成"每台机器上跑一个
只读取数程序"。实测该前提不成立:管道可跨机访问(\<主机>\pipe\NewareBtsAPI),
先建一条 SMB 会话即可,而这条会话后端自己能建。ADR-0070 据此把形态改为后端直连,
并取代 ADR-0069(那套推式载荷契约随之撤销)。
- 新增适配器类型 NEWARE_BTS 与 NewareBtsPipeTransport:首次使用某主机时用
net.exe use 建 SMB 会话,之后每次请求新建连接、按块读到 \n\n、收到应答即关
(实测一条连接只服务一条请求,复用会永久挂住)。
- 读取放在单线程执行器里带超时等待:RandomAccessFile 没有读超时,超时从另一个
线程关掉在途句柄把读打断,使"挂住"变成可分类的失败。
- 只读白名单收敛到 NewareBtsReadOnlyCommands 一处,在写出之前拒绝控制命令。
- 按实测修协议实现:totaltime/relativetime 是小数秒;download 的应答被厂商拼成
donwload_resp;atime 用空格分隔;inquire_resp 的 dev 是五段。
- 归集按请求的通道身份而不是应答里的:实测服务端会改写应答的 devtype
(getdevinfo 报 27-76,inquire 答 25-76-1-1-0),按应答归集会让通道查不到实时值。
- 交出实时值、通道工作状态与逐点(全精度 + 绝对时间);工步层、循环汇总、辅助测量
与计划方案如实为空,不用空值或推算冒充已知。
- 登记 neware-c/d/e/f 四个直连实例、撤掉五个推式实例;机器 A(7.6 客户端不支持
inquiredf/download)继续用 NEWARE_MYSQL,一台机器只留一个来源实例。
- 凭据沿用"本地凭据文件 → 环境变量 → 启动参数",source_config 只放变量名;
本机管理员口令按机器分别给键、不设缺省值。
后端全量测试 248 项通过;D 与 F 两台实机用生产代码端到端验过(发现、实时、水位、
增量逐点、控制命令被拒)。