Как создать клиент 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. Я только начал использовать это.

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