Как создать клиент BACnet в C
Я пытаюсь создать клиент на C, который будет общаться с сервером BACnet. Этот сервер BACnet хранится на промышленном устройстве (CAN2GO), и я не уверен, как я мог общаться с этим устройством.
Я потратил довольно много времени на чтение документации для BACnet, и я так и не нашел четкого примера для клиента BACnet. Я уже сделал несколько серверов и клиентов, использующих TCP и UDP, но я не знаю, как запустить этот клиент BACnet, и я должен сказать, что я совершенно отчаялся.
Я нашел библиотеку, которая, кажется, соответствует тому, что я хочу, которая называется стеком протоколов BACnet, но когда я попробовал пример whois, устройство не было найдено (я ожидал найти сервер bacnet, но, возможно, я не должен?).
Поэтому мой вопрос: не могли бы вы дать мне пример на C или на другом языке, но C был бы лучше, если бы он взаимодействовал с сервером BACnet (ничего сложного, только вопрос и анализ ответа). В этом примере можно использовать библиотеку, о которой я только что написал, или, если вы предпочитаете другую библиотеку, я, конечно, открыт для всего. Большое спасибо за ваше время и ответы.
2 ответа
Я использовал этот стек, и это лучший из открытых источников, который вы найдете. Если вы не видите ничего, используя demo\whois\bacwi
пример из этой библиотеки, то что-то не так с вашей настройкой. В частности, вы используете IP? Ваш клиент BACnet и сервер BACnet находятся на разных компьютерах (они не могут быть на одном и том же без серьезной настройки)? Две машины находятся в одной IP-подсети? (Они должны быть, еще раз, если вы не делаете серьезную настройку (в этом случае настройка BBMD (BACnet Broadcast Management Devices))).
Вы также можете попробовать пример "Read Property" (demo\readprop\bacrp.exe
) фактически прочитать значение с сервера.
Если вы все еще застряли, то опубликуйте свою подробную проблему по ссылке на Sourceforge, Стив, автор, очень отзывчив на вопросы.
Я в настоящее время использую стек - только начал. Сначала у меня были небольшие проблемы, я не был уверен, что моя проблема такая же, но.. Я в основном использую некоторые компоненты BAC, изготовленные из Schneider Electric (UNC-500) и старой неподдерживаемой платформы (Niagara R2). На своем ноутбуке я создал хост-сервер и направил его в частную сеть LAN между ним и UNC. Мой ноутбук также использовал Wi-Fi, который использовал DHCP, поэтому у меня было два отдельных интерфейса. Это была моя проблема. Я не мог прочитать или получить ответы "Я ЕСМЬ" от UNC. Как только я выключил WIFI, я получил трансляции "Я-Я". Убедитесь, что вы находитесь в той же сети, что и ваше устройство, и что другие активные интерфейсы не активны. Может быть, есть способ назначить интерфейс для использования, IDK. Я только начал использовать это.