这个项目是利用AllJoyn做了一个即插即用的小测试,需求大部分是师兄提的,大致如下:
- 服务端向客户端定期发送命令,告知客户端发送描述信息
- 客户端收到命令后,就发送描述信息
- 服务收到描述信息后,存之于mongodb数据库;若有具体的数据,也可模拟向yeelink平台post数据
由于用到的外部模块较多,所以配置较麻烦,现交待如下
- 为通用起见,首先定义以下几个环境变量:
- ALLJOYN_DIR(版本:14.02),可以自己编译,也可以用AllSeen官方的SDK,根目录包括bin,inc,lib等目录
- BOOST_DIR(版本:1.53),根目录包括boost头文件夹和lib库目录,库需自己编译,教程可参考这里
- MONGO_CXX_DIR,mongo-cxx-driver的根目录。mongo-cxx库在github上,需要自行编译,参考教程
- tinyxml库也很小,所以就直接放入了$(ProjectDir)
我的环境变量示例
- D:\ProgramFiles\alljoyn-14.02-win7x86vs2012-sdk\dbg\cpp
- D:\ProgramFiles\mongodb2.6
- D:\ProgramFiles\boost-1.53
-
添加各模块的库目录路径和头文件目录
-
编译alljoyn程序所要求的库有
- alljoyn.lib ajrouter.lib BundledRouter.obj ws2_32.lib crypt32.lib iphlpapi.lib Secur32.lib Bcrypt.lib Ncrypt.lib
- tinyxml库
- mongoclient库和boost库,它有自动识别机制,所以不用添加具体文件
-
注意在工程属性的预处理器里添加符号QCC_OS_GROUP_WINDOWS、UNICODE,否则出现以下问题: \inc\qcc\platform.h(36): fatal error C1004: 发现意外的文件尾
必须在属性-c/c++-所有选项-附加选项中填入:/vmm /vmg %(AdditionalOptions),否则运行时出现错误:The value of ESP not properly saved...
-
由于boost和mongoclient都是动态链接,所以运行程序前要保证能找到正确的dll。32位的mongoclient-gd.dll已经放在了源码里
项目维护人:Keepon