一种基于lorawan协议的节点升级方法及系统与流程

文档序号:17070835发布日期:2019-03-08 23:18阅读:345来源:国知局
一种基于lorawan协议的节点升级方法及系统与流程

本发明涉及网络通信技术领域,尤其涉及一种基于lorawan协议的节点升级方法及系统。



背景技术:

lora是目前最火热的物联网协议中的一员,它具有远距离低功耗的等特性,但每帧传输字节数少、下行通道数资源有限也制约了其大数据大批量下发的可能性。

现有lorawan协议的众多终端中,若需升级,服务器只能对单个终端(节点)逐个进行升级,然而在升级的过程中,通常每个升级包的大小少则1k多则几十k,且终端成千上百,服务器单独对每个终端进行升级的方式会导致更新时间过长。



技术实现要素:

本发明实施例提供了一种基于lorawan协议的节点升级方法及系统,当有新功能升级时,可以提高节点的更新速度。

根据本发明的一个方面,提供一种基于lorawan协议的节点升级方法,包括:

确定感染终端,并向所述感染终端发送升级请求;

接收到所述感染终端发送的升级请求应答后,向所述感染终端发送升级包,使得所述感染终端进行升级操作后,向其余终端发送帧唤醒确定待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作;

在预置第一时间段后,重新确定感染终端。

优选地,所述确定感染终端,并向所述感染终端发送升级请求具体为:

在获取各个终端的终端数据后,根据所述终端数据判断各个所述终端是否版本过低,将第一个被判断版本过低的终端确定为感染终端,并向所述感染终端发送升级请求。

优选地,所述接收到所述感染终端发送的升级请求应答后,向所述感染终端发送升级包,使得所述感染终端进行升级操作后,向其余终端发送帧唤醒确定待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作具体为:

接收到所述感染终端发送的升级请求应答后,向所述感染终端发送升级包,使得所述感染终端进行升级操作后,向其余终端发送帧唤醒,在其余终端中,将被所述帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作。

优选地,所述接收到所述感染终端发送的升级请求应答后,向所述感染终端发送升级包,使得所述感染终端进行升级操作后,向其余终端发送帧唤醒,在其余终端中,将被所述帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作具体为:

接收到所述感染终端发送的升级请求应答后,向所述感染终端发送升级包,使得所述感染终端进行升级操作后,向其余终端发送帧唤醒,在其余终端中,将与所述感染终端的类型标号一致且终端当前版本号低于最新版本号的终端确定为待感染终端,并在延时后向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作;

其中,所述帧唤醒中的终端参数包括所述感染终端的类型标号与所述最新版本号。

优选地,所述升级操作具体包括:

接收各个升级包,对各个所述升级包依次进行解析、整合、校验和安装,若满足预置升级结束条件,则结束升级。

根据本发明的另一方面,提供一种基于lorawan协议的节点升级方法,包括:

接收到服务器发送的升级请求后,向所述服务器发送升级请求应答,其中,所述升级请求为服务器确定感染终端后向所述感染终端发送的请求;

接收到所述服务器发送的升级包后,进行升级操作;

向其余终端发送帧唤醒确定待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作。

优选地,所述向其余终端发送帧唤醒确定待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作具体为:

向其余终端发送帧唤醒,在其余终端中,将被所述帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作。

优选地,所述向其余终端发送帧唤醒,在其余终端中,将被所述帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作具体为:

向其余终端发送帧唤醒,在其余终端中,将与所述感染终端的类型标号一致且终端当前版本号低于最新版本号的终端确定为待感染终端,并在延时后向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作;

其中,所述帧唤醒中的终端参数包括所述感染终端的类型标号与所述最新版本号。

根据本发明的另一方面,提供一种基于lorawan协议的服务器,包括:

第一发送模块,用于确定感染终端,并向所述感染终端发送升级请求;

第二发送模块,用于接收到所述感染终端发送的升级请求应答后,向所述感染终端发送升级包,使得所述感染终端进行升级操作后,向其余终端发送帧唤醒确定待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作;

循环模块,用于在预置第一时间段后,重新确定感染终端。

根据本发明的另一方面,提供一种基于lorawan协议的感染终端,包括:

第三发送模块,用于接收到服务器发送的升级请求后,向所述服务器发送升级请求应答,其中,所述升级请求为服务器确定感染终端后向所述感染终端发送的请求;

升级模块,用于接收到所述服务器发送的升级包后,进行升级操作;

感染模块,用于向其余终端发送帧唤醒确定待感染终端,再向所述待感染终端发送所述升级包,使得所述待感染终端进行升级操作。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明提供了一种基于lorawan协议的节点升级方法及系统,该方法包括:确定感染终端,并向感染终端发送升级请求;接收到感染终端发送的升级请求应答后,向感染终端发送升级包,使得感染终端进行升级操作;感染终端向其余终端发送帧唤醒确定待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作;在预置第一时间段后,重新确定感染终端。通过本发明提供的节点升级方法,当有新功能升级时,可以迅速同步升级到已投放使用的终端上,在不影响用户使用的前提下进行终端升级,加快产品升级速度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明提供的一种基于lorawan协议的节点升级方法的一个实施例的流程示意图;

图2为本发明提供的一种基于lorawan协议的节点升级方法的另一个实施例的流程示意图;

图3为本发明提供的一种基于lorawan协议的节点升级方法的又一个实施例的流程示意图;

图4为本发明提供的一种基于lorawan协议的服务器的一个实施例的结构示意图;

图5为本发明提供的一种基于lorawan协议的感染终端的一个实施例的结构示意图。

具体实施方式

本发明实施例提供了一种基于lorawan协议的节点升级方法及系统,当有新功能升级时,可以提高节点的更新速度。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明提供的一种基于lorawan协议的节点升级方法的一个实施例,包括:

101、确定感染终端,并向感染终端发送升级请求;

在本实施例中,基于lorawan协议的通信集群中,通常设置有服务器和多个终端。首先,服务器需要在多个终端中确定感染终端,并向感染终端发送升级请求。

102、接收到感染终端发送的升级请求应答后,向感染终端发送升级包,使得感染终端进行升级操作后,向其余终端发送帧唤醒确定待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作;

服务器在接收到感染终端发送的升级请求应答后,向感染终端发送升级包,使得感染终端进行升级操作,即更新至最新版本。

感染终端完成升级后,向其余终端发送帧唤醒,在其余终端中确定待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作。

103、在预置第一时间段后,重新确定感染终端。

服务器在预置第一时间段后,则需要重新确定感染终端,相当于重新执行步骤101,即执行循环感染的操作,以对需要升级却还未升级的终端继续进行升级。

通过本发明提供的节点升级方法,当有新功能升级时,可以迅速同步升级到已投放使用的终端上,在不影响用户使用的前提下进行终端升级,加快产品升级速度。

以上为一种基于lorawan协议的节点升级方法的一个实施例,为进行更具体的说明,下面提供一种基于lorawan协议的节点升级方法的另一个实施例,请参阅图2,本发明提供的一种基于lorawan协议的节点升级方法的另一个实施例,包括:

201、在获取各个终端的终端数据后,根据终端数据判断各个终端是否版本过低,将第一个被判断版本过低的终端确定为感染终端,并向感染终端发送升级请求;

在本实施例中,各个终端会向服务器上发终端数据,服务器可以在各组终端数据中解析出各个终端的当前版本号,由于服务器上预置有各个类型的终端的最新版本,因此,可以判断各个终端是否是最新版本,若终端的当前版本号低于最新版本号,则为版本过低。

需要说明的是,本实施例中各个类型的终端指类型标号不同的终端,如有a、b和c三种类型的终端,这三种终端对应的类型标号也不同,服务器上也预置有这三种类型的终端各自对应的最新版本。因此,服务器在确定第一个版本过低的终端后,则将该终端确定为感染终端。

202、接收到感染终端发送的升级请求应答后,向感染终端发送升级包,使得感染终端进行升级操作后,向其余终端发送帧唤醒,在其余终端中,将被帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作;

在本实施例中,服务器接收到感染终端发送的升级请求应答后,向感染终端发送升级包。

感染终端进行升级操作后,向其余终端发送帧唤醒(需要说明的是,感染终端向其余所有终端发送帧唤醒是一个广播的过程),通常帧唤醒中的终端参数包括感染终端的类型标号与最新版本号,且帧唤醒的前导码大于10s。在其余终端(通常每个终端每隔10秒会醒一次,用于接收帧唤醒)中,若存在与感染终端的类型标号一致且终端当前版本号低于最新版本号的终端(即被唤醒的终端),感染终端则将这些终端确定为待感染终端,此时待感染终端被唤醒并切换至长接收模式,可以接收来自感染终端的升级包。如感染终端为a类型的终端,帧唤醒则包含a类型标号和对应的最新版本号(如003),其余终端通常有a、b、c等等类型的终端,此时,其余终端中只有是a类型且其终端当前版本(如002)小于最新版本(003)时,可以被帧唤醒所唤醒,进入长接收模式。

感染终端在延时(通常为5秒)后向待感染终端发送升级包,使得待感染终端进行升级操作。

在本实施例中,感染终端、待感染终端进行升级操作的过程为:接收各个升级包,对各个升级包依次进行解析、整合、校验和安装,若满足预置升级结束条件,则结束升级。

具体的,对升级包校验成功后,即可进行安装完成升级,若校验不成功,则不再接收升级包,进入睡眠模式(相当于升级失败,可以在下次升级循环中完成升级)。

具体的,预置升级结束条件为:在1分钟内未接收到升级包或确定最后一个升级包存在升级结束标识。

203、在预置第一时间段后,重新确定感染终端。

感染终端在发完升级包后,待感染终端完成升级后,均切换回正常模式。此时,服务器在预置第一时间段(通常设置为10分钟,从服务器上一次发送升级请求算起)后,再次执行步骤201,以完成对所有终端的升级。

本发明具体以下优点:

(1)减少周期成本:极大压缩更新时间

(2)产品的更新速度快:当有新功能升级,可以通过此方式同步升级到已投放使用的产品上,在不影响用户使用的前提下进行产品升级,加快产品升级速度。

(3)给用户带来便利:在不影响正常使用的前提下对产品已有问题的修复或者是产品的升级,给用户带来更高的产品体验度。

(4)用户获得更优质的产品服务:产品更新速度快,新功能增加迅速,功能很快得到完善,产品更加稳定,会给用户带来更加优质的服务。

以上是对本发明提供的一种基于lorawan协议的节点升级方法以服务器为执行主体的实施例进行的说明,以下将对基于lorawan协议的节点升级方法以感染终端为执行主体的实施例进行说明,请参阅图3,本发明提供的一种基于lorawan协议的节点升级方法的又一实施例,包括:

301、接收到服务器发送的升级请求后,向服务器发送升级请求应答,其中,升级请求为服务器确定感染终端后向感染终端发送的请求;

302、接收到服务器发送的升级包后,进行升级操作;

303、向其余终端发送帧唤醒确定待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作。

更进一步地,向其余终端发送帧唤醒确定待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作具体为:

向其余终端发送帧唤醒,在其余终端中,将被帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作。

更进一步地,向其余终端发送帧唤醒,在其余终端中,将被帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作具体为:

向其余终端发送帧唤醒,在其余终端中,将与感染终端的类型标号一致且终端当前版本号低于最新版本号的终端确定为待感染终端,并在延时后向待感染终端发送升级包,使得待感染终端进行升级操作;

其中,帧唤醒中的终端参数包括感染终端的类型标号与最新版本号。

以上是对本发明提供的一种基于lorawan协议的节点升级方法进行的详细说明,以下将对本发明提供的一种基于lorawan协议的服务器进行说明,请参阅图4,本发明提供的一种基于lorawan协议的服务器的一个实施例包括:

第一发送模块401,用于确定感染终端,并向感染终端发送升级请求;

第二发送模块402,用于接收到感染终端发送的升级请求应答后,向感染终端发送升级包,使得感染终端进行升级操作后,向其余终端发送帧唤醒确定待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作;

循环模块403,用于在预置第一时间段后,重新确定感染终端。

更进一步地,第一发送模块401还用于在获取各个终端的终端数据后,根据终端数据判断各个终端是否版本过低,将第一个被判断版本过低的终端确定为感染终端,并向感染终端发送升级请求。

更进一步地,第二发送模块402还用于接收到感染终端发送的升级请求应答后,向感染终端发送升级包,使得感染终端进行升级操作后,向其余终端发送帧唤醒,在其余终端中,将被帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作。

更进一步地,第二发送模块402还用于接收到感染终端发送的升级请求应答后,向感染终端发送升级包,使得感染终端进行升级操作后,向其余终端发送帧唤醒,在其余终端中,将与感染终端的类型标号一致且终端当前版本号低于最新版本号的终端确定为待感染终端,并在延时后向待感染终端发送升级包,使得待感染终端进行升级操作;

其中,帧唤醒中的终端参数包括感染终端的类型标号与最新版本号。

更进一步地,升级操作具体包括:

接收各个升级包,对各个升级包依次进行解析、整合、校验和安装,若满足预置升级结束条件,则结束升级。

本发明还涉及供一种基于lorawan协议的感染终端,请参阅图5,本发明提供的一种基于lorawan协议的感染终端的一个实施例,包括:

第三发送模块501,用于接收到服务器发送的升级请求后,向服务器发送升级请求应答,其中,升级请求为服务器确定感染终端后向感染终端发送的请求;

升级模块502,用于接收到服务器发送的升级包后,进行升级操作;

感染模块503,用于向其余终端发送帧唤醒确定待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作。

更进一步地,感染模块503还用于向其余终端发送帧唤醒,在其余终端中,将被帧唤醒中的终端参数唤醒的终端确定为待感染终端,再向待感染终端发送升级包,使得待感染终端进行升级操作。

更进一步地,感染模块503还用于向其余终端发送帧唤醒,在其余终端中,将与感染终端的类型标号一致且终端当前版本号低于最新版本号的终端确定为待感染终端,并在延时后向待感染终端发送升级包,使得待感染终端进行升级操作;

其中,帧唤醒中的终端参数包括感染终端的类型标号与最新版本号。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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