一种双协议网关数据传输方法及系统与流程

文档序号:20885172发布日期:2020-05-26 17:27阅读:325来源:国知局
一种双协议网关数据传输方法及系统与流程

本申请涉及物联网领域,具体而言,涉及一种双协议网关数据传输方法。



背景技术:

蓝牙网关是集成了蓝牙和wifi的网关设备。网关中的蓝牙对外部的蓝牙终端(如ble灯)进行扫描或者连接,得到需要传输的数据,通过wifi上传到网络上,从而可以实现蓝牙终端的远程控制。

目前市面上的蓝牙网关设备,大多是基于单一协议的。其中蓝牙ble网关为蓝牙ble终端提供网络接入功能,蓝牙blemesh网关为蓝牙blemesh终端提供网络接入和控制功能。这样就导致如果家中有不同协议的终端产品,就需要配备不同的网关,这样不仅是一种极大的浪费,同时也大大提升了消费者的教育成本和不好的产品体验。

双协议网关的难点有二个:一个是双协议通信链路的打通,设备要通过网关控制,必须经过一系列的安全加密配网过程,只有通过这个过程配网后,该控制链路才会打通,这是安全的保障,不同的协议配网过程不同,这就需要设计兼容两个协议的流程;另一个是双协议设备的管理与控制,由于两个协议的通信机制不同,并且设备很多,采用一些有用的机制才能使每个设备都能够稳定的控制,其状态可以准确的上报。



技术实现要素:

本申请的主要目的在于提供一种双协议网关数据传输方法,包括:

设置智能设备为配网状态;

云端发送添加命令至网关;

所述网关记录并回复所述添加命令;

当所述智能设备为ble设备时,所述网关扫描智能设备,如果被扫描到的所述智能设备与所述网关记录的所述添加命令中的信息相同,则所述网关连接所述智能设备,且连接成功后向云端发送连接状态信息;当所述智能设备为blemesh设备时,所述网关查询与所述添加命令所记载的信息中相同的设备是否在线,并向云端发送查询状态信息。

可选地,所述所述的双协议网关数据传输方法还包括:

所述云端发送删除命令至所述网关;

所述网关断开已连接的所述智能设备,删除所述添加命令,并回复所述云端。

可选地,当所述智能设备为ble设备时,所述网关主动断开与所述ble设备的连接,或者所述ble设备主动断开连接之后,所述网关将断开状态信息发送至所述云端;当所述智能设备为blemesh设备时,所述blemesh设备查询不到与所述添加命令所记载的信息中相同的设备时,所述网关发送状态至云端。

可选地,所述网关中存储所有智能设备的设备信息。

可选地,当所述智能设备为ble设备时,所述智能设备的设备信息中的设备id的长度为16字节;当所述智能设备为blemesh设备时,所述智能设备的设备信息中的设备id的长度为2字节。

可选地,所述网关查询与所述添加命令所记载的信息中相同的设备是否在线,并向云端发送查询状态信息包括:

所述网关发送查询请求至blemesh设备1;

当所述blemesh设备1回复设备状态后,所述网关发送所述查询请求至blemesh设备2;

重复上述步骤,直至所有预设blemesh设备均回复对应的设备状态;

所述网关发送所述设备状态至所述云端;

所述网关定时重复上述步骤;

当所述网关收到的所述设备状态发生改变时,发送所述改变信息至所述云端。

可选地,当所述智能设备为ble设备时,所述网关通过长连接和/或按需分配连接所述智能设备;

当连接方式为长连接时,所述网关发送实时心跳查询信息至所述智能设备,当所述智能设备在预设时间内没有对所述心跳查询信息回复时,所述网关断开与所述智能设备的连接,并将离线状态发送至所述云端;

当连接方式为按需分配时,所述网关与所述智能设备处于常未连接状态,当需要的时候,由所述云端发送连接命令至所述网关,所述网关根据所述连接命令连接所述智能设备,如果连接成功,则上报状态,进行数据交互,并且预设时间后主动断连,然后将离线状态发送至所述云端。

根据本申请的另一个个方面,还提供了一种双协议网关数据传输系统,包括:

设置模块,用于设置智能设备为配网状态;

发送模块,用于云端发送添加命令至网关;

记录模块,用于所述网关记录并回复所述添加命令;

当所述智能设备为ble设备时,所述网关扫描智能设备,如果被扫描到的所述智能设备与所述网关记录的所述添加命令中的信息相同,则所述网关连接所述智能设备,且连接成功后向云端发送连接状态信息;当所述智能设备为blemesh设备时,所述网关查询与所述添加命令所记载的信息中相同的设备是否在线,并向云端发送查询状态信息。

本申请还公开了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。

本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。

与现有技术相比,本申请具有如下有益效果:

通过本地存储管理设备列表,统筹命令下发以及状态上报,缓解了通信链路压力以及消息丢失;

通过多blemesh设备主动心跳查询管理机制及多ble设备低功耗长连接机制及按需分配连接机制解决了不同协议多设备势必会造成通信的混乱,尤其是命令控制以及状态上报的时候,特别容易混淆或者造成大数据量的拥堵的问题,达到了使系统稳定高效的运行的目的。

附图说明

构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和有益效果变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请一个实施例的双协议网关数据传输方法的流程示意图;

图2是根据本申请一个实施例的设备配网流程示意图;

图3是根据本申请一个实施例的设备添加到网关后通信流程示意图;

图4是根据本申请一个实施例的本地设备列表存储管理流程示意图;

图5是根据本申请一个实施例的多blemesh设备主动心跳查询管理流程示意图;

图6是根据本申请一个实施例的多ble设备连接控制流程示意图;

图7是根据本申请一个实施例的计算机设备的示意图;以及

图8是根据本申请一个实施例的计算机可读存储介质的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

请参照图1-图3,本申请一实施例提供了一种双协议网关数据传输方法,包括:

设置智能设备为配网状态;

云端发送添加命令至网关;

所述网关记录并回复所述添加命令;

当所述智能设备为ble设备时,所述网关扫描智能设备,如果被扫描到的所述智能设备与所述网关记录的所述添加命令中的信息相同,则所述网关连接所述智能设备,且连接成功后向云端发送连接状态信息;当所述智能设备为blemesh设备时,所述网关查询与所述添加命令所记载的信息中相同的设备是否在线,并向云端发送查询状态信息。

设备的配网是安全通信的基础,配网流程采用已有协议,可以通过网关和app连接进行,两者流程相同。设备经过配网之后,才可以被添加到网关下使用,之后的通信流程如下:

网关添加子设备:云端下发添加节点命令给网关,网关本地记录信息并回复

ble连接:有信息记录后,网关扫描空中设备如果和记录相同就进行连接,连接成功后向云端上报状态

blemesh:有信息记录后,主动心跳查询设备是否在线,向云端上报状态

命令下发和状态上报:命令下发通路为,云端发给网关,网关再发给设备,状态上报为设备发给网关,网关回给云端

断开连接:ble设备可以由网关主动断开或者设备主动断开,然后网关将状态发给云端,blemesh设备查询不到心跳的时候,网关将状态回复给云端

本申请一实施例中,所述所述的双协议网关数据传输方法还包括:

所述云端发送删除命令至所述网关;

所述网关断开已连接的所述智能设备,删除所述添加命令,并回复所述云端。

例如,移除子设备,云端下发删除节点命令,网关断开连接子设备并且删除记录信息,回复云端。

本申请一实施例中,当所述智能设备为ble设备时,所述网关主动断开与所述ble设备的连接,或者所述ble设备主动断开连接之后,所述网关将断开状态信息发送至所述云端;当所述智能设备为blemesh设备时,所述blemesh设备查询不到与所述添加命令所记载的信息中相同的设备时,所述网关发送状态至云端。

如图4所示,本申请一实施例中,所述网关中存储所有智能设备的设备信息。

本申请一实施例中,当所述智能设备为ble设备时,所述智能设备的设备信息中的设备id的长度为16字节;当所述智能设备为blemesh设备时,所述智能设备的设备信息中的设备id的长度为2字节。

例如,本地存储设备列表就是网关管理下的设备信息的列表,所有设备信息的集合就构成了该列表。其中ble设备和blemesh设备的信息略有不同,但都包含以下几个:deviceid,devicekey,连接状态等,该信息一方面用来标识设备的唯一性(ssid,服务集标识),另一方面包含了设备控制中需要用到的加密信息以及状态信息。因为加密机制的不同,ble和blemesh设备的信息大部分都不相同的,分别根据需要构建了自己的信息结构,其中最重要的一点就是以deviceid的长度区分是ble设备还是blemesh设备,ble设备为16字节,blemesh设备为2字节,该方式使得可以快速区分出两种设备并有唯一性。

该机制使得可以采用总线的方式对设备进行控制,如果不存储,那么相当于网关只是一个中转,所有控制命令和状态上报都要云端的参与,这样当设备多的时候会造成云端数据的阻塞,每条命令的链路都很长,增加了时间,不仅使控制有延时,也可能造成数据的丢失。网关根据存储的设备信息对设备进行控制,只需要ble总线和blemesh总线就可以控制,同时设备的状态经过网关的检测和处理后,可以统一的经由网络通道总线发给云端。

如图5所示,本申请一实施例中,所述网关查询与所述添加命令所记载的信息中相同的设备是否在线,并向云端发送查询状态信息包括:

所述网关发送查询请求至blemesh设备1;

当所述blemesh设备1回复设备状态后,所述网关发送所述查询请求至blemesh设备2;

重复上述步骤,直至所有预设blemesh设备均回复对应的设备状态;

所述网关发送所述设备状态至所述云端;

所述网关定时重复上述步骤;

当所述网关收到的所述设备状态发生改变时,发送所述改变信息至所述云端。

例如,由于blemesh设备较多,如果采取主动的心跳上报状态,那么很容易造成上报信息的碰撞,导致信息没有收到从而对设备状态的判断失误,造成控制的不稳定,采取主动的心跳查询可以很好的避免这个问题,所有时序的协调都由网关统一处理,不回出现冲突的问题,状态不会出错,同时命令下发也可以进行协调,使得同时只会处理一件事情。

上电后,网关下发状态请求给mesh设备1,设备1回复状态后记录状态,接着对设备2,设备3,……,设备n进行请求,分别得到所有设备的状态,然后将该作为设备的初始状态上报到云端显示。接着网关会定时进行一次请求去获取所有设备的状态,称之为心跳,可以自己设定该时间,当检测到某个设备的状态发生变化时将该状态反馈给云端,云端改变状态。

本申请一实施例中,当所述智能设备为ble设备时,所述网关通过长连接和/或按需分配连接所述智能设备;

当连接方式为长连接时,所述网关发送实时心跳查询信息至所述智能设备,当所述智能设备在预设时间内没有对所述心跳查询信息回复时,所述网关断开与所述智能设备的连接,并将离线状态发送至所述云端;

当连接方式为按需分配时,所述网关与所述智能设备处于常未连接状态,当需要的时候,由所述云端发送连接命令至所述网关,所述网关根据所述连接命令连接所述智能设备,如果连接成功,则上报状态,进行数据交互,并且预设时间后主动断连,然后将离线状态发送至所述云端。

例如,长连接的设备网关会一直查询心跳以证明连接链路还存在,当超过一定时间心跳没有回复的时候,就会断开连接,将离线状态上报给云端,该方式的优点在于设备上报的状态可以迅速的响应,实时上报。

按需分配连接方式就是图下方的方式,平时处于未连接状态,当需要的时候,由云端下发连接命令,网关收到这个命令的时候去连接设备,建立连接,如果成功上报状态,进行数据交互,同时一段时间后主动进行断连,然后将离线状态上报给云端,这种方式的好处在于不占用连接链路资源,分时可以连接多个,没有设备的限制。

如图6所示,ble设备的通信需要建立连接,连接上之后需要进行获取设备信息的请求,该步骤是为了获得加密通信的加密key和随机数,然后发送配对请求,该步骤是为了将deviceid和devicekey发给ble设备以让设备比对信息一致后确认为认证状态,随后才可以进行数据通信,否则将无法通信,连接上之后将连接状态发送给云端显示,由于可以连接多设备,所以设定了分时连接操作,每次只允许一个设备进行连接,只有该设备完全跑完连接流程或者中途失败之后,才可以进行下一个设备的操作,该机制保护了连接过程中的混乱。

与现有技术相比,本申请具有如下有益效果:

通过本地存储管理设备列表,统筹命令下发以及状态上报,缓解了通信链路压力以及消息丢失;

通过多blemesh设备主动心跳查询管理机制及多ble设备低功耗长连接机制及按需分配连接机制解决了不同协议多设备势必会造成通信的混乱,尤其是命令控制以及状态上报的时候,特别容易混淆或者造成大数据量的拥堵的问题,达到了使系统稳定高效的运行的目的。

请参照图7,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。

请参照图8,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。

一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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