我正在尝试在运行带有 BACNet 接口的 Apogee 系统的 Seimens 服务器上安装 BACNet 扫描仪。我尝试使用BACNet4j ,但我在测试/Scan.java 的 LocalDevice 对象上遇到端口绑定错误。
有谁知道我可以使用的任何其他库或对将 BACNet 插件设置到建筑管理系统的说明的参考?
我正在尝试在运行带有 BACNet 接口的 Apogee 系统的 Seimens 服务器上安装 BACNet 扫描仪。我尝试使用BACNet4j ,但我在测试/Scan.java 的 LocalDevice 对象上遇到端口绑定错误。
有谁知道我可以使用的任何其他库或对将 BACNet 插件设置到建筑管理系统的说明的参考?
我之前也遇到过同样的问题,即 BACnet 客户端需要从 UDP 端口 47808 发送和接收。由于 BACnet 服务器已经使用该端口来监听(和回复)我的解决方案是使用虚拟 IP(网桥)所以我的客户端在同一个以太网卡上运行,但 IP 地址不同。我知道有点令人费解,但它确实有效。
Apogee 系统是否支持虚拟(或只是附加)网络驱动程序完全是另一个问题。在我的 Linux 和 Windows 机器上,我可以根据需要运行任意数量的服务器和客户端(我实际上不知道有什么限制,我最多可以运行 5 个服务器和 3 个客户端,没有任何问题)。
关于端口绑定错误,您可能必须配置防火墙,因为:
您的问题可能是使用了已在使用的(BACnet 端口号)套接字;您必须确保它不是独占使用 - 在绑定到套接字之前,而且(稍微更)重要的是,还要确保它被标记为可重用。
但是,除非您正在收听 Who-Is 广播,否则我建议您在不同的端口号(例如 0xBAC1/47809)上收听(单播)响应,但仍然在标准端口号 0xBAC0/47808 上发送。