连接到 BACnet 设备时出现一次性套接字地址错误

Connecting to BACnet device giving single use socket address error

我试图浏览帖子,看看是否能找到任何东西,但还没有找到。

我是 运行 我的 localhost.I 上的 SCADA BACnet 设备模拟器假设设备的 ip 是我的本地主机 ip 因为我能找到的唯一 IP 在 deviceAddressBinding 属性 显示 192.168.x.xx

我正在 运行 完成 SampleApplication 的 bacpypes(python bacnet 库)教程,当我第一次尝试 运行 教程时,它说我的.ini file ip is not a valid address in the context。所以我尝试在模拟器的设置中尝试连接到模拟器,现在它给我一个 Only one usage of each socket address (protocol/network address/port) is normally permitted 错误。不太确定从这里去哪里,我是不是错过了什么?

我的 .ini 文件:

[BACpypes]
objectName: Testing Device
address: 192.168.x.xx #tutorial came with 128.253.109.40/20
objectIdentifier: 123
maxApduLengthAccepted: 1024
segmentationSupported: segmentedBoth
vendorIdentifier: 123
foreignPort: 47808
foreignBBMD: 192.168.1.254
foreignTTL: 30

我的模拟器属性:

这似乎是一个 windows 问题。已替换:

this_application = WhoIsIAmApplication(this_device, args.ini.address)

与:

this_application = WhoIsIAmApplication(this_device, ('', 47808))

您的示例应用程序和 BACnet 模拟器正在打开一个服务器套接字。看起来两者都使用相同的端口号。您可以更改 ini 文件中的端口号,如下所示

地址:192.168.1.22:47809

默认情况下,BACPypes 示例应用程序 运行 在 47808 端口号上,除非您在配置文件中明确提及。