Подключение к устройству 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, если вы явно не упомянули в файле конфигурации.