控制端与物联网设备之间基于alljoyn协议的通信方法与流程

文档序号:16818461发布日期:2019-02-10 22:33阅读:240来源:国知局
控制端与物联网设备之间基于alljoyn协议的通信方法与流程

本发明涉及alljoyn网络通信技术,具体涉及控制端与物联网设备之间基于alljoyn协议的通信方法。



背景技术:

Alljoyn是一个开源项目,主要用于近距离无线传输,通过WiFi或蓝牙技术,定位和点对点文件传输。它为分布式应用程序在不同设备中提供了运行环境,特别是移动性、安全性和动态配置。Alljoyn系统处理了异构分布式系统中固有的难题,并解决了将移动性引入方程时所产生的独特问题。这使得应用开发人员可以将注意力集中到应用程序的核心问题上了。

但是在将Alljoyn应用于产品的过程中发现alljoyn提供的接口过于复杂,对于不熟悉alljoyn的开发人员很难直接进行开发,有些内容可能在开发过程中并不需要关心,但是又不得不按照alljoyn规范去实现。所以如何使开发过程更简单,比如设备端关心的只是启动一个唯一标记的服务,接收控制端的发来的指令和向控制端发送自己的状态信息(事件)。控制端关心的是发现网络中所有相关的设备,向指定设备发送特定的命令,接收设备的状态。其它的不用去关心。

在实际的使用过程上,控制端和物联网模块之间通过alljoyn进行通信时,如果因为网络故障,或者异常断电等原因设备掉线了,控制端需要很长时间(2分钟)才能发现掉线,在这个过程中,控制端的任何操作设备都没有响应,会给用户造成困扰。

因此,如何在发生网络或者其它连接异常时,快速地发现设备掉线,是当前亟需解决的一个技术问题。



技术实现要素:

本发明所要解决的技术问题是:提出一种控制端与物联网设备之间基于alljoyn协议的通信方法,解决传统技术中基于alljoyn协议进行通信时,不能快速发现网络连接异常或设备掉线的问题。

本发明解决其技术问题所采用的技术方案是:一种控制端与物联网设备之间基于alljoyn协议的通信方法,包括以下步骤:

A、以物联网设备的SN号加上固定前缀为服务名启动alljoyn服务;

B、控制端发请求查找网络中相应的物联网设备;

C、控制端与相应物联网设备的服务建立会话并保持连接;

D、控制端通过保持的会话与设备进行通讯;

E、设备通过发送广播消息通知控制端当前状态。

进一步,步骤A中,在启动alljoyn服务的同时,为服务发布一个接口,该接口包括一个接收命令的函数和一个发布状态的事件。

进一步,步骤B中,控制端通过固定前缀搜索alljoyn服务从而找到相应物联网设备。

进一步,步骤C中,控制端与相应物联网设备的服务建立会话并保持连接的具体方法是:

alljoyn协议返回所有符合条件的alljoyn服务,控制端尝试用指定的端口去连接服务;如果成功连接,控制端将连接的会话加入设备列表中,触发设备发现事件,其应用程序可以通过该事件进行相应的处理,如果会话未成功连接,则不进行处理,设备不可用。

进一步,步骤C中,所述控制端与相应物联网设备建立会话时会话协议为TCP或UDP。

进一步,步骤D中,所述控制端通过保持的会话与设备进行通讯的具体方法包括:

控制端发现设备后,可以通过服务接口提供的接收命令函数,向设备端发送控制指令,控制指令以二进制形式发送到设备端,设备端接收到控制命令后,触发命令接收事件,应用程序处理相应的接收命令。

进一步,步骤E中,当设备端需要向控制端发送设备的相关状态时,调用状态发送函数,该函数通过alljoyn广播服务接口的发布状态事件,以便所有与该设备连接的所有控制端都能接收到,控制端监听到该事件后,触发状态改变事件给其应用程序执行相关操作。

进一步,步骤C中,还包括:

在物联网设备与控制端之间的会话建立成功后,物联网设备发送上线通知消息;控制端通过建立的活动会话判断当前在线的设备数量。

进一步,步骤E中,还包括:当控制端收到会话掉线消息时会再尝试建立会话,建立会话成功则不触发离线事件,建立会话失败则触发离线事件。

本发明的有益效果是:

1.使开发人员在使用alljoyn协议的过程中,不必要对alljoyn接口进行了解,节省了开发时间,提高了开发效率。

2.避免了Alljoyn协议网络异常时,发现设备掉线时间过长的问题。

3.统一了物联网模块的协议使用,避免了使用过程中可能出现的错误。

附图说明

图1是本发明实施例中的通信方法流程图。

具体实施方式

本发明旨在提出一种控制端与物联网设备之间基于alljoyn协议的通信方法,解决传统技术中基于alljoyn协议进行通信时,不能快速发现网络连接异常或设备掉线的问题。

该通信方法包括以下步骤:

A、以物联网设备的SN号加上固定前缀为服务名启动alljoyn服务;

B、控制端发请求查找网络中相应的物联网设备;

C、控制端与相应物联网设备的服务建立会话并保持连接;

D、控制端通过保持的会话与设备进行通讯;

E、设备通过发送广播消息通知控制端当前状态。

本发明通过制定服务规则,简化了alljoyn发现服务,提供特定的接口,大大减小了使用alljoyn协议的难度,通过使用长连接的会话是否正常,作为判断设备是否掉线的标准,避免了收到设备掉线时间过长的问题。

以下结合附图及实施例对本发明的技术方案作进一步详细阐述:

本例中配备了长虹物联网模块的设备端以长虹的固定前缀和本设备的SN号作为服务名启动Alljoyn服务,并为服务发布一个接口,该接口包括一个接收命令的函数和一个发布状态的事件。如图1所示,在控制端启动后,以长虹的固定前缀搜索网络中的所有物联网设备,alljoyn协议会返回所有符合条件的alljoyn服务,控制端会尝试用指定的端口去连接服务。如果成功连接,控制端将连接的会话加入设备列表中,触发设备发现事件,应用程序可以通过该事件进行相应的处理,如果会话未成功连接,则不进行处理,设备不可用。

控制端发现设备后,可以通过服务接口提供的接收命令函数,向设备端发送控制指令。控制指令以二进制形式发送到设备端,设备端接收到控制命令后,触发命令接收事件,应用程序处理相应的接收命令。

当设备端需要向控制端发送设备的相关状态时,调用状态发送函数,该函数通过alljoyn广播服务接口的发布状态事件,以便所有与该设备连接的控制端都能接收到,控制端监听到该事件后,触发状态改变事件给应用程序执行相关操作。

会话连接断开时,控制端检测该会话是否在设备表中,如果会话在设备列表,则尝试再次建立会话,建立会话不成功则触发设备离线事件。当然,也可以不用尝试再次建立会话,而直接触发设备离线事件。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1