开发者社区> baiwfg2> 正文

【AllJoyn框架-06】关于基于AllJoyn的即插即用的进展总结

简介: 目前项目与即插即用有关,以alljoyn为底层支撑,以VS为开发环境,以Mongodb为数据库而实现的。目前实现的功能有: 1、系统以多对一方式运行,多个客户端,一个服务端 2、服务端可定期收集客户端的描述信息,包括客户端有哪些资源,在哪里等等 3、当有设备加入或离开时,服务端可以立即了解到 4、描述信息以JSON格式写入Mongodb数据库,可供上层应用获取利用 5、目前平台仅
+关注继续查看

目前项目与即插即用有关,以alljoyn为底层支撑,以VS为开发环境,以Mongodb为数据库而实现的。目前实现的功能有:

1、系统以多对一方式运行,多个客户端,一个服务端

2、服务端可定期收集客户端的描述信息,包括客户端有哪些资源,在哪里等等

3、当有设备加入或离开时,服务端可以立即了解到

4、描述信息以JSON格式写入Mongodb数据库,可供上层应用获取利用

5、目前平台仅涉及PC和arduino due(arduino平台我暂未负责)


存在的问题有:

1、当多个地方开启同名服务时,客户只识别其中一个,如何判断?

2、随着客户端的增多,加入会话的时间会相应延长,怎样解决?

3、当有2个或2个以上的客户端启动时,CPU占用率高达90%


目前成果图文说明

1、准备阶段

配置好mongodb数据库,启动mongo客户端以方便观察数据库变化;准备好服务端与客户端的执行文件及相应的配置xml文件;设置好boost和mongoclient动态库路径,运行时需要


2、启动服务端程序和数据库客户端mongo


上图表明连接数据库成功,且正在等待接收客户会话请求。服务名是:org.alljoyn.service.test



已经连上mongodb服务端


3、启动第一个客户端实例


由上图可知客户寻找服务成功,加入会话。接下来收到服务发送的命令,该命令要求客户发送自己的描述信息,于是客户开始发送描述信息,发完后继续等待接收命令

客户一启动,服务端的反应是:


接受了客户的连接请求。设备一加入,就立刻发送获取描述信息命令。上图显示了两次命令发送,所以收到了两次描述信息,并将之写入数据库。目前此描述信息只是模板,后期需要调整。这里将信息以JSON格式打印出来以方便展示

此时我们可观察数据库是否有无添加。预先已经在service.xml文件中设置好数据库名alljoyn,集合名为clientdesc,见下图:


由图可知描述信息已经写入了数据库。其中由于编码问题,导致中文的乱码。当然这不是重点,毕竟已经成功写入了数据库。此后关于此客户的信息会定期由服务端发送命令面更新。


4、启动第二个客户端实例

客户反应如上,服务端也能立刻识别,见下图:


立刻识别出了新增的客户:XwpuCV6U.2,数据库的数量从1变成了2.此时再查看数据库:


已经多增加了一条记录


5、断开一个客户端

比如随便断开一个客户端,服务能否立刻感知到呢?可以


服务端检测到有客户退出。当然此时数据库也少了一项


大概就是如此。当然,还有很多不足,可能最让人困惑的是这东西能干啥。用在PC上确实感觉不到,不过用在嵌入式终端上就会有它的好处了,目前还需继续探讨。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Alljoyn之管中窥豹
Alljoyn之管中窥豹   一、历史: Alljoyn是高通2011年推出的近距离P2P通讯技术,它为分布式应用程序在不同设备中提供了运行环境,特别是移动性、安全性和动态配置,支持Microsoft Windows、Linux、ios和Android等主流的操作系统平台,可以说AllJo...
910 0
【AllJoyn框架-08】AllJoyn在OpenWrt上的实践
依项目需求,需要将alljoyn移植到openwrt开发板上,其实谈不上复杂,只是这东西有点新,参考教程不多,需要足够地摸索。可参考的官方教程写得太不详细,也只能跟着它试试看了。基本步骤如下: 1、下载openwrt源码编译 貌似版本很多,也不是所有版本都适合我的板子,所以这点得弄清楚。我下得是barrier_break,支持mt7620a开发板。按照上面的教程,把该准备的给准备着,具
1633 0
【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用  围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务、数据请求服务、4-20mA服务、短信服务、LED服务以及OPC服务等。
888 0
【工业串口和网络软件通讯平台(SuperIO)教程】二.架构和组成部分
1.1    架构结构图 1.1.1    层次示意图   1.1.2    模型对象示意图   1.2    IO管理器 IO管理器是对串口和网络通讯链路的管理、调度。针对串口和网络通讯链路的特点,在IO管理器接口的基础上派生出串口管理和网络管理。
830 0
【工业串口和网络软件通讯平台(SuperIO)教程】四.开发设备驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    开发准备 把“开发包”内的所有文件复制到项目的“bin”目录下,或项目下的专用生成目录。开发包文件包括如下图:   SuperIO.dll是软件平台的核心模块, SuperIO目录是软件平台的参数配制、数据存储的目录。
785 0
工业串口和网络软件通讯平台(SuperIO 2.0)发布
下载:SuperIO 2.0(开发手册、Demo、组件包) 官网:进入 交流群:54256083        SuperIO 2.0版本正式发布。把SCL正式更改名称为SuperIO。 一、此次升级主要包括两个方面:        构架的软件界面更友好。
706 0
【发布】工业串口和网络软件通讯平台(SuperIO v2.2.4)
SuperIO 下载:本站下载 百度网盘   更新说明: 1.修复无法把数据输出给IAppService的问题,以及无法触发删除操作事件。 2.侦听端口,可以设置。 3.设备接口,增加Object属性,方便平台使用。
590 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
无需从0开发 平头哥教你1天上手蓝牙Mesh应用解决方案
立即下载
HaaS物联网设备云端一体开发框架:AliOS Things
立即下载
LoRaWAN广域连接技术 标准应用体会分享
立即下载