yeg
4 天以前 99fd4ccdf5d410e78a3785375036c34a2132ee04
refs
用户 yeg <1347747024@qq.com>
星期日, 十月 11, 2026 01:51 +0800
提交者 yeg <1347747024@qq.com>
星期日, 十月 11, 2026 01:51 +0800
提交99fd4ccdf5d410e78a3785375036c34a2132ee04
目录 031412a850e4830c0b3f5c7fa4ee3ff07378092d 目录 | zip | gz
parent 3194ad3ce5526148df9009aeaa917b888dc53b40 查看 | 对比
新威对外接口改为后端直连管道,撤销机器端取数程序

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 两台实机用生产代码端到端验过(发现、实时、水位、
增量逐点、控制命令被拒)。
9个文件已添加
7个文件已修改
1853 ■■■■■ 已修改文件
battery-business/src/main/java/com/battery/business/service/impl/DeviceAdapterServiceImpl.java 10 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-api/src/main/java/com/battery/device/api/DeviceAdapter.java 2 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/main/java/com/battery/device/bts/BtsDeviceAdapter.java 4 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/main/java/com/battery/device/bts/BtsTransportException.java 4 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/main/java/com/battery/device/bts/BtsXmlCodec.java 236 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/main/java/com/battery/device/bts/NewareBtsAdapter.java 240 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/main/java/com/battery/device/bts/NewareBtsAdapterFactory.java 76 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/main/java/com/battery/device/bts/NewareBtsPipeTransport.java 394 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/main/java/com/battery/device/bts/NewareBtsReadOnlyCommands.java 54 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsAdapterContractTest.java 294 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsAdapterFactoryContractTest.java 89 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsPipeTransportTest.java 116 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
battery-device-bts/src/test/java/com/battery/device/bts/NewareBtsXmlCodecTest.java 254 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
config/vendor-credentials.properties.example 23 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/battery/business/runtime/DeviceAdapterRuntimeConfig.java 4 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
scripts/register-neware-bts-sources.sql 53 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史