一种用于ZigBee网关查询节点设备信息的系统及方法与流程

文档序号:13739769研发日期:2017年阅读:944来源:国知局
技术简介:
本专利针对ZigBee网关在节点设备信息查询时存在时效性差、控制滞后问题,提出通过构建待查询队列、未完成列表等结构,按设备状态分类管理,仅查询未完成信息,减少冗余操作,提升信息收集效率与响应速度。
关键词:ZigBee网关,信息查询优化,节点设备管理

本发明涉及网络网关领域,具体涉及一种用于zigbee网关查询节点设备信息的系统和一种用于zigbee网关查询节点设备信息的方法。



背景技术:

随着物联网技术的发展以及智能家居设备的普及,越来越多的智能家居设备开始进入普通家庭,其中大部分的智能家居设备都应用了zigbee(紫蜂协议)技术。zigbee网关是zigbee网络的核心,通过zigbee网关组建一个zigbee网络,智能家居设备加入到zigbee网络中,成为zigbee网络的一个节点设备,zigbee网关便可对节点设备进行控制。

然而,zigbee网络范围有限,且无法直接与互联网进行连接,因此无法实现用户远程对智能家居设备的查看与控制。为满足用户远程查看和控制的需求,需通过zigbee网关进行转换。在zigbee网关上,zigbee应用程序查询节点设备的信息,提供给互联网侧应用程序,并接收互联网侧应用程序的指令,实现对节点设备的控制。

节点设备的信息从外到内依次包括节点、端点、簇、属性等多个层级,层级之间均为一对多的关系,整体类似于一个树形结构,对于节点设备信息的查询,zigbee网关也是按照这个层级关系逐条进行,但由于zigbee的传输速率较低,当zigbee网络中的节点设备数量较多时,由于传输速率的限制,zigbee网关对于节点设备信息的收集往往不够及时,从而对节点设备控制的时效性造成影响。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种用于zigbee网关查询节点设备信息的系统和一种用于zigbee网关查询节点设备信息的方法,能够有序而快速的对节点设备信息进行收集。

为达到以上目的,本发明采取的技术方案是,包括:

待查询队列,其用于存放还未进行信息查询的节点设备的节点设备;

未完成列表,其用于存放正在进行信息查询的节点设备;

已完成列表,其用于存放信息已查询完成的节点设备;

已存储列表,其用于存放信息已存储至节点文件的节点设备,所述节点文件用于存储查询节点设备得到的信息;

协议栈应用线程,其用于向节点设备发送查询信息的命令,并从查询响应中提取信息;

节点管理线程,其用于根据节点设备信息的查询情况,进行查询的流程跳转和结果处理,并与协议栈应用线程和互联网侧应用程序交互。

在上述技术方案的基础上,所述节点设备信息包括节点、端点、簇和属性,所述节点包括ieee地址、网络地址、端点列表、厂商id和设备名称,所述端点包括设备id、输入类簇列表和输出类簇列表,所述簇包括簇id和属性列表,所述属性包括属性id、属性值、属性值的类型和属性值的长度。

在上述技术方案的基础上,

所述协议栈应用线程包括命令执行模块和结果返回模块;

所述命令执行模块用于向节点设备发送查询信息的命令;

所述结果返回模块用于从查询响应的回调中提取节点设备的信息。

在上述技术方案的基础上,

所述节点管理线程包括信息管理模块、信息查询模块和信息存储模块;

所述信息管理模块用于处理节点设备信息的查询结果,并与互联网侧应用程序进行交互;

所述信息查询模块用于根据查询状态和结果返回模块反馈的信息,进行查询流程的跳转;

所述信息存储模块用于节点设备信息在节点文件的存取。

本发明还提供一种用于zigbee网关查询节点设备信息的方法,其特征在于,包括:

s1:当节点设备加入zigbee网络中时,判断节点设备之前是否在待查询队列、未完成列表、已完成列表或已存储列表中;

s2:若节点设备之前不在待查询队列、未完成列表、已完成列表和已存储列表中,则将节点设备标记为未查询设备并加入到待查询队列中,若节点设备之前在待查询队列中,则将节点设备标记为待查询设备并加入到待查询队列中,若节点设备之前在未完成列表、已完成列表或已存储列表中,则将节点设备对应标记为未完成设备、已完成设备或已存储设备并加入到待查询队列中;

s3:对于待查询队列中的节点设备,按照节点设备的加入时间顺序,依次取出;

s4:若取出的节点设备的标记为未查询设备,则对该节点设备的全部信息进行查询,若取出的节点设备的标记为未完成设备,则继续查询该节点设备未查询的信息,若取出的节点设备的标记为已完成设备或已存储设备,则仅查询该节点设备的属性值信息;

s5:进行下一个节点设备的信息查询,直至待查询队列中所有节点设备均进行信息查询。

在上述技术方案的基础上,

所述节点设备信息包括节点、端点、簇和属性;

所述节点包括ieee地址、网络地址、端点列表、厂商id和设备名称;

所述端点包括设备id、输入类簇列表和输出类簇列表;

所述簇包括簇id和属性列表;

所述属性包括属性id、属性值、属性值的类型和属性的值的长度;

对于标记为已完成设备或已存储设备,查询的信息为属性值。

在上述技术方案的基础上,s4中,对于节点设备的信息查询:

s401:从待查询队列中取出节点设备,进行信息的查询;

s402:若当前节点设备的信息查询成功,转到s403;若失败,则转到s404;

s403:将当前节点设备转入已完成列表中,并存储查询到的当前节点设备的信息至节点文件,然后将当前节点设备转入已存储列表中,并结束;

s404:将当前节点设备转入未完成列表中。

在上述技术方案的基础上,对于节点设备的每一条信息的查询,预设一个重复查询次数,所述重复查询次数用以表明一条信息查询失败后进行尝试重复查询的次数;

若当前节点设备的任一条待查询信息在重复查询次数内查询均失败,则认定当前节点设备的信息查询失败,转到s404;

若当前节点设备待查询的每一条信息均在重复查询次数内查询成功,则认定当前节点设备的信息查询成功,转到s403。

在上述技术方案的基础上,对于标记为未查询设备的节点设备,信息的查询过程为:

s411:查询节点设备的端点列表,同时判断该节点设备是否有下一个端点,若有下一个端点,则转到s412,若没有,则结束;

s412:查询该端点的簇列表,然后转到s413;

s413:判断该端点是否有下一个输入类簇,若有下一个输入类簇,则转到s414,若否,则结束;

s414:查询该输入类簇的属性列表和属性的值列表。

在上述技术方案的基础上,对于标记为已完成列表设备或已存储列表设备的节点设备,信息的查询过程为:

s421:判断节点设备是否有下一个端点,若有下一个端点,则转到s422,若没有,则结束;

s422:判断该端点是否有下一个输入类簇,若有下一个输入类簇,则转到s423,若否,则结束;

s423:查询该输入类簇属性的值列表,然后转到s422。

与现有技术相比,本发明的优点在于:采用多种队列或列表的形式,对加入到zigbee网络中的节点设备进行相应的标记,并依次加入到待查询队列中,保证节点设备信息查询时的有序性,当对节点设备进行信息的查询时,根据节点设备上相应的标记,仅对节点设备中未查询的信息进行查询,降低节点设备信息的查询量,从而加快查询速度。

附图说明

图1为本发明一种用于zigbee网关查询节点设备信息的方法的流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明。

本发明提供一种用于zigbee网关查询节点设备信息的系统,用于zigbee网关对智能家居设备等节点设备的节点设备信息进行查询和收集,从而实现对智能家居设备的控制和管理,本发明实施例中,节点设备即为智能家居设备。本发明的用于zigbee网关查询节点设备信息的系统包括:待查询队列、未完成列表、已完成列表和已存储列表,即设置多个列表或队列,用于对进行了不同查询进度的节点设备进行存放,当节点设备进行节点设备信息查询时,更加清晰的对节点设备进行管理。

节点设备的信息包括节点、端点、簇和属性等信息,具体的,节点包括ieee地址、网络地址(即该节点设备的网络地址)、端点列表(即该节点设备上所有端点或接口的列表)、厂商id和设备名称,ieee地址为64位,为设备在加入网络前就已分配好的地址,网络地址是在网络建立后,设备加入网络时,分配给设备的;端点包括设备id、输入类簇列表和输出类簇列表;簇包括簇id和属性列表;属性包括属性id、属性值、属性值的类型和属性值的长度。

具体的,待查询队列用于存放还未进行信息查询的节点设备,即存放新加入到zigbee网关中的节点设备或之前已加入到zigbee网关中但未进行任何节点设备信息查询的节点设备;未完成列表用于存放正在进行信息查询的节点设备;已完成列表用于存放信息已查询完成的节点设备;已存储列表用于存放信息已存储至节点文件的节点设备,即存放信息已经查询完成且查询得到的信息已存储至节点文件中的节点设备,节点文件用于存储查询节点设备得到的信息。

本发明的用于zigbee网关查询节点设备信息的系统还包括协议栈应用线程和节点管理线程,协议栈应用线程用于向节点设备发送查询信息的命令,并从查询响应中提取信息,即向节点设备发送查询信息的命令,节点设备响应查询命令后,从节点设备中提取出信息。从节点设备中查询提取的信息仅为某个节点设备之前未查询的信息,节点设备之前已被查询的信息存储于节点文件中,如:对于分配至未完成列表中的节点设备,为之前已加入过zigbee网关的节点设备,即已进行过部分信息的查询,则对于未完成列表中的节点设备的信息的查询,则仅需查询之前未查询过的信息,同时并提取;节点管理线程用于根据节点设备信息的查询情况,进行查询的流程跳转和结果处理,并与协议栈应用线程和互联网侧应用程序交互,以便于用户远程对节点设备的控制。对于查询的流程跳转和结果处理具体的,具体的,根据节点设备的当前查询状态,即节点设备当前的信息查询进度,将节点设备分配至对应的待查询队列、未完成列表、已完成列表和已存储列表,以及将提取的节点设备的信息存储至节点文件。

其中,协议栈应用线程包括命令执行模块和结果返回模块;命令执行模块用于向节点设备发送查询信息的命令;结果返回模块用于从查询响应的回调中提取节点设备的信息。节点管理线程包括信息管理模块、信息查询模块和信息存储模块;信息管理模块用于处理节点设备信息的查询结果,并与互联网侧应用程序进行交互;信息查询模块用于根据查询状态和结果返回模块反馈的信息,进行查询流程的跳转即根据节点设备信息的当前查询状态,将节点设备分配至对应的待查询队列、未完成列表、已完成列表和已存储列表;信息存储模块用于节点设备信息在节点文件的存取,即将查询提取得到的节点设备的信息存储至节点文件。

根据节点设备信息的当前查询进度,采用队列的方式,将不同查询进度的节点设备对应分配到不同的队列或列表中,对于节点设备的管理更加有序和清晰,同时,在对节点设备进行信息查询时,仅需查询节点设备之前未查询的信息,有效降低了节点设备信息的查询量,间接提高了接点设备信息查询的速度,保证zigbee网关对于节点设备信息的及时查询和收集。

参见图1所示,本发明还提供一种基于上述用于zigbee网关查询节点设备信息的系统的用于zigbee网关查询节点设备信息的方法,包括:

s1:当节点设备加入zigbee网络中时,判断节点设备之前是否在待查询队列、未完成列表、已完成列表或已存储列表中,因待查询队列、未完成列表、已完成列表和已存储列表为之前已建立,对于加入到zigbee网络中的节点设备,该节点设备可能是第一次加入到zigbee网络,或之前加入过zigbee网络中且有分配到待查询队列、未完成列表、已完成列表或已存储列表中。节点设备在zigbee网络中能够随时加入和退出,因此,对于第一次或再次加入到zigbee网络中的节点设备,需要对节点设备的全部或部分信息进行查询和存储,从而才能实现后续的zigbee网关对节点设备的控制;判断某个节点设备之前在那个队列,可以根据节点设备的ieee地址判断得出,因ieee地址时唯一的,之前该节点设备加入zigbee网络时分属于哪个列表或队列,zigbee网络会对应进行记录。

s2:若节点设备之前不在待查询队列、未完成列表、已完成列表和已存储列表中,说明该节点设备为第一次加入到zigbee网络中,则将节点设备标记为未查询设备并加入到待查询队列中,若节点设备之前在待查询队列中,说明该节点设备之前有加入到zigbee网络中,但未进行任何节点设备信息的查询,则将节点设备标记为待查询设备并加入到待查询队列中,若节点设备之前在未完成列表、已完成列表或已存储列表中,则将节点设备对应标记为未完成设备、已完成设备或已存储设备并加入到待查询队列中,例如,节点设备之前在未完成列表,则将该节点设备标记为未完成设备;

s3:对于待查询队列中的节点设备,按照节点设备的加入时间顺序,依次取出,即先加入待查询队列的先取出;

s4:若取出的节点设备的标记为未查询设备,则对该节点设备的全部信息进行查询,若取出的节点设备的标记为未完成设备,则继续查询该节点设备未查询的信息,若取出的节点设备的标记为已完成设备或已存储设备,则仅查询该节点设备的属性值信息;节点设备信息包括节点、端点、簇和属性;节点包括ieee地址、网络地址、端点列表、厂商id和设备名称;端点包括设备id、输入类簇列表和输出类簇列表;簇包括簇id和属性列表;属性包括属性id、属性值、属性值的类型和属性的值的长度;对于标记为已完成设备或已存储设备,查询的信息为属性值。

s5:进行下一个节点设备的信息查询,即从待查询队列中依次取出下一个节点设备进行信息的查询,直至待查询队列中所有节点设备均进行信息查询。

上述过程中,对于节点设备的信息查询:

s401:从待查询队列中取出节点设备,进行信息的查询;

s402:若当前节点设备的信息查询成功,转到s403;若失败,则转到s404,节点设备信息查询成功的判定依据为查询到所有所要查询的信息。具体的,对于节点设备的每一条信息的查询,预设一个重复查询次数,所述重复查询次数用以表明一条信息查询失败后进行尝试重复查询的次数;若当前节点设备的任一条待查询信息在重复查询次数内查询均失败,则认定当前节点设备的信息查询失败,转到s404;若当前节点设备待查询的每一条信息均在重复查询次数内查询成功,则认定当前节点设备的信息查询成功,转到s403。

s403:将当前节点设备转入已完成列表中,提取查询到的当前节点设备的信息,并存储查询到的当前节点设备的信息至节点文件,然后将当前节点设备转入已存储列表中,并结束;

s404:将当前节点设备转入未完成列表中。

对于标记为未查询设备的节点设备,信息的具体查询过程为:

s411:查询节点设备的端点列表,同时判断该节点设备是否有下一个端点,若有下一个端点,则转到s412,若没有,则结束;

s412:查询该端点的簇列表,然后转到s413;

s413:判断该端点是否有下一个输入类簇,若有下一个输入类簇,则转到s414,若否,则结束;

s414:查询该输入类簇的属性列表和属性的值列表。

对于标记为已完成列表设备或已存储列表设备的节点设备,节点设备信息的查询具体过程为:

s421:判断节点设备是否有下一个端点,若有下一个端点,则转到s422,若没有,则结束;

s422:判断该端点是否有下一个输入类簇,若有下一个输入类簇,则转到s423,若否,则结束;

s423:查询该输入类簇属性的值列表,然后转到s422。

本发明的用于zigbee网关查询节点设备信息的方法的原理为:采用多种队列或列表的形式,对于第一次加入到zigbee网络中的节点设备或之前已加入过zigbee网络中且已进行全部或部分信息查询的节点设备,相应的进行标记并加入到待查询队列中,保证进行节点设备信息查询时的有序性,然后从待查询队列依次取出节点设备,对当前节点设备中未查询的信息进行查询和存储,有效降低节点设备信息的查询量,加快节点设备信息的查询速度,保证zigbee网关对于节点设备信息的快速查询和收集,避免因节点设备信息查询时的时效性问题而导致zigbee网关对节点设备无法进行有效的控制。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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