如何解决如何确定 KNX 设备是否能够发送扩展帧?
我目前正致力于将 KNX 设备的自动检测添加为 Apache PLC4X KNX 驱动程序的一部分(目前正在开发 Golang 版本)。我在检查 KNX 设备方面取得了很大进展,但刚刚遇到了一个情况,设备声称拥有 55 字节的最大 APDU,但在读取某些内存时,它仅以只能携带 12 字节有效载荷的标准帧进行响应。
我希望能够提前检测设备是否能够发送超过 12 个字节。但我有点不确定如何做到这一点。设备描述符为 0701,表示 BIM M112 设备。此设备配置文件的 APDU 大小是否固定为 15?我有多个具有相同配置文件的设备,但它们没有以最大 APDU 响应(它们返回的计数为 0,表示“不可用”或“不允许”),所以我默认为 15。但是,这个特定的 ABB 设备响应为55,但不会发送超过 12 个字节(这与 Max APDU 为 15 相同)。
非常感谢帮助。
克里斯
解决方法
不幸的是,有些旧设备原则上支持 MaxApduLength > 15,但对特定服务(例如内存服务限制为 12 字节)有限制。
除了反复试验之外,没有任何具体的发现。
在任何情况下,您都必须回退到 15 个字节,因为 PID_MAX_APDU_LENGTH 中报告的值可能完全错误(我见过这样的设备......)。此外,接口和目标设备之间可能存在耦合器,进一步限制了可用的 APDU 长度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。