0

我目前正在努力添加 KNX 设备的自动检测作为 Apache PLC4X KNX 驱动程序的一部分(目前正在使用 Golang 版本)。我在检查 KNX 设备方面取得了很大进展,但刚刚遇到一个设备声称具有 55 字节的 Max APDU,但在读取一些内存时,它只响应只能承载 12 字节有效负载的标准帧。

我希望能够提前检测设备是否能够发送超过 12 个字节。但我有点不确定该怎么做。设备描述符为 0701,表示 BIM M112 设备。此设备配置文件是否具有 15 的固定 APDU 大小?我有多个具有相同配置文件的设备,它们没有以 Max APDU 响应(它们返回的计数为 0,表示“不可用”或“不允许”),所以我默认为 15。但是,这个特定的 ABB 设备会响应55,但不发送超过 12 个字节(这与最大 APDU 为 15 相同)。

非常感谢帮助。

克里斯

4

1 回答 1

1

不幸的是,有一些传统设备原则上支持 MaxApduLength > 15,但对特定服务有限制,例如内存服务限制为 12 个字节。

除了反复试验,没有具体的发现。

在任何情况下,您都必须实现回退到 15 个字节,因为 PID_MAX_APDU_LENGTH 中报告的值可能完全错误(我见过这样的设备......)。此外,接口和目标设备之间可能存在耦合器,进一步限制了可用的 APDU 长度。

于 2021-02-06T17:17:12.063 回答