Подключение к устройству BACnet с ошибкой адреса одноразового сокета

Я пытался просмотреть посты, чтобы узнать, смогу ли я найти что-нибудь, но пока не смог найти.

Я только начинаю изучать BACnet, так со мной.

Я запускаю симулятор устройства SCADA BACnet на своем локальном хосте. Я предполагаю, что ip для устройства - это мой локальный ip, так как единственный IP, который я мог найти, был в deviceAddressBinding свойство, которое показало 192.168.x.xx

Я бегу через bacpypes (библиотека Python для bacnet) учебник для SampleApplication и когда я впервые попробовал запустить учебник, он заявил, что мой .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

Мои свойства симулятора:

2 ответа

Решение

Кажется, это проблема Windows. Заменены:

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

с:

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

Ваше приложение и симуляторы BACnet открывают сокет сервера. похоже, что оба используют один и тот же номер порта. Вы можете изменить номер порта в INI-файле, как указано ниже

адрес: 192.168.1.22:47809

по умолчанию примеры приложений BACPypes выполняются с номером порта 47808, если вы явно не упомянули в файле конфигурации.

Другие вопросы по тегам