0

我正在尝试在 C 中创建一个将与 BACnet 服务器通信的客户端。此 BACnet 服务器存储在工业设备 (CAN2GO) 上,我不确定如何与此设备通信。

我花了很多时间阅读 BACnet 的文档,但我从未找到 BACnet 客户端的清晰示例。我已经使用 TCP 和 UDP 做了一些服务器和客户端,但我不知道如何启动这个 BACnet 客户端,我必须说我非常绝望。

我找到了一个似乎与我想要的库相对应的库,称为BACnet 协议栈,但是当我尝试 whois 示例时,没有找到任何设备(我希望找到 bacnet 服务器,但也许我不应该?)。

所以我的问题是:你能给我一个 C 或其他语言的例子,但 C 会更好,它可以与 BACnet 服务器通信(没什么复杂的,只是一个问题和分析响应)。这个例子可以使用我刚刚写的库,或者如果你更喜欢另一个库,我当然对所有内容都开放。非常感谢您的时间和回答。

4

2 回答 2

1

我已经使用了那个堆栈,它是你能找到的最好的开源堆栈。如果您使用该库中的示例看不到任何内容demo\whois\bacwi,则说明您的设置有问题。特别是,您使用 IP 吗?您的 BACnet 客户端和 BACnet 服务器是否在不同的机器上(如果不进行一些认真的调整,它们就不能在同一台机器上)?两台机器是否在同一个IP子网上?(它们必须再次出现,除非您进行一些认真的调整(在这种情况下,设置 BBMD(BACnet 广播管理设备)))。

您还需要尝试“读取属性”示例 ( demo\readprop\bacrp.exe) 以实际从服务器读取值。

如果您仍然卡住,请在 Sourceforge 上的链接上发布您的详细问题,作者 Steve对问题非常敏感。

于 2015-04-22T17:03:14.473 回答
0

我目前正在使用堆栈 - 刚刚开始。起初我遇到了一些麻烦,不确定我的问题是否相同,但是.. 我基本上使用的是一些由施耐德电气 (UNC-500) 和旧的不受支持的平台 (Niagara R2) 制造的 BAC 组件。在我的笔记本电脑上,我创建了一个主机服务器并将其寻址到它与 UNC 之间的专用 LAN 网络。我的笔记本电脑也在使用 wifi,它使用的是 DHCP,所以我有两个独立的接口。这是我的问题。我无法阅读或收到来自 UNC 的“I-AM”回复。我一关掉WIFI,就收到了“I-AM”广播。确保您与您的设备在同一个网络上,并且没有其他接口处于活动状态。也许有一种方法可以分配要使用的接口,IDK。我刚开始使用它。

于 2015-08-14T13:00:26.613 回答