我目前正在添加KNX设备的自动检测功能,作为Apache PLC4X KNX驱动程序的一部分(目前正在开发Golang版本)。我在检查KNX设备方面取得了很大的进展,但刚刚遇到了这样的情况:设备声称最大APDU为55字节,但当读取一些内存时,它只能响应只能携带12字节有效负载的标准帧。
我希望能够提前检测设备是否能够发送超过12个字节。但我有点不确定该怎么做。设备描述符为0701,表示BIM M112设备。此配置文件的设备是否具有固定的APDU大小15?我有多个具有相同配置文件的设备,它们不会返回最大APDU (它们返回的计数为0,表示“不可用”或“不允许”),所以我默认为15。然而,这个特定的ABB设备以55响应,但发送的字节不超过12字节(这与最大APDU为15相同)。
非常感谢您的帮助。
克里斯
发布于 2021-02-07 01:17:12
不幸的是,有一些遗留设备原则上支持MaxApduLength > 15,但对特定服务有限制,如内存服务限制为12字节。
除了试验和错误之外,没有其他具体的发现。
在任何情况下,您都必须实现回退到15字节,因为PID_MAX_APDU_LENGTH中报告的值可能是完全错误的(我见过这样的设备...)。此外,在接口和目标设备之间可能存在耦合器,进一步限制了可用APDU的长度。
https://stackoverflow.com/questions/66075939
复制相似问题