网易博客旧文----bacnet学习系列之二----读属性

bacnet学习系列之二----读属性
2014-01-15 16:23:44| 分类: BACnet | 标签: |举报 |字号大中小 订阅

虽然在bacnet-stack-0.8.2\ports\win32\Microsoft Visual Studio 2008有一些例子,但刚开始就学习这些例子似乎有点麻烦。幸好bacnet-stack-0.8.2\demo目录下有很多的例子,这次从\bacnet-stack-0.8.2\demo\readprop开始学起。

主要是考虑在以后的应用中,读取对象属性肯定是最常用的操作了。

在\bacnet-stack-0.8.2\demo\readprop目录下有一个main.c文件,想办法将其在vs2008中编译是我的目的。
1、在vs2008中新建一个win32控制台程序,删除原来的主程序,将读属性的main.c加入到工程中
2、去掉main.c的预编译头文件
3、然后加入include的路径 bacnet-stack-0.8.2\include
4、编译,找不到device.h,研究port下win32 demo的程序,用的device.h是demo\object,因此应该包含此目录
按我的理解,如果是写设备程序,应该修改此目录的对应文件,来实现设备的数据采集功能
5、编译,找不到net.h,研究port下win32 demo的程序,用的是bacnet-stack-0.8.2\ports\win32,因此应该包含此目录
按我的理解,在不同的平台上,应该有不同的底层实现,因此在不同的平台上编译,应该包含不同的文件
6、链接时,需要加入两个库,bacnet-stack-0.8.2\ports\win32\Microsoft Visual Studio 2008\Debug
下的BACnet Object Definitions.lib和BACnet Stack Library.lib,这两个库可以很容易用其工程编译出来
当然,release可以用release的库
7、将bacnet-stack-0.8.2\ports\win32的bip-init.c文件加入到工程中,因为默认情况下,用的是BACnet/IP方式,如果需要改底层链路层的方式,可以修改bacnet-stack-0.8.2\include\config.h文件或根据此文件在工程中加入预处理器
8、最后是网络库,加入ws2_32.lib,iphlpapi.lib

编译成功后,可以在命令行执行程序
bacnet学习系列之一----读属性 - xzhoumin - MMZHOU的博客
这里
10表示设备实例号,0表示object-type,这里是analoginput,因此是0,下一个0表示object实例号,这里是0, 85表示presentvalue
这些都可以在bacenum.h查找到
读取回来的数值显示为0.623
如果需要显示,需要修改
config.h中的
#define PRINT_ENABLED 0

#define PRINT_ENABLED 1

至于读取是哪个服务器的值,其实用的就是VTS,在下篇博客中将讲述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值