首先需要下载bacnet的源码,这里以bacnet的源码包bacnet-stack-0.8.3为例子,bacnet服务端的demo程序对应的位置为bacnet-stack-0.8.3\demo\server,如下图所示:
备份main.c
备份的目的是为了在出错的情况下,可以找回最原始的代码,这里可在linux下的命令行终端输入cp main.c main.c.bak
打开main.c,为了方便演示,这次的所有代码都在main.c里面新增。
3.1新增一个自定义的object_functions_t类型的结构体,该结构体存放了整个bacnet服务器的所有对象,为了方便,可以从bacnet-stack-0.8.3\demo\object\device.c下的staticobject_functions_t My_Object_Table结构体拷贝,并删除其他种类的对象,保留OBJECT_DEVICE,MAX_BACNET_OBJECT_TYPE(这两个种对象是必需的,不可删除)。
如下所示:
此时用BacnetScan扫描工具查询结果如下图所示:
从上图可知,目前该服务端上只有一个对象。
3.2 添加自定义对象。
首先在bacnet-stack-0.8.3\include\bacenum.h的枚举类型BACNET_OBJECT_TYPE中新增一个自定义的类型,这里以“OBJECT_CUSTOM”命名为例子。如下所示:
static object_functions_t My

本文介绍了如何下载bacnet源码并修改,创建自定义的BACnet服务端对象,包括备份源文件、定义对象结构体、添加自定义对象类型、实现对象的各个接口以及增加对象属性。通过这些步骤,开发者可以对BACnet服务器进行定制化开发。
2178

被折叠的 条评论
为什么被折叠?



