[go: up one dir, main page]

CN116828448A - 一种无线网络的空中升级方法及设备 - Google Patents

一种无线网络的空中升级方法及设备 Download PDF

Info

Publication number
CN116828448A
CN116828448A CN202310912274.7A CN202310912274A CN116828448A CN 116828448 A CN116828448 A CN 116828448A CN 202310912274 A CN202310912274 A CN 202310912274A CN 116828448 A CN116828448 A CN 116828448A
Authority
CN
China
Prior art keywords
upgrade
request
current
upgraded
firmware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310912274.7A
Other languages
English (en)
Inventor
高学江
杭慧陶
许政�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202310912274.7A priority Critical patent/CN116828448A/zh
Publication of CN116828448A publication Critical patent/CN116828448A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种无线网络的空中升级方法及设备,用以提高大型星型集中式无线网络的空中升级效率。本申请提供的无线网络的空中升级方法,包括:当获取到升级固件时,向与无线网关设备建立连接的至少一个待升级的终端设备发起升级请求;当满足如下条件之一时,发送所述升级固件的升级包给所述待升级的终端设备:收到所有所述待升级的终端设备针对所述升级请求的回复消息;当未收到针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值;当未收到所有所述待升级的终端设备针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值。

Description

一种无线网络的空中升级方法及设备
技术领域
本申请涉及无线技术领域,尤其涉及一种无线网络的空中升级方法及设备。
背景技术
随着传感器网络以及物联网技术的发展,无线网络中的设备类型以及设备数量越来越多。针对无线网络维护升级方面的性能问题,目前大部分无线网络空中升级方法都是一对一单线流程的升级,假设升级一台无线网络中的设备所需时间为15秒,则升级完网络中200台设备所需时间为50分钟,效率极低。
发明内容
本申请实施例提供了一种无线网络的空中升级方法及设备,用以提高大型星型集中式无线网络的空中升级效率。
在网络侧,本申请实施例提供的一种无线网络的空中升级方法,包括:
当获取到升级固件时,向与无线网关设备建立连接的至少一个待升级的终端设备发起升级请求;
当满足如下条件之一时,发送所述升级固件的升级包给所述待升级的终端设备:
收到所有所述待升级的终端设备针对所述升级请求的回复消息;
当未收到针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值;
当未收到所有所述待升级的终端设备针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值。
通过该方法,当获取到升级固件时,向与无线网关设备建立连接的至少一个待升级的终端设备发起升级请求;当满足预设条件时,发送所述升级固件的升级包给所述待升级的终端设备,所述预设条件例如:收到所有所述待升级的终端设备针对所述升级请求的回复消息;当未收到针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值;当未收到所有所述待升级的终端设备针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值。从而,实现了通过一个无线网关设备对多个终端设备的空中升级,即实现了一对多的OTA升级,大大提高了升级效率。
在一些实施例中,当从云服务器获取到升级固件时,所述方法还包括:创建初始化的升级设备列表,所述升级设备列表中包括所述至少一个待升级的终端设备的下列至少一项表项:
终端设备媒体接入控制地址、终端设备当前状态、终端设备第一次收到的升级请求的重发次数、所述无线网关设备收到的针对所述升级请求的回复消息的重发次数、总丢包数、用于确定回复消息的发送时延的随机时延系数。
在一些实施例中,当收到任一所述终端设备针对所述升级请求的回复消息时,所述方法还包括:
若所述升级设备列表中没有关于发送该回复消息的终端设备的记录,则更新所述升级设备列表,所述更新所述升级设备列表包括:在所述升级设备列表中新增关于发送该回复消息的终端设备的所述表项的信息。
在一些实施例中,所述升级请求包括下列至少一项内容:数据包头、用于表示是否已完成升级的升级请求标志、升级固件版本、预设的总重发次数、当前重发次数、用于确定升级请求的发送时延的随机时延系数、用于校验升级请求完整性的循环冗余校验码。
在一些实施例中,针对所述升级请求的回复消息包括下列至少一项内容:数据包头、终端设备媒体接入控制地址、用于表示是否已升级的升级标志、终端设备当前状态、收到所述升级请求的次数、第一次接收到升级请求包的重发次数、用于校验回复消息完整性的循环冗余校验码。
在一些实施例中,所述发送所述升级固件的升级包给所述待升级的终端设备,包括:
确定所述升级固件的当前升级包,并发送给所述待升级的终端设备;
当确定收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且未收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述当前升级包的重发次数未超过预设阈值,则重新发送所述当前升级包,若所述当前升级包的重发次数超过预设阈值,并且所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且已收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备。
在一些实施例中,所述升级包中包括下列至少一项内容:
数据包头、用于指示是否为升级包的标志、所述升级固件对应的升级包的数量、当前升级包的索引、当前升级包的数据长度、当前升级包的数据、当前升级包的当前重发次数、用于确定针对当前升级包的回复消息的发送时延的随机时延系数、用于校验当前升级包是否完整的校验码。
相应地,在终端侧,本申请实施例提供的一种无线网络的空中升级方法,包括:
当收到无线网关设备发送的关于升级固件的升级请求时,根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,其中携带所述本地终端设备是否为待升级的终端设备的指示信息;
当所述本地终端设备为待升级的终端设备时,接收所述无线网关设备发送的所述升级固件的升级包。
在一些实施例中,所述升级请求中包括:用于确定发送针对所述升级请求的回复消息的时延的随机时延系数;
根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,包括:
根据所述随机时延系数,采用如下公式随机确定发送针对所述升级请求的回复消息的时延:
D*random(D,D+K)
其中,D=N/m;D表示所述本地终端设备的随机时延系数,N表示所述本地终端设备的丢包数,m表示与所述无线网关设备建立连接的待升级的终端设备的总数,K为预设值,K为大于或等于0的整数;
按照所述时延发送所述回复消息。
在一些实施例中,所述接收无线网关设备发送的升级固件的升级包,包括:
当连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级成功消息;
当未连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级失败消息;
其中,所述升级成功消息或所述升级失败消息,包括下列至少一项内容:数据包头、本地终端设备媒体接入控制地址、当前升级包的索引、本地终端设备的当前状态、升级成功与否的标志、当前升级包的接收次数、第一次接收到的当前升级包的重发次数、用于校验该消息完整性的校验码。
在一些实施例中,所述方法还包括:
当本地终端设备从离线状态恢复到上线状态时,或者在对所述升级固件的升级包升级失败后,当所述本地终端设备重新设置为在线状态时,向所述无线网关设备发送上线通知,用于触发所述无线网关设备执行针对该终端设备的升级流程。
在网络侧,本申请实施例提供的一种无线网络的空中升级设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述网络侧的无线网络的空中升级方法。
在终端侧,本申请实施例提供的一种无线网络的空中升级设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述终端侧的无线网络的空中升级方法。
此外,根据实施例,例如提供了一种用于计算机的计算机程序产品,其包括软件代码部分,当所述产品在计算机上运行时,这些软件代码部分用于执行上述所定义的方法的步骤。该计算机程序产品可以包括在其上存储有软件代码部分的计算机可读介质。此外,该计算机程序产品可以通过上传过程、下载过程和推送过程中的至少一个经由网络直接加载到计算机的内部存储器中和/或发送。
本申请另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一个实施例中无线网络的系统示意图;
图2为本申请一个实施例中无线网关设备发起升级请求的流程示意图;
图3为本申请一个实施例中无线网关设备进入升级过程的流程示意图;
图4为本申请一个实施例中终端设备整个升级过程的流程示意图;
图5为本申请一个实施例中终端设备主动发起升级请求的通信交互示意图;
图6为本申请一个实施例中网络侧的一种无线网络的空中升级方法的流程示意图;
图7为本申请一个实施例中终端侧的一种无线网络的空中升级方法的流程示意图;
图8为本申请一个实施例中网络侧的一种无线网络的空中升级设备的结构示意图;
图9为本申请一个实施例中终端侧的一种无线网络的空中升级设备的结构示意图;
图10为本申请一个实施例中网络侧的另一种无线网络的空中升级设备的结构示意图;
图11为本申请一个实施例中终端侧的另一种无线网络的空中升级设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种无线网络的空中升级方法及设备,用以提高无线网络空中升级效率。
其中,方法和设备是基于同一申请构思的,由于方法和设备解决问题的原理相似,因此设备和方法的实施可以相互参见,重复之处不再赘述。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
以下示例和实施例将只被理解为是说明性的示例。虽然本说明书可能在若干处提及“一”、“一个”或“一些”示例或实施例,但这并非意味着每个这种提及都与相同的示例或实施例有关,也并非意味着该特征仅适用于单个示例或实施例。不同实施例的单个特征也可以被组合以提供其他实施例。此外,如“包括”和“包含”的术语应被理解为并不将所描述的实施例限制为仅由已提及的那些特征组成;这种示例和实施例还可以包含并未具体提及的特征、结构、单元、模块等。
下面结合说明书附图对本申请各个实施例进行详细描述。需要说明的是,本申请实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。
本申请实施例提供了一对多的无线网络的空中(Over-The-Air,OTA)升级的技术方案,用于解决大型无线网络的终端设备空中升级耗时久、效率低的问题,并且,进一步,还可以解决多个终端设备同时升级过程中的数据回复冲突的问题,以及实现星型集中式网络的空中升级,适用于无连接网络与有连接网络。
参见图1,本申请实施例所述的星型集中式网络,是指只有一个网关设备,所有终端设备都与网关通信,终端设备之间无法通信。无连接网络表示不建立网络连接,而是通过广播的方式传输信息,即无连接网络,是指在用户开始传递信息前无需在通信双方或更多方间建立起连接的网络。
图1为本申请一个实施例中无线网络的系统示意图,该系统包括一个无线网关设备和至少一个终端节点,例如图1所示的终端节点1~终端节点n,其中n为大于1的整数。终端节点1~终端节点n分别与无线网关设备建立连接;无线网关设备与云服务器建立连接。
那么,如图2所示,无线网关设备(也可以简称网关设备或网关)启动的升级过程,例如包括如下步骤:
步骤S101:从云服务器获取升级固件,并创建升级设备列表,所述升级设备列表中包括至少一个终端设备的升级信息;
其中,已知网络中设备数量,创建初始化升级设备列表,因为还没有进行升级请求的过程,所以创建的升级设备列表中的参数是初始化状态,即升级设备列表中的对象未知,然后跳转至步骤S102。
在一些实施例中,每次网关设备主动发起升级请求时,均需初始化升级设备列表,若无新的主动发起升级请求操作,需要维护升级设备列表。
其中,创建的初始化的升级设备列表中的终端设备的升级信息,例如下面表一所示:
表一:无线网关升级设备列表格式
如表一所示,升级设备列表包括如下表项:终端设备MAC(Media Access Control,媒体接入控制)地址、终端设备当前状态S、终端设备第一次收到的升级请求的重发次数n1、网关设备收到的升级回复的重发次数n2、总丢包数N以及随机时延系数D。
其中,所述终端设备当前状态S,例如包括待升级状态、正在升级状态、升级失败状态、离线状态以及在线状态。
所述终端设备第一次收到的升级请求的重发次数n1,即n1表示终端设备第一次收到升级请求时,网络侧发送升级请求的次数,用于评估网关设备到终端设备数据传输冲突的情况,若终端设备第一次收到的升级请求的重发次数n1越大,则说明网关设备到终端设备的通信链路不稳定或者数据冲突严重。
同样地,所述网关设备收到的升级回复的重发次数n2,即n2表示网关设备收到终端设备针对升级请求的回复消息时,终端设备发送回复消息的次数,用于评估终端设备到网关设备数据传输冲突的情况。n2越大,则说明终端设备到网关设备的通信链路不稳定或者数据冲突严重。
需要说明的是,本申请实施例中所述的重复发送的升级请求,是关于同一升级固件的升级请求,相应地,针对升级请求的重复发送的回复消息,也是指关于同一升级固件的升级请求的回复消息。
所述总丢包数N,用于统计总丢包数,计算公式例如:
其中,m表示升级设备列表中的终端设备个数,i表示升级设备列表中的第i个终端设备。从上述公式可知,N是针对升级设备列表中的所有终端设备统计的总的丢包数,当然,也可以针对每一终端设备单独统计丢包数,例如第i个终端设备的丢包数Ni为:
随机时延系数D,用于终端设备生成区间随机时延,避免数据冲突。
例如:
第i个终端设备的随机时延系数Di的计算公式为:
Di=Ni/m;
其中,Ni表示网络中第i个终端设备的丢包数;
那么,第i个终端设备按照如下公式确定回复消息的发送时延:
Di*random(Di,Di+K)
其中,random(Di,Di+K)表示随机生成一个在Di和Di+K之间的数值,K为预设非负数;
针对网络侧发送的消息发送相应的回复消息,例如可以是针对升级请求的回复消息,以及后续针对升级包的回复消息,都可以用随机时延系数来计算具体的回复消息的发送时延。例如,在收到升级请求后延时Di*random(Di,Di+K)后发送相应的回复消息。
可见,本申请实施例通过随机时延系数,实现不同终端设备的回复消息的分时发送,丢包越少越早回复,从而保证通信链路冲突少的优先完成消息传输及升级过程,且丢包越少的终端设备的消息传输的随机时延越小,对于网关设备端接收产生的多路径无线信号数据冲突的影响也越小。
随机时延系数的更新是在每一轮升级环节结束后执行的,例如在升级请求环节结束后更新,亦或在发送完一包升级数据(即一个升级包)后,准备发送下一包升级数据前更新,最终达到一个最佳时延配置。也就是说,终端设备每次发送回复消息前,都可以重新计算一下随机时延系数的值,并利用最新值确定当前需要发送的回复消息的时延。
例如:假设网络中有100个待升级的终端设备,无线网关设备重发升级请求和重发升级包的周期都为△t,完成升级请求的发送流程后,待升级的终端设备的随机时延系数分别为1,2,3,4,…,100,K假设预设取值为10,则这100个终端设备的数据发送时延分别为1*random(1,11)、2*random(2,12)、…、100*random(100,110)。
可见,若不采用随机时延系数,则由于冲突丢包,下一次升级请求过程或升级过程可能需要至少重发100△t,则整个升级请求或升级包发送的周期最大可能为101△t;若采用随机时延系数来确定数据回复的发送时延,经过多轮的迭代收敛,达到一个最佳时延配置后,则可能最少只需要1△t+100*random(100,110),由于△t远远大于100*random(100,110),所以需要的升级请求周期不超过2△t。
步骤S102:发起升级请求,然后跳转至步骤S103;
在一些实施例中,升级请求格式内容如下面的表二所示,包括:数据包头、升级请求标志、升级固件版本、总重发次数、当前重发次数、用于终端确定针对升级请求的回复消息的时延的随机时延系数,和用于校验升级请求完整性的校验码,其中,所述校验码例如循环冗余校验码(Cyclic Redundancy Check,CRC)。
表二:无线网关设备发送的升级请求数据格式
其中,所述升级请求标志,例如:1表示是升级请求,0表示非升级请求。或者,用不同的数字表示升级请求的不同的协议等等。
所述总重发次数,为升级请求包的重发次数上限,即预设阈值,超过上限停止发送升级请求包,进入升级步骤。
所述当前重发次数,即升级请求包的当前重发次数,用于评估整体网络的规模以及连通性性能。
所述校验码CRC,为从数据包头到随机时延系数的校验和。
第一次发送升级请求的随机时延系数默认为1,之后的随机时延系数根据升级请求回复情况更新,从而实现动态管理消息交互时延,最终所有终端设备都达到一个能够使网络性能最佳的随机时延系数。为下次整个网络一对多升级建立了良好的网络通信基础,通过随机时延分时发送数据,降低了空中数据冲突,从而优化了下一次整个升级请求过程重发升级请求导致的额外耗时,以及升级过程中升级包多次重发导致的额外耗时。
步骤S103:判断是否收到终端设备针对升级请求的回复消息,若是,则跳转至步骤S104,否则跳转至步骤S106;
在一些实施例中,针对升级请求的回复消息的格式内容如下面的表三所示,包括数据包头、终端设备MAC地址、升级标志、当前状态、第p次接收到升级请求(即收到同一升级请求的累计次数)、第一次接收到的升级请求的重发次数,以及用于校验回复消息完整性的校验码CRC。
表三:终端设备针对升级请求的回复消息的格式
其中,所述终端设备MAC地址,即针对升级请求发送回复消息的终端设备的MAC地址,设备MAC地址是唯一的,不同的终端设备的MAC地址不同;
所述升级标志,例如取值1表示已升级,0表示未升级;
所述当前状态,例如包括升级中、升级成功、升级失败、离线等状态;
所述第p次接收到升级请求,其中p为大于或等于1的整数,即收到同一升级请求的累计次数,也就是说,网络侧的网关设备可以用该P的值,确定上述表一中的网关设备接收到针对升级请求的回复消息的重发次数n2;对于同一终端设备,n2=P。
所述第一次接收到的升级请求的重发次数,同上述表一中的终端设备第一次收到的升级请求的重发次数,也就是说,无线网关设备通过接收终端设备上报的第一次接收到的升级请求的重发次数,得到相应的n1的值并记录在表一中。
也就是说,有可能由于通信链路问题,多次发送升级请求包,接收方都未收到,因此设置第一次收到包的时候发送方重发的次数,该次数越大,说明通信质量越差或者冲突越严重。
步骤S104:判断升级设备列表中是否存在发送回复消息的终端设备的相关记录信息,若是,则跳转至步骤S108,否则跳转至步骤S105;
也就是说,收到针对升级请求的回复消息时,该回复消息中,如表三所示,会携带终端设备的物理地址,即终端设备MAC地址;因此,需要查看升级设备列表,即表一是否也存在该终端设备MAC地址。即判断升级设备列表中是否存在回复消息中的物理地址对应的目标终端设备,升级设备列表是一个内容不重复的表,若表中已存在目标终端设备的信息,则无需新增,若不存在,则需要增加一条目标终端设备的信息记录,包括各个表项的相关内容,即执行步骤S105更新升级设备列表。
步骤S105:更新升级设备列表,跳转至步骤S108;
步骤S106:若没有收到所有终端设备的升级请求回复,准备再次重发升级请求,跳转至步骤S107;
步骤S107:判断当前累计重发次数是否超过预设的重发次数限制,则跳转至步骤S109,即若在升级请求的重发次数超过上限,则不再重发升级请求;否则,跳转至步骤S102;
步骤S108:判断是否所有待升级的终端设备都已针对升级请求进行了回复,若是,则跳转至步骤S109,否则跳转至步骤S106;
步骤S109:开始发送升级包。
开始发送升级包后,即进入升级流程,如图3所示,无线网关设备侧的升级流程例如包括如下步骤:
步骤S301:确定当前升级包,并发送当前升级包数据给升级设备列表中的每一待升级的终端设备,然后跳转至步骤S302;
需要说明的是,一个升级固件,有可能有多个升级包,因此需要逐个发送升级包。
在一些实施例中,升级包的数据格式内容如下面的表四所示,包括:数据包头、升级标志(即用于指示本包是否为升级包的标志)、总包数(即升级固件对应的升级包的数量)、当前包数(即当前升级包的索引)、数据长度、数据、当前重发次数、随机时延系数(用于确定针对当前升级包的回复消息的发送时延)以及用于校验该升级包是否完整的校验码CRC。
表四:无线网关设备发送的升级包的格式
其中,所述升级标志用于表示是否为升级包,用于区分发送的数据包是什么类型,例如用1表示升级包,0表示其他包;
所述总包数表示对升级固件的数据拆分得到的数据包个数,例如128字节一个数据包(即一个升级包),需要多少数据包可以升级完;也就是说,本申请实施例中,同一升级固件,可以有一个或多个升级包,此处的总包数,即包括多少个升级包;
所述当前包数,就是在对升级固件的升级过程中当前传输的升级包的索引;
所述数据包长度,即当前升级包的长度;
所述数据,即当前升级包中携带的升级数据;
所述当前重发次数,即当前升级包当前的重复发送的次数。
步骤S302:判断是否接收到升级设备列表中所有终端设备发送的单包接收成功回复,若是,则跳转至步骤S307,否则跳转至步骤S303;
其中,所述单包接收成功回复,即终端设备针对当前升级包的回复消息,并且该回复消息中指示成功收到当前升级包或者指示升级成功。
步骤S303:若没有收到升级设备列表中所有终端设备的单包接收成功回复,则进一步判断是否接收到升级设备列表中所有终端设备的单包接收回复,如果是,则执行步骤S304,否则跳转至步骤S305;
其中,所述单包接收回复,即终端设备针对当前升级包的回复消息,该回复消息成功消息(指示成功收到当前升级包或升级成功),也可以是失败消息(丢包、升级失败)。例如,如果当前升级包是第二个升级包,则第一个升级包已升级成功的终端设备会回复成功消息,而在升级包传输过程中可能存在丢包情况,因此,若丢包,终端设备会回复失败消息,则对于该终端设备,意味着本轮升级失败。
步骤S304:当确定升级设备列表中有部分终端设备回复了失败消息时,说明无需再重新发送当前升级包,则跳转至步骤S307;
步骤S305:当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且未收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,即确定升级设备列表中有终端设备未收到升级包,或网关设备未收到终端设备针对当前升级包的回复消息时,跳转至步骤S306;
步骤S306:判断当前升级包的重发次数是否超过预设阈值,若是,则跳转至步骤S307,否则跳转至步骤S301,即重发当前升级包数据;
步骤S307:判断当前升级固件的所有升级包是否发送完成,若是,则跳转至步骤S309,结束本轮升级,否则跳转至步骤S308;
步骤S308:更新升级设备列表,准备下一待发送的升级包(即刚刚已发送完成的升级包的下一索引对应的升级包),并跳转至步骤S301发送该下一升级包数据;
其中,关于更新升级设备列表,即根据不同情况,更新其中的不同表项内容,例如可以更新相关终端设备的MAC地址、当前状态、第一次收到的升级请求的重发次数n1、网关设备收到的升级回复的重发次数n2、总丢包数N、随机时延系数中的一项或多项记录等。
步骤S309:结束针对当前升级固件的本轮升级。
那么与上述无线网关设备的升级过程相对应的,如图4所示,终端设备侧的升级过程例如包括如下步骤:
步骤S201:终端设备上线,然后,跳转至步骤S202;
本步骤即确定终端设备在网络中为在线状态。
在一些实施例中,所述终端设备上线,即终端设备可以与无线网关设备相互通信;
步骤S202:终端设备判断是否接收到网络侧发送的升级请求,若是则跳转至步骤S203,否则重复步骤S202;
步骤S203:根据接收到的升级请求,判断待升级固件版本与终端设备当前已有的固件版本是否相同,即终端设备根据网关设备发送的如上述表二所示的升级请求包中的“固件版本”,与终端设备中已有的当前版本进行对比,若相同则跳转至步骤S204,否则跳转至步骤S205;
步骤S204:将终端设备的当前状态设置为已升级状态,并根据升级请求中的随机时延系数,确定发送回复消息的随机延时时间,并在接收到该升级请求的该延时时间后发送回复消息(其格式如上述表三所示),跳转至步骤S202;
步骤S205:将终端设备的当前状态设置为待升级状态,并根据升级请求中的随机时延系数,确定发送回复消息的随机延时时间,并在接收到该升级请求的该延时时间后发送回复消息(其格式如上述表三所示),然后跳转至步骤S206;
步骤S206:终端设备进入等待开始升级过程,跳转至步骤S207;
步骤S207:判断是否接收到升级固件的第一个升级包,若是,则跳转至步骤S208,若未收到则跳转至步骤S206,即继续等待接收数据;
步骤S208:判断升级包前后是否连续,例如比较当前升级包的索引,与前一升级包的索引是否连续,若连续,则跳转至步骤S210,否则说明中间有丢包情况,跳转至步骤S209;
步骤S209:若当前收到的升级包与前一收到的升级包不连续,则判定为升级失败,将终端设备的当前状态设置为丢包或升级失败,并根据当前升级包中的随机时延系数,确定针对该升级包的回复消息的时延,并按照该时延发送回复消息,由于丢包,因此,回复消息为升级失败消息,用于通知网络侧本终端设备发生了丢包或升级失败。
在一些实施例中,若再次接收到同一升级固件的升级包,则同样回复升级失败消息给无线网关设备。
步骤S210:判断当前收到的升级包是否是当前升级固件的最后一个升级包,例如判断表四中对应的总包数是否等于当前包数,若相等,表示当前收到的升级包为最后一包升级包,则跳转至步骤S211,否则继续接收下一升级包,并跳转至步骤S208;
步骤S211:将终端设备的当前状态设置为升级成功,并根据随机时延系数,确定针对该升级包的回复消息的时延,并按照该时延发送回复消息,由于是升级成功,因此回复消息为升级成功消息,并重启终端设备(用于运行最新升级数据)后,跳转至步骤S201。
在一些实施例中,针对升级包的回复消息(升级成功消息、升级失败消息)的数据格式,如下面的表五所示,包括:数据包头、本地终端设备MAC地址、收到的包数、当前状态、成功标志(即升级成功与否的标志)、第q次接收到相同数据包(即当前升级包的接收次数)、第一次接收到的当前升级包的重发次数,以及校验码CRC。
表五:终端设备针对升级包的回复消息的数据格式
其中,所述收到的包数,如前所述,即当前收到的升级包是同一升级固件的第几包升级包,也即升级包的索引。
所述当前状态为升级状态,用于通知网络侧,终端设备当前处于待升级状态或已升级状态;
所述成功标志,即终端设备接收升级包成功与否的标志,例如1表示成功接收当前升级包,0表示当前升级包接收失败;
所述第q次接收到相同数据包,是相同升级包的发送次数,由于存在有些终端设备没有收到升级包,从而导致网关设备会重发,已接收成功的终端设备可能会收到多个相同的升级包,因此,每重复收到同一升级包,则q的值加1。
所述第一次接收到的当前升级包的重发次数,是指升级过程中终端设备接收到的当前升级包的重发次数,终端设备可能在网关设备重发n次以后才第一次收到当前升级包,此处的重复次数,就是在终端第一次收到该升级包时,网络侧重复发送该升级包的次数。
也就是说,终端设备接收无线网关设备发送的升级固件的升级包,包括:
当连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级成功消息;
当未连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级失败消息。
实际情况下,存在终端设备离线或者断联,无法在无线网关设备发起的升级流程中完成升级操作。因此,在一些实施例中,如图5所示,本申请实施例还提供了终端设备上线后主动向无线网关设备发起的升级流程,例如包括:
S501、终端设备上线后,发起上线通知;
S502、无线网关设备收到终端设备的上线通知后,会查看升级设备列表中的信息,若升级设备列表中没有记录该终端设备当前的升级固件版本号,则发起查询终端设备的升级固件版本号的请求,终端设备接收到该请求后回复该终端设备当前的升级固件版本号给无线网关设备;
在一些实施例中,若升级设备列表中有未升级成功的终端设备,只查询未升级成功的终端设备即可,不需要所有终端设备的信息都查询,从而提高效率。
S503、无线网关设备对比该终端设备当前的升级固件的版本号,与最新的升级固件的版本号后,若发现不一致,则发送升级请求给该终端设备,相应地,终端设备发送针对该升级请求的回复消息(具体升级请求的发送和回复如前所述,此处不再赘述),然后,进入升级过程,具体可以参见上述升级过程,此处不再赘述。
在一些实施例中,在升级过程中无线网关设备维护的更新后的升级设备列表,例如下面的表六所示:
表六:无线网关升级设备列表具体记录内容
如表六所示,例如:
已知有5台终端设备,因为在升级请求过程中,有1台终端设备离线或未交互成功,未添加到列表中进行管理,因此表六所示列表中只有四个终端设备的信息。
进一步,在升级过程中发送某一升级包数据时,重发次数达到上限,无线网关设备没有接收到终端设备12:34:56:78:90:12的任何回复信息,判定该终端设备为离线状态,更新列表信息。
进一步,终端设备11:22:33:44:55:66未接收到前一升级包数据,而无线网关设备已结束重发该前一升级包数据(即达到重发次数上限),导致该终端设备丢包升级失败,无线网关设备接收到该终端设备发送的丢包升级失败消息后更新列表信息,即将该终端设备的当前状态变更为升级失败。
最终,有两台设备升级成功,即终端设备AA:BB:CC:DD:EE:FF和终端设备34:56:78:90:12:34升级成功,无线网关设备告知全网在线终端设备升级结束。
进一步,终端设备11:22:33:44:55:66停止发送升级失败消息,设置当前状态为在线状态,主动请求无线网关设备进行升级(即执行图5所示流程)。
同样地,离线设备12:34:56:78:90:12上线后也可以主动请求无线网关设备进行升级(即执行图5所示流程)。
综上所述,参见图6,在网络侧,本申请实施例提供的一种无线网络的空中升级方法,包括:
S111、当获取到升级固件时,向与无线网关设备建立连接的至少一个待升级的终端设备发起升级请求;
所述无线网关设备建立连接的至少一个待升级的终端设备,例如图1所示的网络架构,即本申请实施例提供的技术方案适用于星型集中式网络的空中升级。
S112、当满足如下条件之一时,发送所述升级固件的升级包给所述待升级的终端设备:
收到所有所述待升级的终端设备针对所述升级请求的回复消息;
当未收到针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值;
当未收到所有所述待升级的终端设备针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值。
其中,本申请实施例中所述的预设阈值,不同的情况可以对应不同的取值,具体取值可以根据实际情况而定,本申请实施例不进行限制。
可见,该方法适用于大型无线网络环境对无线终端设备实现一对多同时升级,且无线终端设备数量越多,升级效率越高,尤其对于星型集中式网络。
在一些实施例中,当从云服务器获取到升级固件时,所述方法还包括:创建初始化的升级设备列表,所述升级设备列表中包括所述至少一个待升级的终端设备的下列至少一项表项(例如上述表一所示):
终端设备媒体接入控制地址、终端设备当前状态、终端设备第一次收到的升级请求的重发次数、所述无线网关设备收到的针对所述升级请求的回复消息的重发次数、总丢包数、用于确定回复消息的发送时延的随机时延系数。
本申请实施例中,无线网关设备可以通过管理升级设备列表,确保知晓星型集中式网络中的所有终端设备节点中升级完成的终端设备、未升级成功的终端设备,从升级请求发起到升级结束,整个过程所有参与升级的终端设备的状态都是可监测、可管理、可操作的。
并且,本申请实施例中,考虑到大型无线网络一对多同时升级过程中产生的数据冲突问题,因此在网络侧给终端设备发送的消息(升级请求、升级包等)中引入用于指示终端随机生成回复消息发送时延的随机时延系数,通过更新和管理随机时延系数,大大降低多个终端设备同时升级过程中的数据冲突、丢包问题,以及整体的升级过程耗时较大的问题。
在一些实施例中,当收到任一所述终端设备针对所述升级请求的回复消息时,所述方法还包括:
若所述升级设备列表中没有关于发送该回复消息的终端设备的记录,则更新所述升级设备列表,所述更新所述升级设备列表包括:在所述升级设备列表中新增关于发送该回复消息的终端设备的所述表项的信息。
在一些实施例中,所述升级请求包括下列至少一项内容(例如上述表二所示):数据包头、用于表示是否已完成升级的升级请求标志、升级固件版本、预设的总重发次数、当前重发次数、用于确定升级请求的发送时延的随机时延系数、用于校验升级请求完整性的循环冗余校验码。
在一些实施例中,针对所述升级请求的回复消息包括下列至少一项内容(例如上述表三所示):数据包头、终端设备媒体接入控制地址、用于表示是否已升级的升级标志、终端设备当前状态、收到所述升级请求的次数、第一次接收到升级请求包的重发次数、用于校验回复消息完整性的循环冗余校验码。
在一些实施例中,所述发送所述升级固件的升级包给所述待升级的终端设备(例如图3所示升级流程),包括:
确定所述升级固件的当前升级包,并发送给所述待升级的终端设备;
当确定收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且未收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述当前升级包的重发次数未超过预设阈值,则重新发送所述当前升级包,若所述当前升级包的重发次数超过预设阈值,并且所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且已收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备。
在一些实施例中,所述升级包中包括下列至少一项内容(例如上述表四所示):
数据包头、用于指示是否为升级包的标志、所述升级固件对应的升级包的数量、当前升级包的索引、当前升级包的数据长度、当前升级包的数据、当前升级包的当前重发次数、用于确定针对当前升级包的回复消息的发送时延的随机时延系数、用于校验当前升级包是否完整的校验码。
也就是说,无论是网络侧发送的升级请求,还是升级包,都可以携带随机时延系数,具体的随机时延系数的值的确定方式,例如可以采用上述的计算公式Di=Ni/m确定,并发给终端,使得终端可以利用该值确定回复消息的随机时延(例如Di*random(Di,Di+K)),从而避免大型网络中同时升级产生的数据冲突问题,进而可以进一步提高升级效率。
在一些实施例中,所述方法还包括(例如图5所示流程):
接收终端设备发送的上线通知;
根据所述终端设备发送的上线通知,向所述终端设备发送查询升级固件版本号的请求;
接收所述终端设备回复的所述终端设备当前的升级固件版本号;
比较所述终端设备回复的所述终端设备当前的升级固件版本号,与升级设备列表中记录的该终端设备的升级固件版本号,若不一致,则发送升级请求给该终端设备,并且当收到该终端设备的回复消息时,向该终端设备发送该升级固件的升级包,开始升级流程。
相应地,在终端侧,参见图7,本申请实施例提供的一种无线网络的空中升级方法,包括:
S121、当收到无线网关设备发送的关于升级固件的升级请求时,根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,其中携带所述本地终端设备是否为待升级的终端设备的指示信息;
S122、当所述本地终端设备为待升级的终端设备时,接收所述无线网关设备发送的所述升级固件的升级包。
在一些实施例中,所述升级请求中包括:用于确定发送针对所述升级请求的回复消息的时延的随机时延系数;
根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,包括:
根据所述随机时延系数,采用如下公式随机确定发送针对所述升级请求的回复消息的时延:
D*random(D,D+K)
其中,D=N/m;D表示所述本地终端设备的随机时延系数,N表示所述本地终端设备的丢包数,m表示与所述无线网关设备建立连接的待升级的终端设备的总数,K为预设值,K为大于或等于0的整数;
按照所述时延发送所述回复消息。
上述D的值直接携带在升级请求中,是由无线网关设备利用公式D=N/m确定的。
在一些实施例中,所述接收无线网关设备发送的升级固件的升级包,包括:
当连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级成功消息;
当未连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级失败消息;
其中,所述升级成功消息或所述升级失败消息,包括下列至少一项内容(例如上述表五所示):数据包头、本地终端设备媒体接入控制地址、当前升级包的索引、本地终端设备的当前状态、升级成功与否的标志、当前升级包的接收次数、第一次接收到的当前升级包的重发次数、用于校验该消息完整性的校验码。
在一些实施例中,所述方法还包括(例如图5所示流程):
当本地终端设备从离线状态恢复到上线状态时,或者在对所述升级固件的升级包升级失败后,当所述本地终端设备重新设置为在线状态时,向所述无线网关设备发送上线通知,用于触发所述无线网关设备执行针对该终端设备的升级流程。
也就是说,本申请实施例提供的方法,也可以无需建立一对多的网络连接,也能实现一对多的升级,因此也适用于一些不支持一对多连接的网络。或者,一对多升级失败的情况下,也可以由升级失败状态变更为在线状态的终端设备主动发起升级请求,从而再次执行一轮升级流程,使得未升级成功的终端设备可通过主动请求方式进行升级,而无需将升级的控制权全部放在无线网关设备上。
下面介绍一下本申请实施例提供的设备,其中与上述方法中所述的相同或相应的技术特征的解释或举例说明,后续不再赘述。
参见图8,在网络侧,本申请实施例提供的一种无线网络的空中升级设备(例如无线网关设备)包括:
处理器500,用于读取存储器520中的程序,执行下列过程:
当获取到升级固件时,向与无线网关设备建立连接的至少一个待升级的终端设备发起升级请求;
当满足如下条件之一时,发送所述升级固件的升级包给所述待升级的终端设备:
收到所有所述待升级的终端设备针对所述升级请求的回复消息;
当未收到针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值;
当未收到所有所述待升级的终端设备针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值。
在一些实施例中,当从云服务器获取到升级固件时,所述处理器500,还用于读取存储器520中的程序,执行下列过程:创建初始化的升级设备列表,所述升级设备列表中包括所述至少一个待升级的终端设备的下列至少一项表项:
终端设备媒体接入控制地址、终端设备当前状态、终端设备第一次收到的升级请求的重发次数、所述无线网关设备收到的针对所述升级请求的回复消息的重发次数、总丢包数、用于确定回复消息的发送时延的随机时延系数。
在一些实施例中,当收到任一所述终端设备针对所述升级请求的回复消息时,所述处理器500,还用于读取存储器520中的程序,执行下列过程:
若所述升级设备列表中没有关于发送该回复消息的终端设备的记录,则更新所述升级设备列表,所述更新所述升级设备列表包括:在所述升级设备列表中新增关于发送该回复消息的终端设备的所述表项的信息。
在一些实施例中,所述升级请求包括下列至少一项内容:数据包头、用于表示是否已完成升级的升级请求标志、升级固件版本、预设的总重发次数、当前重发次数、用于确定升级请求的发送时延的随机时延系数、用于校验升级请求完整性的循环冗余校验码。
在一些实施例中,针对所述升级请求的回复消息包括下列至少一项内容:数据包头、终端设备媒体接入控制地址、用于表示是否已升级的升级标志、终端设备当前状态、收到所述升级请求的次数、第一次接收到升级请求包的重发次数、用于校验回复消息完整性的循环冗余校验码。
在一些实施例中,所述发送所述升级固件的升级包给所述待升级的终端设备,包括:
确定所述升级固件的当前升级包,并发送给所述待升级的终端设备;
当确定收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且未收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述当前升级包的重发次数未超过预设阈值,则重新发送所述当前升级包,若所述当前升级包的重发次数超过预设阈值,并且所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且已收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备。
在一些实施例中,所述升级包中包括下列至少一项内容:
数据包头、用于指示是否为升级包的标志、所述升级固件对应的升级包的数量、当前升级包的索引、当前升级包的数据长度、当前升级包的数据、当前升级包的当前重发次数、用于确定针对当前升级包的回复消息的发送时延的随机时延系数、用于校验当前升级包是否完整的校验码。
在一些实施例中,所述处理器500,还用于读取存储器520中的程序,执行下列过程:
接收终端设备发送的上线通知;
根据所述终端设备发送的上线通知,向所述终端设备发送查询升级固件版本号的请求;
接收所述终端设备回复的所述终端设备当前的升级固件版本号;
比较所述终端设备回复的所述终端设备当前的升级固件版本号,与升级设备列表中记录的该终端设备的升级固件版本号,若不一致,则发送升级请求给该终端设备,并且当收到该终端设备的回复消息时,向该终端设备发送该升级固件的升级包,开始升级流程。
收发机510,用于在处理器500的控制下接收和发送数据。
其中,在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他设备通信的单元,这些传输介质包括无线信道、有线信道、光缆等传输介质。处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
处理器500可以是中央处埋器(CPU)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD),处理器也可以采用多核架构。
参见图9,在终端侧,本申请实施例提供的一种无线网络的空中升级设备(可以是任何类型的终端设备)包括:
处理器600,用于读取存储器620中的程序,执行下列过程:
当收到无线网关设备发送的关于升级固件的升级请求时,根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,其中携带所述本地终端设备是否为待升级的终端设备的指示信息;
当所述本地终端设备为待升级的终端设备时,接收所述无线网关设备发送的所述升级固件的升级包。
在一些实施例中,所述升级请求中包括:用于确定发送针对所述升级请求的回复消息的时延的随机时延系数;
根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,包括:
根据所述随机时延系数,采用如下公式随机确定发送针对所述升级请求的回复消息的时延:
D*random(D,D+K)
其中,D=N/m;D表示所述本地终端设备的随机时延系数,N表示所述本地终端设备的丢包数,m表示与所述无线网关设备建立连接的待升级的终端设备的总数,K为预设值,K为大于或等于0的整数;
按照所述时延发送所述回复消息。
在一些实施例中,所述接收无线网关设备发送的升级固件的升级包,包括:
当连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级成功消息;
当未连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级失败消息;
其中,所述升级成功消息或所述升级失败消息,包括下列至少一项内容:数据包头、本地终端设备媒体接入控制地址、当前升级包的索引、本地终端设备的当前状态、升级成功与否的标志、当前升级包的接收次数、第一次接收到的当前升级包的重发次数、用于校验该消息完整性的校验码。
在一些实施例中,所述处理器600,还用于读取存储器620中的程序,执行下列过程:
当本地终端设备从离线状态恢复到上线状态时,或者在对所述升级固件的升级包升级失败后,当所述本地终端设备重新设置为在线状态时,向所述无线网关设备发送上线通知,用于触发所述无线网关设备执行针对该终端设备的升级流程。
收发机610,用于在处理器600的控制下接收和发送数据。
其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他设备通信的单元,这些传输介质包括,这些传输介质包括无线信道、有线信道、光缆等传输介质。针对不同的用户设备,用户接口630还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。
在一些实施方式中,处理器600可以是CPU(中央处埋器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable GateArray,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件),处理器也可以采用多核架构。
处理器通过调用存储器存储的计算机程序,用于按照获得的可执行指令执行本申请实施例提供的任一所述方法。处理器与存储器也可以物理上分开布置。
在此需要说明的是,本申请实施例提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
参见图10,在网络侧,本申请实施例提供的另一种无线网络的空中升级设备,包括:
发送升级请求处理单元11,用于当获取到升级固件时,向与无线网关设备建立连接的至少一个待升级的终端设备发起升级请求;
发送升级包处理单元12,用于当满足如下条件之一时,发送所述升级固件的升级包给所述待升级的终端设备:
收到所有所述待升级的终端设备针对所述升级请求的回复消息;
当未收到针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值;
当未收到所有所述待升级的终端设备针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值。
在一些实施例中,当从云服务器获取到升级固件时,所述发送升级请求处理单元11还用于:创建初始化的升级设备列表,所述升级设备列表中包括所述至少一个待升级的终端设备的下列至少一项表项:
终端设备媒体接入控制地址、终端设备当前状态、终端设备第一次收到的升级请求的重发次数、所述无线网关设备收到的针对所述升级请求的回复消息的重发次数、总丢包数、用于确定回复消息的发送时延的随机时延系数。
在一些实施例中,当收到任一所述终端设备针对所述升级请求的回复消息时,所述发送升级请求处理单元11还用于:
若所述升级设备列表中没有关于发送该回复消息的终端设备的记录,则更新所述升级设备列表,所述更新所述升级设备列表包括:在所述升级设备列表中新增关于发送该回复消息的终端设备的所述表项的信息。
在一些实施例中,所述升级请求包括下列至少一项内容:数据包头、用于表示是否已完成升级的升级请求标志、升级固件版本、预设的总重发次数、当前重发次数、用于确定升级请求的发送时延的随机时延系数、用于校验升级请求完整性的循环冗余校验码。
在一些实施例中,针对所述升级请求的回复消息包括下列至少一项内容:数据包头、终端设备媒体接入控制地址、用于表示是否已升级的升级标志、终端设备当前状态、收到所述升级请求的次数、第一次接收到升级请求包的重发次数、用于校验回复消息完整性的循环冗余校验码。
在一些实施例中,所述发送所述升级固件的升级包给所述待升级的终端设备,包括:
确定所述升级固件的当前升级包,并发送给所述待升级的终端设备;
当确定收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且未收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述当前升级包的重发次数未超过预设阈值,则重新发送所述当前升级包,若所述当前升级包的重发次数超过预设阈值,并且所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且已收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备。
在一些实施例中,所述升级包中包括下列至少一项内容:
数据包头、用于指示是否为升级包的标志、所述升级固件对应的升级包的数量、当前升级包的索引、当前升级包的数据长度、当前升级包的数据、当前升级包的当前重发次数、用于确定针对当前升级包的回复消息的发送时延的随机时延系数、用于校验当前升级包是否完整的校验码。
在一些实施例中,所述发送升级请求处理单元11还用于:
接收终端设备发送的上线通知;
根据所述终端设备发送的上线通知,向所述终端设备发送查询升级固件版本号的请求;
接收所述终端设备回复的所述终端设备当前的升级固件版本号;
比较所述终端设备回复的所述终端设备当前的升级固件版本号,与升级设备列表中记录的该终端设备的升级固件版本号,若不一致,则发送升级请求给该终端设备;
所述发送升级包处理单元12还用于:
当收到该终端设备的回复消息时,向该终端设备发送该升级固件的升级包,开始升级流程。
参见图11,在终端侧,本申请实施例提供的另一种无线网络的空中升级设备,包括:
接收升级请求处理单元21,用于当收到无线网关设备发送的关于升级固件的升级请求时,根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,其中携带所述本地终端设备是否为待升级的终端设备的指示信息;
接收升级包处理单元22,用于当所述本地终端设备为待升级的终端设备时,接收所述无线网关设备发送的所述升级固件的升级包。
在一些实施例中,所述升级请求中包括:用于确定发送针对所述升级请求的回复消息的时延的随机时延系数;
根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,包括:
根据所述随机时延系数,采用如下公式随机确定发送针对所述升级请求的回复消息的时延:
D*random(D,D+K)
其中,D=N/m;D表示所述本地终端设备的随机时延系数,N表示所述本地终端设备的丢包数,m表示与所述无线网关设备建立连接的待升级的终端设备的总数,K为预设值,K为大于或等于0的整数;
按照所述时延发送所述回复消息。
在一些实施例中,所述接收无线网关设备发送的升级固件的升级包,包括:
当连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级成功消息;
当未连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级失败消息;
其中,所述升级成功消息或所述升级失败消息,包括下列至少一项内容:数据包头、本地终端设备媒体接入控制地址、当前升级包的索引、本地终端设备的当前状态、升级成功与否的标志、当前升级包的接收次数、第一次接收到的当前升级包的重发次数、用于校验该消息完整性的校验码。
在一些实施例中,所述设备还包括:
发送上线通知单元(图11中未示出),用于当本地终端设备从离线状态恢复到上线状态时,或者在对所述升级固件的升级包升级失败后,当所述本地终端设备重新设置为在线状态时,向所述无线网关设备发送上线通知,用于触发所述无线网关设备执行针对该终端设备的升级流程(例如包括图5所示的步骤S502和步骤S503)。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储本申请实施例提供的任一所述方法的程序。
处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行本申请实施例提供的任一所述方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的任一所述方法。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请实施例提供了一种计算机可读存储介质,用于储存为上述本申请实施例提供的装置所用的计算机程序指令,其包含用于执行上述本申请实施例提供的任一方法的程序。所述计算机可读存储介质,可以是非暂时性计算机可读介质。
所述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
应当理解:
通信网络中的实体经由其往来传送流量的接入技术可以是任何合适的当前或未来技术,诸如可以使用WLAN(无线本地接入网络)、WiMAX(微波接入全球互操作性)、LTE、LTE-A、5G、蓝牙、红外等;另外,实施例还可以应用有线技术,例如,基于IP的接入技术,如有线网络或固定线路。
适合于被实现为软件代码或其一部分并使用处理器或处理功能运行的实施例是独立于软件代码的,并且可以使用任何已知或未来开发的编程语言来规定,诸如高级编程语言,诸如objective-C、C、C++、C#、Java、Python、Javascript、其他脚本语言等,或低级编程语言,诸如机器语言或汇编程序。
实施例的实现是独立于硬件的,并且可以使用任何已知或未来开发的硬件技术或其任何混合来实现,诸如微处理器或CPU(中央处理单元)、MOS(金属氧化物半导体)、CMOS(互补MOS)、BiMOS(双极MOS)、BiCMOS(双极CMOS)、ECL(发射极耦合逻辑)和/或TTL(晶体管-晶体管逻辑)。
实施例可以被实现为单独的设备、装置、单元、部件或功能,或者以分布式方式实现,例如,可以在处理中使用或共享一个或多个处理器或处理功能,或者可以在处理中使用和共享一个或多个处理段或处理部分,其中,一个物理处理器或多于一个的物理处理器可以被用于实现一个或多个专用于如所描述的特定处理的处理部分。
装置可以由半导体芯片、芯片组或包括这种芯片或芯片组的(硬件)模块来实现。
实施例还可以被实现为硬件和软件的任何组合,诸如ASIC(应用特定IC(集成电路))组件、FPGA(现场可编程门阵列)或CPLD(复杂可编程逻辑器件)组件或DSP(数字信号处理器)组件。
实施例还可以被实现为计算机程序产品,包括在其中体现计算机可读程序代码的计算机可用介质,该计算机可读程序代码适应于执行如实施例中所描述的过程,其中,该计算机可用介质可以是非暂时性介质。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种无线网络的空中升级方法,其特征在于,所述方法包括:
当获取到升级固件时,向与无线网关设备建立连接的至少一个待升级的终端设备发起升级请求;
当满足如下条件之一时,发送所述升级固件的升级包给所述待升级的终端设备:
收到所有所述待升级的终端设备针对所述升级请求的回复消息;
当未收到针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值;
当未收到所有所述待升级的终端设备针对所述升级请求的回复消息时,重新发送所述升级请求的次数累计超过预设阈值。
2.根据权利要求1所述的方法,其特征在于,当从云服务器获取到升级固件时,所述方法还包括:创建初始化的升级设备列表,所述升级设备列表中包括所述至少一个待升级的终端设备的下列至少一项表项:
终端设备媒体接入控制地址、终端设备当前状态、终端设备第一次收到的升级请求的重发次数、所述无线网关设备收到的针对所述升级请求的回复消息的重发次数、总丢包数、用于确定回复消息的发送时延的随机时延系数。
3.根据权利要求2所述的方法,其特征在于,当收到任一所述终端设备针对所述升级请求的回复消息时,所述方法还包括:
若所述升级设备列表中没有关于发送该回复消息的终端设备的记录,则更新所述升级设备列表,所述更新所述升级设备列表包括:在所述升级设备列表中新增关于发送该回复消息的终端设备的所述表项的信息。
4.根据权利要求1所述的方法,其特征在于,所述升级请求包括下列至少一项内容:数据包头、用于表示是否已完成升级的升级请求标志、升级固件版本、预设的总重发次数、当前重发次数、用于确定升级请求的发送时延的随机时延系数、用于校验升级请求完整性的循环冗余校验码。
5.根据权利要求1所述的方法,其特征在于,针对所述升级请求的回复消息包括下列至少一项内容:数据包头、终端设备媒体接入控制地址、用于表示是否已升级的升级标志、终端设备当前状态、收到所述升级请求的次数、第一次接收到升级请求包的重发次数、用于校验回复消息完整性的循环冗余校验码。
6.根据权利要求1所述的方法,其特征在于,所述发送所述升级固件的升级包给所述待升级的终端设备,包括:
确定所述升级固件的当前升级包,并发送给所述待升级的终端设备;
当确定收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且未收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述当前升级包的重发次数未超过预设阈值,则重新发送所述当前升级包,若所述当前升级包的重发次数超过预设阈值,并且所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备;
当确定未收到所有所述待升级的终端设备针对所述当前升级包的接收成功回复消息,并且已收到所有所述待升级的终端设备针对所述当前升级包的回复消息时,若所述升级固件还有其他升级包没有发送,则发送所述升级固件的下一升级包给所述待升级的终端设备。
7.根据权利要求1所述的方法,其特征在于,所述升级包中包括下列至少一项内容:
数据包头、用于指示是否为升级包的标志、所述升级固件对应的升级包的数量、当前升级包的索引、当前升级包的数据长度、当前升级包的数据、当前升级包的当前重发次数、用于确定针对当前升级包的回复消息的发送时延的随机时延系数、用于校验当前升级包是否完整的校验码。
8.一种无线网络的空中升级方法,其特征在于,所述方法包括:
当收到无线网关设备发送的关于升级固件的升级请求时,根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,其中携带所述本地终端设备是否为待升级的终端设备的指示信息;
当所述本地终端设备为待升级的终端设备时,接收所述无线网关设备发送的所述升级固件的升级包。
9.根据权利要求8所述的方法,其特征在于,所述升级请求中包括:用于确定发送针对所述升级请求的回复消息的时延的随机时延系数;
根据所述升级请求向所述无线网关设备发送针对所述升级请求的回复消息,包括:
根据所述随机时延系数,采用如下公式随机确定发送针对所述升级请求的回复消息的时延:
D*random(D,D+K)
其中,D=N/m;D表示所述本地终端设备的随机时延系数,N表示所述本地终端设备的丢包数,m表示与所述无线网关设备建立连接的待升级的终端设备的总数,K为预设值,K为大于或等于0的整数;
按照所述时延发送所述回复消息。
10.根据权利要求8所述的方法,其特征在于,所述接收无线网关设备发送的升级固件的升级包,包括:
当连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级成功消息;
当未连续成功接收到所述升级固件的所有升级包时,向所述无线网关设备回复升级失败消息;
其中,所述升级成功消息或所述升级失败消息,包括下列至少一项内容:数据包头、本地终端设备媒体接入控制地址、当前升级包的索引、本地终端设备的当前状态、升级成功与否的标志、当前升级包的接收次数、第一次接收到的当前升级包的重发次数、用于校验该消息完整性的校验码。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当本地终端设备从离线状态恢复到上线状态时,或者在对所述升级固件的升级包升级失败后,当所述本地终端设备重新设置为在线状态时,向所述无线网关设备发送上线通知,用于触发所述无线网关设备执行针对该终端设备的升级流程。
12.一种无线网络的空中升级设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至7任一项所述的方法。
13.一种无线网络的空中升级设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求8至11任一项所述的方法。
14.一种用于计算机的计算机程序产品,其特征在于,包括软件代码部分,当所述产品在所述计算机上运行时,所述软件代码部分用于执行根据权利要求1至11中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至11任一项所述的方法。
CN202310912274.7A 2023-07-24 2023-07-24 一种无线网络的空中升级方法及设备 Pending CN116828448A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310912274.7A CN116828448A (zh) 2023-07-24 2023-07-24 一种无线网络的空中升级方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310912274.7A CN116828448A (zh) 2023-07-24 2023-07-24 一种无线网络的空中升级方法及设备

Publications (1)

Publication Number Publication Date
CN116828448A true CN116828448A (zh) 2023-09-29

Family

ID=88116749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310912274.7A Pending CN116828448A (zh) 2023-07-24 2023-07-24 一种无线网络的空中升级方法及设备

Country Status (1)

Country Link
CN (1) CN116828448A (zh)

Similar Documents

Publication Publication Date Title
CN107835040B (zh) 一种基于蓝牙的数据通讯的方法、设备及存储介质
CN109417691B (zh) 一种蓝牙集群在线升级方法及装置
CN110071876B (zh) 一种基于区块链的数据传输方法、装置及电子设备
CN110830925B (zh) 一种用户群组的会话管理方法及装置
US12445224B2 (en) Data transmission method and apparatus, device, and medium
US11889255B2 (en) Communication method between earphones and charging box, charging box, earphones and readable storage medium
EP3160109B1 (en) Udp-based control command transmission method, sender and receiver
CN111884875A (zh) 一种离线设备确定方法及装置
CN116709385A (zh) 监控定位模型的方法、通信装置、可读存储介质和芯片
CN110430135A (zh) 一种报文处理方法和装置
CN103684707A (zh) 服务端、用户端消息传输处理方法、消息传输方法及系统
CN110381603B (zh) 一种随机接入方法及终端
CN103561477B (zh) 一种竞争窗口值的更新方法和接入点
CN115695497B (zh) 诊断数据远程传输方法、装置、电子设备及介质
WO2020147081A1 (zh) 一种数据传输方法、相关设备及计算机存储介质
CN116828448A (zh) 一种无线网络的空中升级方法及设备
CN111885613B (zh) 基于sig mesh的组网方法、节点设备以及计算机设备
CN111836215A (zh) 一种基于v2x的消息处理方法
CN112449357B (zh) 一种信息交互方法及相关设备
US20250024361A1 (en) Method for determining service access point, information sending method, communication node, and storage medium
JP6088452B2 (ja) データベースシステムおよびデータ更新方法
CN116366499B (zh) 数据传输方法、装置、电子设备和介质
CN111885588A (zh) 执行电子卡管理业务的方法及装置
CN114629889B (zh) 远程控制链接的建立方法、装置、设备及介质
CN118488588A (zh) 一种网关数据传输方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination