一种选择方法、装置及计算机存储介质与流程

文档序号:19688646发布日期:2020-01-14 18:37阅读:121来源:国知局
一种选择方法、装置及计算机存储介质与流程

本发明涉及通信领域的远距离无线电(lora,longrangeradio)技术,尤其涉及一种选择方法、装置及计算机存储介质。



背景技术:

在远距离无线电广域网络(lorawan,longrangeradiowideareanetwork)中,由于b等级通信终端(也称为classb终端)的特性,classb终端除在向网络服务器发送报文之后开启的下行窗口外,还会在指定时间内开启一些额外下行窗口。目前,网关(基站)利用哪个额外下行窗口向classb终端发送报文是由网络服务器依据相关算法计算得出的理论值来确定的,然而,若网关(基站)网络延时较大时,这样会降低classb终端接收报文的成功率。



技术实现要素:

为解决现有存在的技术问题,本发明实施例提供一种选择方法、装置及计算机存储介质。

为达到上述目的,本发明实施例的技术方案是这样实现的:

第一方面,本发明实施例提供一种选择方法,所述方法包括:

确定向classb终端发送的lorawan下行报文、所述lorawan下行报文的传输时间、能够发送所述lorawan下行报文的每一第一时间点以及转发所述lorawan下行报文的转发网关;

确定所述转发网关的网关延时和状态信息;

基于当前时间点、所述网关延时和所述每一第一时间点,获得所述转发网关能够发送所述lorawan下行报文的时间点集;

基于所述时间点集和所述转发网关的状态信息,获得所述转发网关能够发送所述lorawan下行报文的目标时间点;

基于所述目标时间点和所述lorawan下行报文的传输时间,获得所述classb终端接收所述lorawan下行报文的额外下行窗口。

在上述方案中,所述确定向classb终端发送的lorawan下行报文,包括:

接收用户指令;基于所述用户指令,获得下行数据;

按照lorawan协议对所述下行数据进行封装,获得封装结果;

将所述封装结果作为所述lorawan下行报文。

在上述方案中,确定能够发送所述lorawan下行报文的每一第一时间点,包括:

获得所述classb终端在设定周期内开启额外下行窗口的每一第二时间点;

基于所述lorawan下行报文的传输时间和所述每一第二时间点,确定能够发送所述lorawan下行报文的每一第一时间点。

在上述方案中,所述获得所述classb终端在设定周期内开启额外下行窗口的每一第二时间点,包括:

将所述classb终端的终端标识作为第一查询键值;

基于所述第一查询键值和第一映射关系,获得存储的所述classb终端在设定周期内开启额外下行窗口的每一第二时间点。

在上述方案中,确定转发所述lorawan下行报文的转发网关,包括:

获得网关历史信息;基于所述网关历史信息,确定转发所述lorawan下行报文的转发网关。

在上述方案中,所述基于所述网关历史信息,确定转发所述lorawan下行报文的转发网关,包括:

基于所述网关历史信息,获得每一网关元数据;

按照设定规则对所述每一网关元数据进行第一排序,获得第一排序结果;

基于所述第一排序结果,确定目标网关元数据;

基于所述目标网关元数据,确定转发所述lorawan下行报文的转发网关。

在上述方案中,所述确定所述转发网关的网关延时和状态信息,包括:

将所述转发网关的网关标识码作为第二查询键值;

基于所述第二查询键值和第二映射关系,获得存储的所述转发网关对应的网关延时;

基于所述第二查询键值和第三映射关系,获得存储的所述转发网关对应的状态信息。

在上述方案中,所述基于当前时间点、所述网关延时和所述每一第一时间点,获得所述转发网关能够发送所述lorawan下行报文的时间点集,包括:

基于所述当前时间点和所述网关延时,确定互联网协议ip下行报文到达所述转发网关的预计时间点;

将所述预计时间点与所述每一第一时间点进行比较,获得比较结果;

基于比较结果,确定所述转发网关能够发送所述lorawan下行报文的每一第三时间点;

基于所述每一第三时间点,确定所述转发网关能够发送所述lorawan下行报文的时间点集。

在上述方案中,所述基于所述时间点集和所述转发网关的状态信息,获得所述转发网关能够发送所述lorawan下行报文的目标时间点,包括:

基于所述转发网关的状态信息,确定在所述时间点集中每一第三时间点所述转发网关的状态;

基于所述每一第三时间点所述转发网关的状态,获得每一第一目标时间点;所述第一目标时间点为所述转发网关处于空闲的第三时间点;

按照设定条件对所述每一第一目标时间点进行第二排序,获得第二排序结果;

基于所述第二排序结果,获得所述转发网关能够发送所述lorawan下行报文的目标时间点。

在上述方案中,所述基于所述目标时间点和所述lorawan下行报文的传输时间,获得所述classb终端接收所述lorawan下行报文的额外下行窗口,包括:

基于所述目标时间点和所述传输时间,获得接收时间点;

将所述接收时间点对应的额外下行窗口作为所述classb终端接收所述lorawan下行报文的额外下行窗口。

在上述方案中,所述方法还包括:配置所述classb终端在设定周期内开启的额外下行窗口。

在上述方案中,所述配置所述classb终端在设定周期内开启的额外下行窗口,包括:

获得向所述classb终端发送的历史数据和需要向所述classb终端发送的当前数据;

基于所述历史数据和所述当前数据,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数;

基于所述需要开启的额外下行窗口的个数,配置调整指令;

向所述classb终端发送所述调整指令。

在上述方案中,所述基于所述历史数据和所述当前数据,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数,包括:

将所述历史数据与设定阈值进行比较,获得第一比较结果;

将所述当前数据与所述设定阈值进行比较,获得第二比较结果;

基于所述第一比较结果和所述第二比较结果,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数。

在上述方案中,所述设定阈值包括设定最大阈值和设定最小阈值;

对应的,将所述历史数据与设定阈值进行比较,获得第一比较结果,包括:将所述历史数据与设定最大阈值进行比较和将所述历史数据与设定最小阈值进行比较,获得第一比较结果;

将所述当前数据与设定阈值进行比较,获得第二比较结果,包括:将所述当前数据与设定最大阈值进行比较和将所述当前数据与设定最小阈值进行比较,获得第二比较结果;

对应的,基于所述第一比较结果和所述第二比较结果,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数,包括:

当所述历史数据和/或所述当前数据不小于设定最大阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最大阈值;

当所述历史数据和所述当前数据均不大于设定最小阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最小阈值;

当所述历史数据和所述当前数据均在所述设定最大阈值和所述设定最小阈值之间时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述当前数据与某一随机数值的和;所述某一随机数值的取值范围在0到所述当前数据与所述历史数据之差的绝对值之间。

在上述方案中,所述方法还包括:

确定网络延时测试报文和n个测试时间点;n为正整数;

在n个测试时间点分别向所述转发网关发送所述网络延时测试报文,获得所述每一测试时间点对应的应答时间点;

基于所述n个测试时间点和所述每一测试时间点对应的应答时间点,获得所述转发网关的网关延时;

确定所述转发网关的网关标识码与所述网关延时的第二映射关系,并将所述第二映射关系存储于数据库。

第二方面,本发明实施例还提供一种选择装置,所述装置包括:第一确定模块、第二确定模块、第一获得模块、第二获得模块和第三获得模块,其中:

所述第一确定模块,用于确定向classb终端发送的lorawan下行报文、所述lorawan下行报文的传输时间、能够发送所述lorawan下行报文的每一第二时间点以及转发所述lorawan下行报文的转发网关;

所述第二确定模块,用于确定所述转发网关的网关延时和状态信息;

所述第一获得模块,用于基于当前时间点、所述网关延时和所述每一第二时间点,获得所述转发网关能够发送所述lorawan下行报文的时间点集;

所述第二获得模块,用于基于所述时间点集和所述转发网关的状态信息,获得所述转发网关能够发送所述lorawan下行报文的目标时间点;

所述第三获得模块,用于基于所述目标时间点和所述lorawan下行报文的传输时间,获得所述classb终端接收所述lorawan下行报文的额外下行窗口。

在上述方案中,所述第一确定模块包括接收单元和封装单元,其中,所述接收单元,用于接收用户指令;基于所述用户指令,获得下行数据;所述封装单元,用于按照lorawan协议对所述下行数据进行封装,获得封装结果;将所述封装结果作为所述lorawan下行报文。

在上述方案中,所述第一确定模块包括:第一获得单元和第一确定单元,其中,所述第一获得单元,用于获得所述classb终端在设定周期内开启额外下行窗口的每一第二时间点;所述第一确定单元,用于基于所述lorawan下行报文的传输时间和所述每一第二时间点,确定能够发送所述lorawan下行报文的每一第一时间点。

在上述方案中,所述第一获得单元,具体用于:将所述classb终端的终端标识作为第一查询键值;基于所述第一查询键值和第一映射关系,获得存储的所述classb终端在设定周期内开启额外下行窗口的每一第二时间点。

在上述方案中,第一确定模块包括第二获得单元和第二确定单元,其中,所述第二获得单元,用于获得网关历史信息;所述第二确定单元,用于基于所述网关历史信息,确定转发所述lorawan下行报文的转发网关。

在上述方案中,所述第二确定单元,具体用于:基于所述网关历史信息,获得每一网关元数据;按照设定规则对所述每一网关元数据进行第一排序,获得第一排序结果;基于所述第一排序结果,确定目标网关元数据;基于所述目标网关元数据,确定转发所述lorawan下行报文的转发网关。

在上述方案中,第二确定模块,具体用于:将所述转发网关的网关标识码作为第二查询键值;基于所述第二查询键值和第二映射关系,获得存储的所述转发网关对应的网关延时;基于所述第二查询键值和第三映射关系,获得存储的所述转发网关对应的状态信息。

在上述方案中,第一获得模块,具体用于:基于所述当前时间点和所述网关延时,确定互联网协议ip下行报文到达所述转发网关的预计时间点;将所述预计时间点与所述每一第一时间点进行比较,获得比较结果;基于比较结果,确定所述转发网关能够发送所述lorawan下行报文的每一第三时间点;基于所述每一第三时间点,确定所述转发网关能够发送所述lorawan下行报文的时间点集。

在上述方案中,第二获得模块,具体用于:基于所述转发网关的状态信息,确定在所述时间点集中每一第三时间点所述转发网关的状态;基于所述每一第三时间点所述转发网关的状态,获得每一第一目标时间点;所述第一目标时间点为所述转发网关处于空闲的第三时间点;按照设定条件对所述每一第一目标时间点进行第二排序,获得第二排序结果;基于所述第二排序结果,获得所述转发网关能够发送所述lorawan下行报文的目标时间点。

在上述方案中,第三获得模块,具体用于:基于所述目标时间点和所述传输时间,获得接收时间点;将所述接收时间点对应的额外下行窗口作为所述classb终端接收所述lorawan下行报文的额外下行窗口。

在上述方案中,所述装置还包括:配置模块,用于配置所述classb终端在设定周期内开启的额外下行窗口。

在上述方案中,所述配置模块包括:第三获得单元、第三确定单元、配置单元和发送单元,其中,所述第三获得单元,用于获得向所述classb终端发送的历史数据和需要向所述classb终端发送的当前数据;所述第三确定单元,用于基于所述历史数据和所述当前数据,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数;所述配置单元,用于基于所述需要开启的额外下行窗口的个数,配置调整指令;所述发送单元,用于向所述classb终端发送所述调整指令。

在上述方案中,所述第三确定单元包括:第一比较子单元、第二比较子单元和确定子单元,其中,所述第一比较子单元,用于将所述历史数据与设定阈值进行比较,获得第一比较结果;所述第二子单元,用于将所述当前数据与所述设定阈值进行比较,获得第二比较结果;所述确定子单元,用于基于所述第一比较结果和所述第二比较结果,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数。

在上述方案中,所述第一比较子单元,具体用于:将所述历史数据与设定最大阈值进行比较和将所述历史数据与设定最小阈值进行比较,获得第一比较结果;所述第二比较子单元,用于将所述当前数据与设定最大阈值进行比较和将所述当前数据与设定最小阈值进行比较,获得第二比较结果;所述确定子单元,具体用于:当所述历史数据和/或所述当前数据不小于设定最大阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最大阈值;当所述历史数据和所述当前数据均不大于设定最小阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最小阈值;当所述历史数据和所述当前数据均在所述设定最大阈值和所述设定最小阈值之间时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述当前数据与某一随机数值的和;所述某一随机数值的取值范围在0到所述当前数据与所述历史数据之差的绝对值之间。

在上述方案中,所述装置还包括:第三确定模块、第四获得模块、第五获得模块、第四确定模块和存储模块,其中,所述第三确定模块,用于确定网络延时测试报文和n个测试时间点;n为正整数;所述第四获得模块,用于在n个测试时间点分别向所述转发网关发送所述网络延时测试报文,获得所述每一测试时间点对应的应答时间点;所述第五获得模块,用于基于所述n个测试时间点和所述每一测试时间点对应的应答时间点,获得所述转发网关的网关延时;所述第四确定模块,用于确定所述转发网关的网关标识码与所述网关延时的第二映射关系;所述存储模块,用于存储所述第二映射关系存储于数据库。

第三方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,当所述计算机程序被至少一个处理器执行时实现上述任一项所述方法。

第四方面,本发明实施例还提供一种选择装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行前述任一项所述方法的步骤。

本发明实施例提供一种选择方法、装置及计算机存储介质,所述方法包括:确定向classb终端发送的lorawan下行报文、所述lorawan下行报文的传输时间、能够发送所述lorawan下行报文的每一第一时间点以及转发所述lorawan下行报文的转发网关;确定所述转发网关的网关延时和状态信息;基于当前时间点、所述网关延时和所述每一第一时间点,获得所述转发网关能够发送所述lorawan下行报文的时间点集;基于所述时间点集和所述转发网关的状态信息,获得所述转发网关能够发送所述lorawan下行报文的目标时间点;基于所述目标时间点和所述lorawan下行报文的传输时间,获得所述classb终端接收所述lorawan下行报文的额外下行窗口。采用本发明实施例提供的classb终端在设定周期内的额外下行窗口选择方法和装置,可以基于转发网关的网关延时和状态信息,合理的选择时间向classb终端发送所述lorawan下行报文,以保证classb终端能够接收到所述lorawan下行报文,提高了classb终端接收网络服务器主动下发报文的成功率。

附图说明

图1为本发明实施例提供的一种classb终端额外下行窗口选择方法流程示意图;

图2为本发明实施例中的一种lorawan架构的结构示意图;

图3为本发明实施例提供的一种classb终端额外下行窗口选择方法详细流程示意图;

图4为本发明实施例提供的一种classb终端额外下行窗口选择装置的结构示意图;

图5为本发明实施例提供的一种classb终端额外下行窗口选择装置的硬件结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对发明的具体技术方案做进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

为了便于理解本发明,首先对lorawan中classb终端的相关技术作简单的介绍。

lorawan是基于远距离(lora,longrange)通信网络设计的一套通信协议和系统架构,被广泛应用于物联网中,在lorawan中,通信终端被分为:a等级通信终端(也称为classa终端)、b等级通信终端(也称为classb终端)、c等级通信终端(也称为classc终端),这三种类型的通信终端在功耗性和实时性上有着截然不同的特性。

具体的,classa终端绝大部分时间处于休眠状态,只有每次向网络服务器发送报文时,才会紧接着开启两个下行窗口,其中,该下行窗口用以接收网络服务器发送的对应于classa终端发送的报文的应答报文;而网络服务器想要给classa终端主动发送下行数据时,必须等到classa终端向网络服务器发送了报文之后,将该下行数据包含在应答报文中一起发送给classa终端。基于此特性,classa终端有着最低的功耗和最低的实时性。

classc终端绝大部分时间处于接收状态,也就是说,classc终端除了向网络服务器发送报文时关闭下行窗口之外,其余时间下行窗口均处于开启状态。网络服务器在几乎任何时候均可给classc终端发送报文。基于此特点,classc终端有着最高的功耗和最高的实时性。

而classb终端的功耗和实时性介于classa和classc终端之间,是因为classb终端除了在其向网络服务器发送报文后开启的下行窗口之外,还可以在指定时间开启额外下行窗口。在实际应用过程中,为了实现classb终端会在指定时间开启额外下行窗口,classb终端需要按照设定周期从网关中获取网关时间,并基于获取的网关时间调整自身的本地时间,以与网关保持时间同步,这样才能保证成功接收网络服务器发送的报文。在相关技术中,在一个设定周期内,网关(基站)利用哪个额外下行窗口向classb终端发送报文是由网络服务器依据相关算法计算得出的理论值,若网关(基站)网络延时较大时,可能会出现在网关(基站)接收到网络服务器要转发的报文时,已经晚于基于相关算法计算得出的发送时间,这样,在网络服务器与classb终端已经约定好的在指定时间内开启的额外下行窗口就接收不到该报文,这样会降低classb终端接收报文的成功率。

并且在相关技术中classb终端额外下行窗口的数量以及开启的时间点通常是classb终端在出厂时已经设置好的固定值,在整个classb终端的生命周期内,这些固定值不会改变,这样一来,在一段时间内,网络服务器没有向classb终端发送报文时,classb终端也会定期的开启额外下行窗口,这样势必造成classb终端的不必要的功耗。

由此看来,如何提高classb终端接收报文的成功率和降低classb终端的功耗,亟需一种classb终端额外下行窗口选择方法,来解决这个问题。基于此,本发明实施例提供一种classb终端额外下行窗口选择方法,不仅能够提高classb终端接收报文的成功率,还可以降低classb终端不必要的功耗。需要说明的是,本发明实施例涉及的网关或者基站起到的作用均是中转,二者的作用是相同的,因此,下面仅以网关为例说明本发明的发明构思。

下面结合附图及具体实施例对本发明作进一步详细的说明。

如图1所示,其示出一种classb终端额外下行窗口选择方法流程示意图。所述方法包括:

s101:确定向classb终端发送的lorawan下行报文、所述lorawan下行报文的传输时间、能够发送所述lorawan下行报文的每一第一时间点以及转发所述lorawan下行报文的转发网关;

s102:确定所述转发网关的网关延时和状态信息;

s103:基于当前时间点、所述网关延时和所述每一第一时间点,获得所述转发网关能够发送所述lorawan下行报文的时间点集;

s104:基于所述时间点集和所述转发网关的状态信息,获得所述转发网关能够发送所述lorawan下行报文的目标时间点;

s105:基于所述目标时间点和所述lorawan下行报文的传输时间,获得所述classb终端接收所述lorawan下行报文的额外下行窗口。

需要说明的是,额外下行窗口也就是classb终端在设定周期内开启的下行窗口。

在一些实施例中,对于s101中的确定向classb终端发送的lorawan下行报文,可以包括:接收用户指令,基于所述用户指令,获得下行数据;按照lorawan协议对所述下行数据进行封装,获得封装结果;将所述封装结果作为所述lorawan下行报文。

需要说明的是,在lorawan中,网络服务器向classb终端发送报文有两种不同的过程,一种是被动下行过程,一种是主动下行过程,其中,所述被动下行过程是指在classb终端向网络服务器发送了报文,网络服务器响应于该报文,向classb终端发送关于该报文的应答的过程;所述主动下行过程是指网络服务器主动向classb终端发送报文的过程。在网络服务器主动向classb终端发送报文也即:主动下行过程时,classb终端响应于网络服务器主动发送的该报文,并向网络服务器发送关于该报文的应答。

本领域技术人员可以理解的是,在lorawan中,classb终端仍具备classa终端的特性,因此,classb终端向网络服务器发送报文后,classb终端在设定时延后开启两个下行窗口以接收网络服务器发送关于该报文的应答,因此,本发明适用于网络服务器向classb终端主动发送报文的情况,也即主动下行过程的情况。需要说明的是,设定时延是网络服务器与classb终端依据lorawan协议设置的延时,是指classb终端发送lorawan上行报文后,等待设定时延后,开启第一下行窗口,然后再经过设定窗口开启间隔,开启第二下行窗口,其中所述设定窗口开启间隔也是依据lorawan协议设置的。所述lorawan上行报文是指classb终端按照lorawan协议封装形成的报文。

在实际应用过程中,在lorawan架构中,如图2所示,网络服务器可以与用户进行通信,此处所说的用户一般是指用户应用程序(app,application)或者其他用户客户端,其可以从网络服务器中获取数据。用户指令是用户通过用户app或者用户客户端向网络服务器发送的,用于指示网络服务器向对应的classb终端发送包含操作命令的lorawan下行报文,其中,操作命令为对classb终端的一些具体操作,比如,查询、配置操作等。在实际应用过程中,用户指令的种类多种多样,比如,终端参数查询指令、终端参数设置指令、充值指令等等,在此可不做限制。

在实际应用过程中,基于所述用户指令,获得下行数据,包括:

对所述用户指令进行第一解析,获得第一解析结果;基于所述第一解析结果,获得下行数据。

需要说明的是,此处的第一解析可以是网络服务器根据设定协议将用户指令进行解析的过程,其中,设定协议可以是与用户app或者用户客户端预先约定好的,比如,设定协议可以是互联网协议ip。所述下行数据至少包括classb终端的终端标识,所述终端标识为一种唯一性标识,换句话说,终端标识像一个身份标识,来标识通信终端的唯一性。网络服务器可以基于classb终端的终端标识确定向哪个classb终端发送该下行报文。所述下行数据还可以包括操作命令,比如,查询、配置操作命令。

示例性的,若在一个lorawan架构中,包括classb终端1、classb终端2、classb终端3,且当classb终端1、classb终端2、classb终端3均为电表时,网络服务器接收的用户指令可以是用户通过app或者用户客户端向网络服务器发送的用电度数查询指令、电费充值指令等等。比如,当网路服务器接收到电费充值指令后,对该电费充值指令进行第一解析,获得电费充值的数值,比如50元,以及classb终端1的通信标识,也就是说,网络服务器需要向classb终端1下发包含充值50元电费的报文。

在一些实施例中,对于s101中确定所述lorawan下行报文的传输时间,可以包括:基于所述lorawan下行报文,确定所述lorawan下行报文的传输时间。

具体来讲,该lorawan下行报文为一种按照lorawan协议封装形成的报文,所述lorawan下行报文的传输时间是指该lorawan下行报文从网关传输到classb终端,且classb终端完全接收到所述下行报文的时间。

在实际应用过程中,基于lorawan协议,所述下行报文的格式包括:前导码(preamble)、报头(header)以及数据有效负荷(payload),其中,preamble用于保持classb终端与接收的数据流同步,换句话说,preamble用于提醒classb终端即将接收的是有效数据,注意接收,以免丢失有效数据,当preamble接收完毕,会立即接收到有效数据;header包括显示报头模式和隐式报头模式,所述显示报头模式包括payload长度、前向纠错编码率、是否使用循环冗余校验(crc,cyclicredundancycheck);所述隐式报头模式是指若payload长度、前向纠错编码率以及crc为固定值或者已知,在该种情况下,需要手动设置网关和classb终端的payload长度、前向纠错编码率以及crc,而不需要将payload长度、前向纠错编码率以及crc设置在下行报文,采用这种方式以缩短下行报文在空中的传输时间;payload是指有效数据,其实际长度和前向纠错编码率在显示报头模式的header中制定或者在已知的情况下,在网关和classb终端中手动设置。

在一些实施例中,所述下行报文的传输时间可以通过以下公式进行计算:

(1)

(2)

(3)

(4)

(5)

(6)

其中,t为网关将所述下行报文完全传输到classb终端所需的时间,也称为传输时间;tpreamble为前导码传输的时间;tpayload为数据有效负荷的传输的时间;npre为preamble的长度;tpay为单个lora数据包的符号传输的时间;npayload为数据有效负荷中包含的符号数;pl为数据有效负荷字节数;sf为扩频因子;h为不同报头模式的取值,其中,显示报头模式时,h=0;隐式报头模式时,h=1;de为1或者0,当单个lora数据包的符号传输的时间超过16毫秒时,de=1;否则de=0;cr为前向纠错编码率,取值范围为1-4;rs为符号持续时间;bw为带宽。需要说明的是,此处所说的时间的单位为毫秒。

示例性的,当传输该下行报文的bw为125khz、该下行报文的pl为26,且,sf=9,h=0,de=0,cr=1时,t=205.824ms。

在一些实施例中,对于s101中的确定能够发送所述lorawan下行报文的每一第一时间点,可以包括:

获得所述classb终端在设定周期内开启额外下行窗口的每一第二时间点;

基于所述lorawan下行报文的传输时间和所述每一第二时间点,确定能够发送所述lorawan下行报文的每一第一时间点。

需要说明的是,设定周期是指classb终端、网关、网络服务器之间时间同步的周期,在此设定周期内,classb终端、网关、网络服务器时间是同步的。

在一些实施例中,所述获得所述classb终端在设定周期内开启额外下行窗口的每一第二时间点,包括:将所述classb终端的终端标识作为第一查询键值;

基于所述第一查询键值和第一映射关系,从数据库中获得存储的所述classb终端在设定周期内开启额外下行窗口的每一个第二时间点。

需要说明的是,基于lorawan协议的规定,在classb终端在入网阶段以及入网后的通信阶段,classb终端会将出厂时已经设置好的设定周期、在设定周期开启的额外下行窗口的数量,按照lorawan协议进行封装形成包含配置信息的lorawan上行报文,并将该包含配置信息的lorawan上行报文通过网关上报给网络服务器。其中,配置信息就是指前述的设置好的设定周期、在设定周期开启的额外下行窗口的数量。网关在接收到该包含配置信息的lorawan上行报文后,会按照ip将该包含配置信息的lorawan上行报文进行封装形成ip上行报文,向网络服务器发送该ip上行报文,网络服务器接收到此ip上行报文时,按照ip解析该ip上行报文,获得包含配置信息的lorawan上行数据,再按照lorawan协议对该lorawan上行数据进行解析,获得classb终端对应的设定周期、额外下行窗口的开启数量,然后按照lorawan协议中规定的算法,计算获得在设定周期内每一个额外下行窗口的开启的第二时间点,然后,确定classb终端的终端标识和classb终端对应的每一个额外下行窗口开启的第二时间点的第一映射关系,并将所述第一映射关系存储于数据库。需要说明的是,这里所说的lorawan上行数据实质为前述包含配置信息的lorawan上行报文;ip上行报文包含lorawan上行数据。此处所说的第二时间点仅是用于区别后续的第一时间点,并没有任何限制本发明的作用。

本领域技术人员应该知道,在classb终端和网络服务器中存储有计算在设定周期内每一额外下行窗口开启的第二时间点的算法,由于classb终端和网络服务器时间同步,因此网络服务器可以计算出classb终端在设定周期内开启额外下行窗口的第二时间点,具体计算过程在此不再赘述。

在一些实施例中,所述基于所述lorawan下行报文的传输时间和所述每一第二时间点,确定能够发送所述lorawan下行报文的每一第一时间点,可以包括:将所述每一第二时间点减去所述lorawan下行报文的传输时间,获得所述每一第二时间点对应的第一时间点。

示例性的,假设classb终端在设定周期内开启三个额外下行窗口a、b、c且开启的第二时间点为t11、t12、t13,lorawan下行报文的传输时间为t,此时,基于前述,所述每一第二时间点对应的第一时间点为:t11-t;t12-t;t13-t。

这里,所述每一第二时间点与所述每一第一时间点一一对应。

在一些实施例中,对于s101中的确定转发所述lorawan下行报文的转发网关,可以包括:获得网关历史信息;基于所述网关历史信息,确定转发所述lorawan下行报文的转发网关。

需要说明的是,此处所说网关历史信息至少包括设定时间段内向所述classb终端转发报文的各网关元数据;所述网关元数据包括网关标识码、信道标识、信号强度、信噪比等,所述网关标识码为网关的身份(identification)的唯一性的标识,比如,网关标识码可以是网关出厂时分配的媒体访问控制(mac,mediaaccesscontrol)地址;所述信道标识可以为报文发送所采用信道的编码;所述信号强度可以为报文发送所采用信道的信号强度;所述信噪比为报文发送所采用信道的信噪比。设定时间段是指过去一段时间,比如,设定时间段可以设置为过去的1小时、10小时、1天等等,可以人为的设定。

在一些实施例中,基于所述网关历史信息,确定转发所述lorawan下行报文的转发网关,包括:

基于所述网关历史信息,获得每一网关元数据;

按照设定规则对所述每一网关元数据进行第一排序,获得第一排序结果;

基于所述第一排序结果,确定目标网关元数据;

基于所述目标网关元数据,确定转发所述lorawan下行报文的转发网关。

需要说明的是,设定规则可以是网关元数据中信号强度的大小,也可以是网关元数据中信噪比的大小等。

作为一种实施例方式,按照设定规则对所述每一网关元数据进行第一排序,获得第一排序结果,包括:

按照信号强度从大到小的顺序对所述每一网关元数据进行第一排序,获得第一排序结果。

对应的,基于所述第一排序结果,确定目标网关元数据,包括:

将排序在第一的信号强度对应的网关元数据作为目标网关元数据。

在实际应用过程中,在确定目标网关元数据之后,将所述目标网关元数据中的网关标识码对应的网关确定为所述lorawan下行报文的转发网关。

需要说明的是,在实际应用过程中,对于如何选择转发网关的策略有很多,本发明实施例仅以其中一种可选的方式进行阐述本发明的构思。

在实际应用过程中,对于s102,可以包括:

将所述转发网关的网关标识码作为第二查询键值;

基于所述第二查询键值和第二映射关系,获得存储的所述转发网关对应的网关延时;

基于所述第二查询键值和第三映射关系,获得存储的所述转发网关对应的状态信息。

需要说明的是,所述网关延时用于表征网络服务器与所述转发网关之间数据传输的快慢程度;所述转发网关的状态信息用于表征所述转发网关的繁忙程度。

在实际应用过程中,网络服务器存储所述网关延时的过程可以如下:

网络服务器确定网络延时测试报文和n个测试时间点;

在n个测试时间点分别向所述转发网关发送所述网络延时测试报文,获得所述每一测试时间点对应的应答时间点;

基于所述n个测试时间点和所述每一测试时间点对应的应答时间点,获得所述转发网关的网关延时;

确定所述转发网关的网关标识码与所述网关延时的第二映射关系,并将所述第二映射关系存储于数据库。

需要说明的是,网络延时测试报文中测试数据的数据长度,可以为一段时间内网络服务器通过该转发网关向所述classb终端发送的各报文长度的平均值。比如,前述测试数据的数据长度可以是在10天内,网络服务器通过该转发网关向所述classb终端发送的各报文长度的平均值。网络延时测试报文为按照ip将测试数据进行封装后的报文。

在一些实施例中,在n个测试时间点分别向所述转发网关发送所述网络延时测试报文,获得所述n个测试时间点对应的每一应答时间点,包括:

在到达每一测试时间点,网络服务器向所述转发网关发送所述网络延时测试报文;

记录每一所述网络延时测试报文的应答报文的应答时间点。

实际应用过程中,转发网关到网络服务器的网络延时(也称上行网络延时)与网络服务器到网关的网络延时(也称下行网络延时)相差不大,因此,在一些实施例中,基于所述n个测试时间点和所述每一测试时间点对应的应答时间点,获得所述转发网关的网关延时,可以包括:

将每一测试时间点对应的应答时间点减去对应的测试时间点,获得每一时间差;

按照从大到小的顺序将所述每一时间差排序;

将排序在第二至排序在第n-1的时间差相加,获得和值;

将所述和值除以两倍的n-2,获得商值;将所述商值作为所述转发网关的网关延时。

需要说明的是,这里,网络服务器按照从大到小的顺序对每一时间差进行排序的目的是为了剔除边界值,也即,去掉获得的时间差中的最大值和最小值。

在实际应用过程中,网络服务器在获得所述转发网关的网络延时后,确定所述转发网关的网关标识码与该网关延时的第二映射关系,并将该第二映射关系存储于数据库。

需要说明的是,对于转发网关的状态信息,所述转发网关的状态信息包括繁忙和空闲,其中,所述繁忙是指该转发网关正在发送报文;所述空闲状态是指该转发网关未发送报文。比如,当设定周期为128s时,在一个设定周期内,转发网关的状态信息可以为:在第1s~第3s繁忙、在第4s~第7繁忙以及在第120s~第125s繁忙,其余时间空闲。网络服务器中预先存储有网关标识码与转发网关的状态信息的第三映射关系。其中,该报文并不仅限于转发网关向classb类型的通信终端发送的报文,也可以是转发网关向其他类型的通信终端,比如,classa、classc等类型的通信终端。

在一些实施例中,对于s103,可以包括:

基于所述当前时间点和所述网关延时,确定ip下行报文到达所述转发网关的预计时间点;

将所述预计时间点与所述每一第一时间点进行比较,获得比较结果;

基于比较结果,确定所述转发网关能够发送所述lorawan下行报文的每一第三时间点;

基于所述每一第三时间点,确定所述转发网关能够发送所述lorawan下行报文的时间点集。

需要说明的是,当前时间点是指网络服务器发送ip下行报文的时间点,换句话说,当前时间点是指网络服务器将前述的下行数据先按照lorawan进行封装,然后再按照ip进行封装形成ip下行报文,向转发网关发送所述ip下行报文的时刻,该时刻可以从网络服务器自身携带的计时器获得。

具体来讲,网络服务器将所述当前时间点加上所述网关延时,获得ip下行报文预计到达所述转发网关的预计时间点,将该预计时间点与所述每一第二时间点对应的第一时间点进行比较,该预计时间点之后的每一第一时间点就为每一第三时间点,所有的第三时间点组成能够发送所述下行报文的时间点集。

需要说明的是,这里所说的ip下行报文是指前述下行数据先按照lorawan进行封装,然后再按照ip进行封装形成的报文。所述ip下行报文包含lorawan下行数据;所述lorawan下行数据实质为lorawan下行报文。

示例性的,假设设定周期为128s,classb终端在设定周期内开启额外下行窗口的第二时间点分别为:第5s、第50s、第120s;lorawan下行报文的传输时间为1s;当前时间点为第4s;网关延时为2s,那么,每一第二时间点对应的第一时间点分别为:第4s、第49s、第119s,将当前时间点加上网关延时得到ip下行报文预计到达转发网关的预计时间点为:6s,将该预计时间点与每一第一时间点比较可得,classb终端不能采用第5s时开启的额外下行窗口接收前述的下行报文,因为在classb终端开启额外下行窗口时,ip下行报文并没有到达转发网关。而在classb终端第50s、第120s开启的额外下行窗口可以接收该下行报文,因为,在classb终端开启额外下行窗口之前,ip下行报文可以到达转发网关,转发网关可以在第49s或第119s发送该lorawan下行报文。其中,第49s和第119s就为第三时间点,并且将两个第三时间点组成能够发送lorawan下行报文的时间点集。

在实际应用过程中,在一个设定周期内,所述转发网络能够发送所述lorawan下行报文的时间点集可能为空,则下一个设定周期内,所述转发网关包含的所有的第二时间点均能够发送所述下行报文,因此,该时间点集可以至少包括两个相邻设定周期的能够发送所述lorawan下行报文的第二时间点。

示例性的,假设设定周期为128s,classb终端在设定周期内开启额外下行窗口的第二时间点分别为:第5s、第50s、第120s;lorawan下行报文的传输时间为1s;当前时间点为第119s;网关延时为2s,那么,每一第二时间点对应的第一时间点仍分别为:第4s、第49s、第119s,将当前时间点加上网关延时得到ip下行报文预计到达转发网关的预计时间点为:121s,将该预计时间点与每一第一时间点比较可得,在此设定周期内,ip下行报文并没有达到转发网关,此时,在此设定周期内,时间点集为空集。此时,网络服务器若想要通过转发网关发送该lorawan下行报文,可以在下个设定周期再进行发送。也就是说,此时的时间点集为下一设定周期的:第4s、第49s、第119s。

在一些实施例中,对于s104,可以包括:

基于所述转发网关的状态信息,确定在所述时间点集中每一第三时间点所述转发网关的状态;

基于所述每一第三时间点所述转发网关的状态,获得每一第一目标时间点;所述第一目标时间点为所述转发网关处于空闲的第三时间点;

按照设定条件对所述每一第一目标时间点进行第二排序,获得第二排序结果;

基于所述第二排序结果,获得所述转发网关向所述classb终端发送所述lorawan下行报文的目标时间点。

需要说明的是,设定条件为按照从前到后的顺序将所述每一第一目标时间点进行第二排序;对应的,基于所述第二排序结果,获得所述转发网关向所述classb终端发送所述下行报文的目标时间点,包括:将排序在最前的第一目标时间点作为目标时间点。

示例性的,假设设定周期为128s,classb终端在设定周期内开启额外下行窗口的第一时间点分别为:第5s、第50s、第120s;下行报文的传输时间为1s;获得时间点集为:第4s、第49s、第119s,且转发网关的状态信息为:在第3s~第5s向classb终端发送报文、在第47s~第48s向classb终端发送报文以及在第120s~第125s向classb终端发送报文。此时,第一目标时间点为第49s、第119s,且第49s排序在最前,因此,目标时间点为第49s,换句话说,转发网关可以在第49s时向classb终端发送所述lorawan下行报文,classb终端可以基于第50s开启的额外下行窗口接收该lorawan下行报文。

在一些实施例中,对于s105,可以包括:将所述目标时间点减去所述lorawan下行报文的传输时间,获得接收时间点,该接收时间点对应的额外下行窗口就为所述classb终端接收所述lorawan下行报文的额外下行窗口。

需要说明的是,接收时间点为前述第一时间点的一个,因此,在所述接收时间点对应于classb终端开启的一个额外下行窗口。

在实际应用过程中,在设定周期内,classb终端开启的额外下行窗口的数量以及每一额外下行窗口的开启的第一时间点通常是在classb终端出厂时设置好的固定值,而且在整个classb终端的生命周期内,这些固定值不会改变,这样一来,在一段时间内,网络服务器没有要向classb终端发送下行报文时,classb终端也会定期的开启额外下行窗口,这样势必造成classb终端的不必要的功耗。

为了降低classb终端的不必要的功耗,在一些实施例中,在classb终端空闲时,网络服务器可以通过向classb终端发送调整指令,以配置classb终端在设定周期开启的额外下行窗口的数量,然后,网络服务器和classb终端再按照lorawan协议中规定的算法计算每一额外下行窗口的开启时间点,因此,所述方法还包括:配置所述classb终端在设定周期内开启的额外下行窗口。

具体来讲,所述配置所述classb终端在设定周期内开启的额外下行窗口,可以包括:获得向所述classb终端发送的历史数据和需要向所述classb终端发送的当前数据;

基于所述历史数据和所述当前数据,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数;

基于所述需要开启的额外下行窗口的个数,配置调整指令;

向所述classb终端发送所述调整指令。

需要说明的是,classb终端接收到该调整指令之后,对所述调整指令进行第二解析,获得第二解析结果,基于该第二解析结果获得自身在设定周期中需要开启的额外下行窗口的个数,然后,网络服务器和classb终端再按照lorawan协议中规定的算法计算每一额外下行窗口的开启的第二时间点。所述配置指令是一种lorawan协议的报文,那么,所述第二解析是指按照lorawan协议对调整指令进行解析的过程。

需要说明的是,所说的历史数据可以是在过去几个设定周期内网络服务器主动向classb终端发送报文的数量的平均值,比如,在过去10个设定周期内,网络服务器主动向classb终端发送报文的数量的平均值。所说的当前数据可以是截止到当前时刻网络服务器累积的在设定周期内要向classb终端主动发送的报文的数量。在实际应用过程中,网络服务器需要接收用户指令,然后主动向classb终端发送的包含用户指令的报文,然而,用户可以通过app或者用户客户端向网络服务器连续发送几条指令,网络服务器需要一条一条的处理,可能会在设定周期内累积几条要向classb终端主动发送的报文。

在一些实施例中,基于所述历史数据和所述当前数据,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数,包括:

将所述历史数据与设定阈值进行比较,获得第一比较结果;

将所述当前数据与所述设定阈值进行比较,获得第二比较结果;

基于所述第一比较结果和所述第二比较结果,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数。

需要说明的是,设定阈值包括设定最大阈值和设定最小阈值,其中,设定最大阈值是指classb终端能够在设定周期内开启的额外下行窗口的最大数量;设定最小阈值是指classb终端能够在设定周期内开启的额外下行窗口的最小数量。在实际应用过程中,设定阈值是网络服务器在classb终端注册入网时通过适配器给classb终端配置的。

在此基础上,将所述历史数据与阈值进行比较,获得第一比较结果,可以包括:将所述历史数据与设定最大阈值进行比较和将所述历史数据与设定最小阈值进行比较,获得第一比较结果;对应的,第一比较结果就包括所述历史数据不小于所述设定最大阈值、所述历史数据在所述设定最大阈值与所述设定最小阈值之间、所述历史数据不大于所述设定最小阈值。

同样的,将所述当前数据与阈值进行比较,获得第二比较结果,可以包括:将所述当前数据与设定最大阈值进行比较,以及将所述当前数据与设定最小阈值进行比较,获得第二比较结果;对应的,第二比较结果就包括所述当前数据不小于所述设定最大阈值、所述当前数据在所述设定最大阈值与所述设定最小阈值之间、所述当前数据不大于所述设定最小阈值。

在此基础上,所述基于所述第一比较结果和所述第二比较结果,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数,可以包括:

当所述历史数据和/或所述当前数据不小于设定最大阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最大阈值;

当所述历史数据和所述当前数据均不大于设定最小阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最小阈值;

当所述历史数据和所述当前数据均在所述设定最大阈值和所述设定最小阈值之间时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述当前数据与某一随机数值的和;所述某一随机数值的取值的范围:0到所述当前数据与所述历史数据之差的绝对值之间。

需要说明的是,由于在lorawan协议中,通常是,classb终端通过网关向网络服务器发送classb终端在设定周期内开启的额外下行窗口的个数,网络服务器按照lorawan协议中规定的算法计算每一额外下行窗口的开启的第二时间点,也就是,网络服务器通过发送调整指令,以配置classb终端在设定周期内开启的额外下行窗口的个数在lorawan协议并没有定义调整指令的格式,在此基础上,网络服务器在为classb终端配置在设定周期内开启的额外下行窗口的个数之前,需要自定义调整指令。该调整指令具体定义时复制标准lorawan协议的格式,仅需将命令的id(identification)替换成配置指令的命令的id即可。这样一来,classb终端在接收到配置指令后,可以按照标准lorawan协议对配置指令进行解析,在识别到配置指令的命令id时,即可调整classb终端在设定周期内开启的额外下行窗口的个数。

需要说明的是,在实际应用过程中,网络服务器向classb终端发送所述调整指令时,网络服务器不能向classb终端发送任何报文,因此,网络服务器不能实时的向classb终端发送该调整指令,或者在有报文向classb终端发送时也不能发送该调整指令,只有在classb终端空闲时才可向classb终端发送该调整指令,并且在classb终端在设定周期内的开启的额外下行窗口的个数以及每一额外下行窗口的开启的时间点调整之后,在一段时间内不能再次向classb终端发送该调整指令,比如,一段时间可以为10天。

本领域技术人员可以理解的是,在具体实施上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

为了理解本发明,如图3所示,其示出一种classb终端额外下行窗口选择方法的详细流程示意图,应用于网络服务器,所述流程包括:

s301:确定向classb终端发送的lorawan下行报文。

s302:基于所述lorawan下行报文,确定所述lorawan下行报文的传输时间。

s303:确定所述classb终端在设定周期内开启额外下行窗口的每一第二时间点。

s304:基于所述lorawan下行报文的传输时间和所述每一第二时间点,确定网关能够发送所述lorawan下行报文的每一第一时间点。

s305:确定转发所述lorawan下行报文的转发网关。

s306:确定所述转发网关的网关延时和状态信息。

s307:基于当前时间点、所述网关延时和所述每一第二时间点对应的第一时间点,获得所述转发网关能够发送所述lorawan下行报文的时间点集。

s308:基于所述时间点集和所述转发网关的状态信息,获得所述转发网关能够发送所述lorawan下行报文的目标时间点。

s309:基于所述目标时间点和所述lorawan下行报文的传输时间,获得所述classb终端接收所述lorawan下行报文的额外下行窗口。

需要说明的是,这里出现的名词在前述已经详细描述,在此不再赘述。其中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定。

本发明实施例提供一种选择方法,通过对转发网关的状态信息和网络延时的掌握,合理的选择发送报文时间,可以提高classb终端接收网络服务器主动下发报文的成功率,并且,网络服务器还可以合理的控制classb终端开启的额外下行窗口的数量,从而节约classb终端的用电量。

基于同样的发明构思,本发明实施例还提供一种选择装置,如图4所示,其示出一种本发明实施例提供的选择装置的结构示意图。所述装置40包括:第一确定模块401、第二确定模块402、第一获得模块403、第二获得模块404和第三获得模块405,其中:

所述第一确定模块401,用于确定向classb终端发送的lorawan下行报文、所述lorawan下行报文的传输时间、能够发送所述lorawan下行报文的每一第二时间点以及转发所述lorawan下行报文的转发网关;

所述第二确定模块402,用于确定所述转发网关的网关延时和状态信息;

所述第一获得模块403,用于基于当前时间点、所述网关延时和所述每一第二时间点,获得所述转发网关能够发送所述lorawan下行报文的时间点集;

所述第二获得模块404,用于基于所述时间点集和所述转发网关的状态信息,获得所述转发网关能够发送所述lorawan下行报文的目标时间点;

所述第三获得模块405,用于基于所述目标时间点和所述lorawan下行报文的传输时间,获得所述classb终端接收所述lorawan下行报文的额外下行窗口。

在一些实施例中,所述第一确定模块401包括接收单元和封装单元,其中,所述接收单元,用于接收用户指令;基于所述用户指令,获得下行数据;所述封装单元,用于按照lorawan协议对所述下行数据进行封装,获得封装结果;将所述封装结果作为所述lorawan下行报文。

在一些实施例中,所述第一确定模块401包括:第一获得单元和第一确定单元,其中,所述第一获得单元,用于获得所述classb终端在设定周期内开启额外下行窗口的每一第二时间点;所述第一确定单元,用于基于所述lorawan下行报文的传输时间和所述每一第二时间点,确定能够发送所述lorawan下行报文的每一第一时间点。

在一些实施例中,所述第一获得单元,具体用于:将所述classb终端的终端标识作为第一查询键值;基于所述第一查询键值和第一映射关系,获得存储的所述classb终端在设定周期内开启额外下行窗口的每一第二时间点。

在一些实施例中,第一确定模块401包括第二获得单元和第二确定单元,其中,所述第二获得单元,用于获得网关历史信息;所述第二确定单元,用于基于所述网关历史信息,确定转发所述lorawan下行报文的转发网关。

在一些实施例中,所述第二确定单元,具体用于:基于所述网关历史信息,获得每一网关元数据;按照设定规则对所述每一网关元数据进行第一排序,获得第一排序结果;基于所述第一排序结果,确定目标网关元数据;基于所述目标网关元数据,确定转发所述lorawan下行报文的转发网关。

在一些实施例中,第二确定模块402,具体用于:将所述转发网关的网关标识码作为第二查询键值;基于所述第二查询键值和第二映射关系,获得存储的所述转发网关对应的网关延时;基于所述第二查询键值和第三映射关系,获得存储的所述转发网关对应的状态信息。

在一些实施例中,第一获得模块403,具体用于:基于所述当前时间点和所述网关延时,确定互联网协议ip下行报文到达所述转发网关的预计时间点;将所述预计时间点与所述每一第一时间点进行比较,获得比较结果;基于比较结果,确定所述转发网关能够发送所述lorawan下行报文的每一第三时间点;基于所述每一第三时间点,确定所述转发网关能够发送所述lorawan下行报文的时间点集。

在一些实施例中,第二获得模块404,具体用于:基于所述转发网关的状态信息,确定在所述时间点集中每一第三时间点所述转发网关的状态;基于所述每一第三时间点所述转发网关的状态,获得每一第一目标时间点;所述第一目标时间点为所述转发网关处于空闲的第三时间点;按照设定条件对所述每一第一目标时间点进行第二排序,获得第二排序结果;基于所述第二排序结果,获得所述转发网关能够发送所述lorawan下行报文的目标时间点。

在一些实施例中,第三获得模块405,具体用于:基于所述目标时间点和所述传输时间,获得接收时间点;将所述接收时间点对应的额外下行窗口作为所述classb终端接收所述lorawan下行报文的额外下行窗口。

在一些实施例中,所述装置还包括:配置模块,用于配置所述classb终端在设定周期内开启的额外下行窗口。

在一些实施例中,所述配置模块包括:第三获得单元、第三确定单元、配置单元和发送单元,其中,所述第三获得单元,用于获得向所述classb终端发送的历史数据和需要向所述classb终端发送的当前数据;所述第三确定单元,用于基于所述历史数据和所述当前数据,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数;所述配置单元,用于基于所述需要开启的额外下行窗口的个数,配置调整指令;所述发送单元,用于向所述classb终端发送所述调整指令。

在一些实施例中,所述第三确定单元包括:第一比较子单元、第二比较子单元和确定子单元,其中,所述第一比较子单元,用于将所述历史数据与设定阈值进行比较,获得第一比较结果;所述第二子单元,用于将所述当前数据与所述设定阈值进行比较,获得第二比较结果;所述确定子单元,用于基于所述第一比较结果和所述第二比较结果,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数。

在一些实施例中,所述第一比较子单元,具体用于:将所述历史数据与设定最大阈值进行比较和将所述历史数据与设定最小阈值进行比较,获得第一比较结果;所述第二比较子单元,用于将所述当前数据与设定最大阈值进行比较和将所述当前数据与设定最小阈值进行比较,获得第二比较结果;所述确定子单元,具体用于:当所述历史数据和/或所述当前数据不小于设定最大阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最大阈值;当所述历史数据和所述当前数据均不大于设定最小阈值时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述设定最小阈值;当所述历史数据和所述当前数据均在所述设定最大阈值和所述设定最小阈值之间时,确定所述classb终端在设定周期中需要开启的额外下行窗口的个数为所述当前数据与某一随机数值的和;所述某一随机数值的取值范围在0到所述当前数据与所述历史数据之差的绝对值之间。

在一些实施例中,所述装置还包括:第三确定模块、第四获得模块、第五获得模块、第四确定模块和存储模块,其中,所述第三确定模块,用于确定网络延时测试报文和n个测试时间点;n为正整数;所述第四获得模块,用于在n个测试时间点分别向所述转发网关发送所述网络延时测试报文,获得所述每一测试时间点对应的应答时间点;所述第五获得模块,用于基于所述n个测试时间点和所述每一测试时间点对应的应答时间点,获得所述转发网关的网关延时;所述第四确定模块,用于确定所述转发网关的网关标识码与所述网关延时的第二映射关系;所述存储模块,用于存储所述第二映射关系存储于数据库。

本发明实施例提供一种选择装置与前述方法为同一发明构思,也是通过对转发网关的状态信息和网络延时的掌握,合理的选择发送报文时间,可以提高classb终端接收网络服务器主动下发报文的成功率,并且,网络服务器还可以合理的控制classb终端开启的额外下行窗口的数量,从而节约classb终端的用电量。因此,这里出现的词语含义与前述相同,在此不再赘述。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序处理器被处理器执行时实现上述方法实施例的步骤,而前述的存储介质包括:移动存储设备、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种选择装置,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行存储在存储器中的上述方法实施例的步骤。

图5为本发明实施例选择装置的一种硬件结构示意图,该选择装置50包括:至少一个处理器501、存储器502,可选的,选择装置50还可进一步包括至少一个通信接口503,选择装置50中的各个组件通过总线系统504耦合在一起,可理解,总线系统504用于实现这些组件之间的连接通信。总线系统504除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统504。

可以理解,存储器502可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。

本发明实施例中的存储器502用于存储各种类型的数据以支持选择装置50的操作。这些数据的示例包括:用于在选择装置50上操作的任何计算机程序,如存储第一映射关系、第二映射关系以及第三映射关系等,实现本发明实施例方法的程序可以包含在存储器502中。

上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成前述方法的步骤。

在示例性实施例中,选择装置50可以被一个或多个应用专用集成电路(asic,applicationspecificintegratedcircuit)、dsp、可编程逻辑器件(pld,programmablelogicdevice)、复杂可编程逻辑器件(cpld,complexprogrammablelogicdevice)、现场可编程门阵列(fpga,field-programmablegatearray)、通用处理器、控制器、微控制器(mcu,microcontrollerunit)、微处理器(microprocessor)、或其他电子元件实现,用于执行上述方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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