CN116088901A - 一种固件升级的方法、装置、电子设备及计算机存储介质 - Google Patents
一种固件升级的方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN116088901A CN116088901A CN202211703372.1A CN202211703372A CN116088901A CN 116088901 A CN116088901 A CN 116088901A CN 202211703372 A CN202211703372 A CN 202211703372A CN 116088901 A CN116088901 A CN 116088901A
- Authority
- CN
- China
- Prior art keywords
- management platform
- message management
- information
- firmware
- login
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种固件升级的方法、装置、电子设备和计算机存储介质,该方法包括:确定待升级终端设备的属性信息,并根据所述属性信息确定主题信息;向消息管理平台发送第一登录指令,所述第一登录指令包括所述主题信息和所述主题信息对应的固件升级包,所述主题信息和所述主题信息对应的固件升级包用于所述待升级终端设备进行固件升级;向所述消息管理平台发送第一退出指令,所述第一退出指令指示断开与所述消息管理平台的连接。采用本申请实施例,可以在精准地对终端设备进行升级的同时,无需对服务器进行专门开发、维护和实时监控,使得固件升级系统更简单,实现难度降低。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种固件升级的方法、装置、电子设备及计算机存储介质。
背景技术
随着计算机网络的不断发展,服务器可以为诸如手机、平板电脑、便携式媒体播放器等多种不同的终端设备提供远程的固件升级服务。目前,服务器可以为某一个或多个终端设备的固件进行精准的升级,也可以实现实时地控制连接的终端设备的升级。但是,为了实现服务器为终端设备的固件进行升级,则需要对该服务器进行专门的开发和维护,并需要对服务器进行实时的监控,以保证服务器能够保持稳定。并且,服务器需要保持在线状态才能实现与连接的终端设备实时升级,这样会消耗大量的流量,使得服务器的容量大大降低,使得升级的系统相对复杂,实现难度大。
发明内容
本申请提供了一种固件升级的方法、装置、电子设备及计算机存储介质,可以在精准地对终端设备进行升级的同时,无需对服务器进行专门开发、维护和实时监控,使得固件升级系统更简单,实现难度降低。
第一方面,本申请提供了一种固件升级的方法,包括:
确定待升级终端设备的属性信息,并根据上述属性信息确定主题信息;
向消息管理平台发送第一登录指令,上述第一登录指令包括上述主题信息和上述主题信息对应的固件升级包,上述主题信息和上述主题信息对应的固件升级包用于上述待升级终端设备进行固件升级;
向上述消息管理平台发送第一退出指令,上述第一退出指令指示断开与上述消息管理平台的连接。
在一种可能的实现方式中,上述第一登录指令还包括上述主题信息对应的路径信息,上述主题信息对应的路径信息与上述主题信息对应的固件升级包具有关联关系。
第二方面,本申请提供了一种固件升级的方法,包括:
确定终端设备的属性信息;
向消息管理平台发送第二登录指令,上述第二登录指令用于请求建立与上述消息管理平台的连接;
接收来自上述消息管理平台的主题信息和上述主题信息对应的固件升级包;
在上述属性信息与上述主题信息匹配的情况下,根据上述固件升级包进行固件升级。
在一种可能的实现方式中,上述方法还包括:
确定上述第二登录指令对应的第一登录时间;
在当前时间到达上述第一登录时间的情况下,向上述消息管理平台发送上述第二登录指令;
其中,上述第一登录时间是上述终端设备在上一次完成固件升级的情况下,根据预设间隔时长和随机间隔时长确定的。
在一种可能的实现方式中,上述确定终端设备的属性信息,包括:
获取终端设备的属性信息以及属性配置规则,上述属性配置规则包括通配符和上述通配符对应的属性信息;
将上述属性信息和上述通配符对应的属性信息确定为上述终端设备的属性信息。
在一种可能的实现方式中,根据上述固件升级包进行固件升级,包括:
将上述固件升级包存储在上述终端设备;
在确定在重新启动之后的上述终端设备满足升级条件的情况下,根据上述固件升级包进行固件升级。
在一种可能的实现方式中,上述终端设备还接收来自上述消息管理平台的上述主题信息对应的路径信息,上述主题信息对应的路径信息与上述主题信息对应的固件升级包具有关联关系。
在一种可能的实现方式中,上述将上述固件升级包存储在上述终端设备之后,上述方法还包括:
向上述消息管理平台发送第二退出指令,上述第二退出指令指示断开与上述消息管理平台的连接。
在一种可能的实现方式中,上述方法还包括:
在完成固件升级,且设定的定时器超时的情况下,向上述消息管理平台发送第三登录指令,上述设定的定时器在发送上述第二退出指令时启动计时,上述第三登录指令用于请求再次建立与上述消息管理平台的连接;
获取上述第三登录指令对应的第二登录时间、上述预设间隔时长和上述随机间隔时长;
根据上述第二登录时间、上述预设间隔时长和上述随机间隔时长确定向上述消息管理平台发送第四登录指令对应的第三登录时间,上述第四登录指令为在上述第三登录指令之后下一次向上述消息管理平台发送的登录指令。
第三方面,本申请提供了一种固件升级装置,包括:
确定单元,用于确定待升级终端设备的属性信息,并根据上述属性信息确定主题信息;
发送单元,用于向消息管理平台发送第一登录指令,上述第一登录指令包括上述主题信息和上述主题信息对应的固件升级包,上述主题信息和上述主题信息对应的固件升级包用于上述待升级终端设备进行固件升级;
上述发送单元,还用于向上述消息管理平台发送第一退出指令,上述第一退出指令指示断开与上述消息管理平台的连接。
另外,该方面中,固件升级装置其他可选的实现方式可参见上述第一方面的相关内容,此处不再详述。
第四方面,本申请提供了一种固件升级装置,包括:
确定单元,用于确定终端设备的属性信息;
发送单元,用于向消息管理平台发送第二登录指令,上述第二登录指令用于请求建立与上述消息管理平台的连接;
接收单元,用于接收来自上述消息管理平台的主题信息和上述主题信息对应的固件升级包;
升级单元,用于在上述属性信息与上述主题信息匹配的情况下,根据上述固件升级包进行固件升级。
另外,该方面中,固件升级装置其他可选的实现方式可参见上述第二方面的相关内容,此处不再详述。
第五方面,本申请提供了一种电子设备,该设备包括存储器和处理器、收发器;上述处理器分别与上述存储器和上述收发器相连,其中,上述存储器存储有计算机程序代码,上述处理器和上述收发器用于调用上述程序代码,执行上述第一方面和/或第一方面任一种可能的实现方式,以及第二方面和/或第二方面任一种可能的实现方式提供的方法。
第六方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令被处理器执行时使该处理器实现本申请提供的固件升级方法。
第七方面,本申请提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备实现本申请提供的固件升级方法。
在本申请实施例中,服务器通过确定待升级设备的属性信息,并根据属性信息确定主题信息,进而向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包,在发送完成后,服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器断开与消息管理平台之间的连接。由此可见,本申请提出的方法,服务器在保证终端设备可以升级的情况下,服务器无需一直在线,并且服务器无需专门开发、维护和实时监控,功能实现较为简单,固件升级的系统实现也较为简单,易于开发,从而适用性高,能够满足较多场景的使用需求。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种固件升级系统的架构示意图;
图2是本申请实施例提供的一种固件升级的方法的流程示意图;
图3是本申请实施例提供的一种固件升级的方法的另一流程示意图;
图4是本申请实施例提供的一种固件升级的方法的流程框图;
图5是本申请实施例提供的一种固件升级装置的结构示意图;
图6是本申请实施例提供的一种固件升级装置的另一结构示意图;
图7是本申请实施例提供的一种电子设备(服务器)的结构示意图;
图8是本申请实施例提供的一种电子设备(终端设备)的结构示意图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,在对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,以便于本领域技术人员理解。本申请实施例中涉及的名词和术语适用于如下的解释:
1、消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)
MQTT是一个基于发布/订阅范式的轻量级传输协议,该协议构建于传输控制协议/网际互连协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议。其中,只要可以支持TCP/IP协议栈的地方,都可以使用MQTT。MQTT最大的优点在于可以以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,MQTT在物联网、小型设备、移动应用等方面有广泛的应用。
应用在本申请中,由于MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT服务器可以提供消息管理平台(也可以称为MQTT代理),不同的电子设备可以作为消息的发布者发布消息,也可以作为订阅者订阅发布者发布的消息。其中,订阅者也可以称为消费者,接收发布者发布的消息的行为也可以称为消费消息。
2、移动终端的空中下载软件升级(Firmware Over the Air,FOTA)
FOTA是指通过云端升级技术,为具有连网功能的设备:例如手机、平板电脑、便携式媒体播放器、移动互联网设备等提供固件升级服务,用户使用网络以按需、易扩展的方式获取智能终端系统升级包,并通过FOTA进行云端升级,完成系统修复和优化。
应用在本申请中,可以指通过服务器(如升级管理服务器)为具有连网功能的设备,例如:手机、移动互联网设备等终端设备提供固件升级服务,完成系统修复和优化。其中,FOTA包可以指服务器(如升级管理服务器)更新的用于为不同终端设备进行固件升级的固件升级包,可以指软件安装包,终端设备可以基于该固件升级包进行安装升级。
3、服务质量(quality of service,Qos)
服务质量是指消息发送方和消息接收方之间消息传递的保证级别。例如服务质量(Qos)为1则表示消息发送方和消息接收方之间消息传递的保证级别为1。
应用于本申请中,服务器设置在消息管理平台发送的消息的保证级别,例如服务器可以在消息管理平台中发布消息,并设置发布的服务质量为1,表示发送端(服务器)发送一条消息,接收端(终端设备)至少可以接收到一次,如果发送端(服务器)在发送之后没有收到对应的回应(puback),就会继续重试,直到发送端(服务器)接收到接收端(终端设备)发送的回应(puback)为止,由于重传的原因,接收端(终端设备)有可能会收到重复的消息。
4、保留标志(RETAIN)
保留标志是指发布者发布消息时,如果RETAIN标记被设置为true(设置为1),则该消息即是MQTT中的保留消息(Retained Message)。MQTT服务器会为每个主题存储最新一条保留消息,以方便消息发布后才上线的客户端在订阅主题时仍可以接收到该消息。当客户端订阅主题时,如果服务端存在该主题匹配的保留消息,则该保留消息将被立即发送给该客户端。
应用在本申请中,服务器在MQTT服务器提供的消息管理平台中发布消息后,可以将保留标志置为1,服务器可以先发送主题信息,进而发布主题信息对应的路径信息、主题信息对应的固件升级包。由此,终端设备在登录消息管理平台后,可以接收到服务器针对该主题信息对应的路径信息、主题信息对应的固件升级包。
下面对本申请实施例涉及的固件升级系统进行介绍,请参阅图1,图1是本申请实施例提供的一种固件升级系统的架构示意图。该固件升级系统可包括终端设备100、MQTT服务器200以及升级管理服务器300。需要说明的是,该固件升级系统可以包括但不限于示例的三种终端设备,如终端设备100可以是手机、笔记本电脑、车载终端,该固件升级系统可以包括但不限于两个服务器,如MQTT服务器200以及升级管理服务器300,图1所示的设备数量和形态用于举例并不构成对本申请实施例的限定,实际应用中可以包括三个以上的终端设备,一个以上的MQTT服务器和一个以上的升级管理服务器。图1所示的固件升级系统以示例为三种不同的终端设备(终端设备100)和两个服务器(MQTT服务器200以及升级管理服务器300)为例进行阐述。
在一种可能的实现方式中,升级管理服务器300可以与MQTT服务器200通过直接或间接的连接,终端设备100中的各个终端设备也可以与MQTT服务器200通过直接或间接的连接。升级管理服务器300可以在MQTT服务器200提供的消息管理平台发布消息,终端设备100中的各个终端设备可以在MQTT服务器200提供的消息管理平台接收升级管理服务器300发布的消息。
其中,所谓终端设备,可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车联网中的车载终端设备,以及物联网中的物联网终端设备等等,本申请对此不做限定。其中,所谓MQTT服务器以及升级管理服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请对此不做限定。
随着终端设备的普及,终端设备的广泛使用,终端设备的固件远程升级技术也越来越受重视。为了实现精准地升级到某一个终端设备,通常需要搭建一个专门的服务器(如上述升级管理服务器)进行终端设备的升级,针对该服务器需要专门的开发、维护,该服务器需要长时间保持在线状态,因此还需要针对该服务器进行实时的监控,以保证服务器能够长时间保持稳定。在这种情况下,服务器会消耗大量的流量,使得服务器的容量大大降低,并且也会使得固件升级的系统较为复杂,实现难度较大。
本申请实施例中,升级管理服务器300可以确定终端设备100中待升级终端设备的属性信息,并根据属性信息确定主题信息,进而升级管理服务器300可以向消息管理平台发送第一登录指令,与MQTT服务器200提供的消息管理平台建立连接,并发布主题信息和主题信息对应的固件升级包,进一步地,升级管理服务器300可以向消息管理平台发送第一退出指令,与MQTT服务器200提供的消息管理平台断开连接。终端设备100中的各个终端设备可以确定自身的属性信息,并向消息管理平台发送第二登录指令,与MQTT服务器200提供的消息管理平台建立连接,进而终端设备100中的各个终端设备可以接收来自消息管理平台的主题信息和主题信息对应的固件升级包,存在终端设备100中的部分或全部终端设备确定自身属性信息与主题信息匹配的情况下,可以根据上述固件升级包进行固件升级。
通过本申请实施例,服务器通过确定待升级设备的属性信息,并根据属性信息确定主题信息,进而向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包,在发送完成后,服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器断开与消息管理平台之间的连接。由此可见,本申请提出的方法,服务器在保证终端设备可以升级的情况下,服务器无需一直在线,并且服务器无需专门开发、维护和实时监控,功能实现较为简单,固件升级的系统实现也较为简单,易于开发,从而适用性高,能够满足较多场景的使用需求。
可以理解的是,本申请实施例描述的固件升级系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述固件升级系统,本申请实施例提供了一种固件升级的方法,该固件升级方法可由服务器来执行,例如本申请实施例的固件升级方法可以是图1所示的固件升级系统中的升级管理服务器300实现,或者可由上述升级管理服务器300中的芯片实现。图1所示的固件升级系统所涉及的固件升级方法可参阅图2,图2是本申请实施例提供的一种固件升级的方法的流程示意图。该固件升级方法可以包括以下步骤201-203,其中:
201、服务器确定待升级终端设备的属性信息,并根据上述属性信息确定主题信息。
在本申请实施例中,待升级终端设备可以为服务器可以为多个终端设备的固件进行升级的一个或多个终端设备。所谓固件升级是指对终端设备内嵌的软件进行升级,以完善终端设备的功能、增强终端设备的稳定性、修补终端设备的漏洞,其中,固件升级可以是终端设备升级当前应用程序的版本,例如可以安装更新的版本的应用程序,该应用程序可以为固件升级包。其中,待升级终端设备的属性信息可以包括待升级终端设备的多个属性,该属性可以是该待升级终端设备的分类特性,例如按照工作地点进行分类,也可以按照终端设备的生产时间进行分类,还可以按照当前固件的版本号进行分类。主题信息为根据一个或多个属性信息确定的匹配信息,在服务器确定包括待升级终端设备包括多个属性信息的情况下,可以将多个属性信息作为匹配信息,进而将匹配信息确定为主题信息。需要说明的是,该主题信息可以是指在基于MQTT协议的消息管理平台中发布的主题(topic),该主题信息可以包括上述匹配信息(即多个属性信息)。
在一种可能的实现方式中,服务器可以确定待升级终端的属性信息,则确定在所有终端设备中需要升级的待升级终端,只有当终端设备的属性信息与主题信息中的匹配信息匹配的情况下,才可以进行升级。其中,待升级终端设备的属性信息可以包括多个,则需要多个属性信息均匹配的情况下,才可以进行升级,服务器确定的主题信息中的匹配信息可以包括一个或多个属性信息,本申请对此不做限定。匹配信息为用于各个终端设备进行匹配的信息,该匹配信息中可以包括至少一个匹配项,每一个匹配项与一个属性信息相匹配。通过多个匹配项,即多个判断条件,可以更好的确定待升级终端设备。
示例性的,本申请实施例以匹配信息中的匹配项为3个为例进行讲解,本申请对匹配项的内容和数量不做限定。例如,服务器确定的匹配信息中包括的匹配项1为终端设备的生产时间,匹配项2为终端设备的工作地点,匹配项3为终端设备当前固件的版本号,即当前终端设备应用程序的版本号,例如V1.0。其中,终端设备的属性信息也可以为与匹配项对应,例如终端设备的属性信息可以例如包括终端设备的生产时间、终端设备的工作地点以及终端设备当前固件的版本号。
在一种可能的实现方式中,服务器可以确定终端设备中的待升级终端设备,示例性的,服务器确定2022年3月份生产的目前工作在上海的固件版本号为V1.0的终端需要进行升级,则待升级终端设备的属性信息为2022年3月份生产、上海以及V1.0,则匹配信息包括的三个匹配项可以是:匹配项1为“2022年3月”,匹配项2为“上海”,匹配项3为“V1.0”。进而服务器确定的主题信息可以为将匹配信息中各个匹配性组成的信息,例如主题信息可以为“2022年3月/上海/V1.0”。再一示例性的,服务器确定2022年5月份生产的目前工作在广州的固件版本号为V1.0的终端需要进行升级。则服务器确定的待升级终端设备的属性信息为2022年5月生产、广州以及V1.0。匹配信息包括的三个匹配项可以是:匹配项1为“2022年5月”,匹配项2为“广州”,匹配项3为“V1.0”。进而服务器确定的主题信息为“2022年5月/广州/V1.0”。
进一步地,服务器可以将确定的主题信息发布在消息管理平台中,以便终端设备根据自身的属性信息进行匹配。
202、服务器向消息管理平台发送第一登录指令。
在本申请实施例中,服务器向消息管理平台发送第一登录指令可以用于与消息管理平台建立连接,其中,第一登录指令为服务器(升级管理服务器)向提供消息管理平台的MQTT服务器发送,该第一登录指令也用于服务器(升级管理服务器)与MQTT服务器建立连接。其中,服务器可以向消息管理平台发送主题信息和主题信息对应的固件升级包,该主题信息和主题信息对应的固件升级包用于待升级终端设备进行固件升级。服务器发送的主题信息和主题信息对应的固件升级包可以包括在第一登录指令中,服务器可以先发送主题信息,进而发布该主题信息对应的固件升级包,并设置发布的Qos为1,也设置保留标志为1,以便于终端设备接收。
在一种可能的实现方式中,服务器可以在消息管理平台中发布主题信息对应的路径信息,并设置发布的Qos为1,也设置保留标志为1。该主题信息对应的路径信息与该主题信息对应的固件升级包具有关联关系,该主题信息对应的路径信息也可以包括在第一登录指令中。其中,上述服务器发布的主题信息对应的固件升级包(即FOTA包)的方式可以是服务器将固件升级包上传到指定存储路径(即上述路径信息对应的存储路径),并将该存储路径通过消息管理平台发布。其中,需要说明的是,终端设备可以在属性信息与主题信息中一个或多个匹配项均匹配的情况下,接收消息管理平台发送的存储路径,即说明该终端设备为待升级终端设备,为需要升级的终端设备,进而终端设备通过该存储路径可以获取固件升级包,例如从存储路径下载固件升级包。
可选地,路径信息可以包括指示固件升级的新旧版本号的,例如待升级终端设备的固件版本号为V1.0,固件升级后的固件版本号为V2.0,也即是固件升级包的固件版本为V2.0,则路径信息可以包括“V1.0+V2.0”,也可以是包括其他内容的路径信息,本申请对此不做限定。可以理解的是,终端设备可以通过该路径信息获取固件升级包。
可选地,服务器也可以将上述固件升级包(即FOTA包)存储到其他媒介,例如基于超文本传输协议(Hyper Text Transfer Protocol,HTTP)的文件传输平台,也可以是基于文件传输协议(File Transfer Protocol,FTP)的文件传输平台,本申请对此不做限定,仅需要终端设备与服务器交互前默认约定获取固件升级包的路径即可。
其中,在服务器确定主题信息以及主题信息对应的固件升级包(路径信息)之后,可以将主题信息和主题信息对应的路径信息发布在消息管理平台中。可以理解的是,由于不同主题的终端设备对应的固件升级包可以是一个,则可以将多个不同的主题信息分别对应同一固件升级包,或者多个不同的主题信息分别对应同一路径信息。示例性的,“V1.0+V2.0”的路径信息可以与“2022年3月/上海/V1.0”的主题信息对应,“V1.0+V2.0”的路径信息也可以与“2022年5月/广州/V1.0”的主题信息对应。
203、服务器向上述消息管理平台发送第一退出指令,上述第一退出指令指示断开与上述消息管理平台的连接。
在本申请实施例中,服务器在消息管理平台发布主题信息和主题信息对应的固件升级包,例如可以是发布的主题信息对应的路径信息之后,断开与消息管理平台(MQTT代理)的连接,即服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器可以断开与MQTT服务器的链接,可以理解的是,服务器可以在确定待升级终端设备的属性信息,并根据属性信息确定主题信息之后,登录消息管理平台,并将确定的主题信息以及主题信息对应的固件升级包发布,进而可以退出(即退出登录)该消息管理平台。由此,服务器可以无需长时间在线,进而也无需实时对服务器进行监控。
并且,服务器在消息管理平台发布主题信息和主题信息对应的固件升级包(主题信息对应的路径信息)时,设置了保留标志(如上述保留标志置为1),该保留标志用户消息管理平台在终端设备上线后可以接收到该消息,从而终端设备可以自行判断是否可以进行固件升级,从而简化了升级终端设备的固件的流程,服务器也无需长时间在线,从而使得服务器的功能简单,也无需专门对服务器进行开发和维护,仅需要能够向消息管理平台发送登录指令,以及在消息管理平台中发布消息,以及向消息管理平台发送退出指令即可,例如,服务器可以安装现有开源的MQTT服务器软件即可实现,从而降低了实现升级系统的难度。
在本申请实施例中,服务器通过确定待升级设备的属性信息,并根据属性信息确定主题信息,进而向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包,在发送完成后,服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器断开与消息管理平台之间的连接。由此可见,本申请提出的方法,服务器在保证终端设备可以升级的情况下,服务器无需一直在线,并且服务器无需专门开发、维护和实时监控,功能实现较为简单,固件升级的系统实现也较为简单,易于开发,从而适用性高,能够满足较多场景的使用需求。
本申请实施例提供了一种固件升级的方法,该固件升级方法可由终端设备来执行,例如本申请实施例的固件升级方法可以是图1所示的固件升级系统中的终端设备100实现,或者可由上述终端设备100中的芯片实现。图1所示的固件升级系统所涉及的固件升级方法可参阅图3,图3是本申请实施例提供的一种固件升级的方法的另一流程示意图。该固件升级方法可以包括以下步骤301-304,其中:
301、终端设备确定终端设备的属性信息。
在本申请实施例中,终端设备的属性信息可以是终端设备的分类特性,例如按照终端设备的工作地点进行分类,也可以按照终端数设备的生产时间进行分类,还可以按照当前固件的版本号进行分类。即终端设备的属性信息可以包括三个属性信息,例如工作地点、生产时间、当前固件的版本号,示例性的,某一终端设备的属性信息可以包括:上海、2022年3月、V1.0。终端设备还可以包括其他属性信息,例如设备类型,如车载终端设备、手机等,本申请对此不做限定。上述以终端设备包括三个属性信息为例进行讲解,实际终端设备可以包括一个或多个属性信息,本申请对此不做限定。
需要说明的是,服务器所确定主题信息中包括的匹配项与终端设备中的属性信息对应,即一个匹配项可以与一个属性信息对应,则服务器可以与终端设备在未通过消息管理平台进行固件升级时,例如开发时,可以默认属性信息和匹配项,以便后续进行更新。
在一种可能的实现方式中,终端设备可以向消息管理平台发送登录指令,登录该消息管理平台后,在该消息管理平台订阅有关该终端设备的属性信息的主题信息,终端设备可以根据属性信息对应的匹配项在消息管理平台订阅相关的主题信息,一个属性信息可以对应一个匹配项,如终端设备的属性信息为终端设备的工作地点,匹配项也为终端设备的工作地点。进而,终端设备可以按照服务器对匹配项的组合(拼接)方式,订阅消息管理平台的主题信息。示例性的,终端设备的三个属性信息可以是“上海、2022年3月、V1.0”,则终端设备可以订阅的主题信息是“2022年3月/上海/V1.0”。
在一种可能的实现方式中,终端设备可以获取属性信息和属性配置规则,该属性配置规则中可以包括通配符和该通配符对应的属性信息,进而终端设备可以将属性信息和通配符对应的属性信息确定为终端设备的属性信息。其中,通配符是一种特殊语句,用于模糊搜索文件,可以是特定的字符,例如“*”、“+”等,可以特定的字符来代替一个或多个真正的字符。属性配置规则一方面包括终端设备无法获取某一个或多个属性信息的情况下,可以用该通配符代替,属性配置规则另一方面包括终端设备可以忽略某些匹配项的情况下,可以用该通配符代替该属性信息。而MQTT的通配符特性保证终端设备的属性信息被通配符(如“*”、“+”)替换的匹配项可以匹配成功。
示例性的,在本申请实施例中,以通配符为“+”进行讲解,通配符可以是其他字符,本申请对此不做限定,假设终端设备为2022年3月份生产的目前工作在上海的版本号为V1.0。则终端设备的属性信息包括:上海、2022年3月、V1.0。则终端设备可以在消息管理平台中订阅的主题是“2022年3月/上海/V1.0”。当终端设备无法获取终端设备的工作地点的情况下,终端可以在消息管理平台中订阅的主题是“2022年3月/+/V1.0”,当属性配置规则中包括终端设备可以忽略工作地点的判断时,终端设备可以订阅的主题是“2022年3月/+/V1.0”。由此可见,终端设备使用了MQTT的通配符,使得终端设备升级固件的判断更加多样化。
302、终端设备向消息管理平台发送第二登录指令,上述第二登录指令用于请求建立与上述消息管理平台的连接。
在本申请实施例中,第二登录指令可以为终端设备在确定属性信息后向消息管理平台发送的登录指令,该第二登录指令用于终端设备与消息管理平台建立连接,即第二登录指令是终端设备发送至提供消息管理平台的MQTT服务器,第二登录指令用于终端设备与提供消息管理平台的MQTT服务器建立连接。终端设备登录消息管理平台可以判断当前是否有新的固件升级包可以接收并进行更新。
在一种可能的实现方式中,终端设备可以确定第二登录指令对应的第一登录时间,在当前时间到达该第一登录时间的情况下,向消息管理平台发送第二登录指令。即终端设备可以确定可登录消息管理平台的“下次可登录时间”,该“下次可登录时间”可以为终端设备上一次完成固件升级后确定的,为终端设备登录该消息管理平台的时间,即发送第二登录指令的时间。例如终端设备可以确定第一登录时间为上一次完成固件升级的时间+预设间隔时长+随机间隔时长,终端设备也可以确定第一登录时间为终端设备上一次向消息管理平台发送退出指令的时间+预设间隔时长+随机间隔时长,还可以是其他方式确定的,本申请对此不做限定。需要说明的是,终端设备可以在完成固件升级后,更新并存储“下次可登录时间”,以便下次进行登录。
由此可见,多个终端设备可以不必一直登录消息管理平台,简化终端设备的功能,也减小了MQTT服务器的压力。其中,若终端设备确定当前时间未到达第一登录时间(即“下次可登录时间”),则可以周期性地确定终端设备是否到达该第一登录时间,反之,则终端设备确定当前时间到达第一登录时间的情况下,向消息管理平台发送第二登录指令,登录该消息管理平台。
其中,第一登录时间是终端设备在上一次完成固件升级后,根据预设间隔时长和随机间隔时长确定的,预设间隔时长可以是终端设备存储的间隔时长,随机间隔时长可以是终端设备根据随机函数确定的,本申请对此不做限定。可选地,第一登录时间还可以是终端设备在上一次完成固件升级后,从消息管理平台获取的预设间隔时长和随机间隔时长。需要说明的是,由于多个不同的终端设备均会登录消息管理平台,因此,为了减小消息管理平台的压力,即减小MQTT服务器的压力,可以设定预设间隔时长为最小间隔时长,例如可以是消息管理平台允许的两次连接消息管理平台的最小的时间差值。同样的,不同终端设备生成的随机间隔时长不同,因此,不同终端设备可以在不同的时刻向消息管理平台发送登录指令,即保证终端设备分散的与MQTT进行连接,其中,随机间隔时长的随机值和随机范围可由终端设备定义,本申请对此不做限定。
由此可见,在终端设备向消息管理平台发送登录指令的时间(如上述第一登录时间)中增加了登录时间间隔,如预设间隔时长和随机间隔时长,由于终端设备的第一登录时间的确定包括随机间隔时长,使得终端设备能够在分散的时间登录消息管理平台,即使得终端设备能够在分散的时间向MQTT服务器发起登录指令(建立连接),从而减小了MQTT服务器的压力。
303、终端设备接收来自上述消息管理平台的主题信息和上述主题信息对应的固件升级包。
在本申请实施例中,终端设备可以确定自身的属性信息,订阅根据属性信息确定主题信息,如终端设备的属性信息包括“上海、2022年3月、V1.0”,则终端设备可以订阅的主题信息是“2022年3月/上海/V1.0”。终端设备也可以根据自身的属性信息以及通配符订阅消息管理平台的主题信息。进而,由于服务器已经向消息管理平台发布了待升级终端设备的主题信息以及主题信息对应的固件升级包,该固件升级包可以是主题信息对应的路径信息,则终端设备在向消息管理平台发布第二登录指令之后,可以接收来自消息管理平台的主题信息和主题信息对应的固件升级包。
其中,接收来自消息管理平台的主题信息对应的固件升级包可以是接收来自消息管理平台的该主题信息对应的路径信息,该主题信息对应的路径信息与该主题信息对应的固件升级包具有关联关系,进而终端设备可以根据路径信息获取到主题信息对应的固件升级包。可选地,该主题信息对应的路径信息还可以用于包括固件的新旧版本号,例如旧版本号为V1.0,新版本号为V2.0,也即,则路径信息可以包括“V1.0+V2.0”,路径信息还可以包括其他信息,本申请对此不做限定。
在一种可能的实现方式中,终端设备在消息管理平台中订阅了相应的主题后,由于服务器已在该消息管理平台中发布了待升级终端的主题信息和主题信息对应的路径信息(固件升级包),则终端设备可以在登录消息管理平台中等待一段时间(如5秒)中,确定是否接收来自消息管理平台的主题信息和主题信息对应的固件升级包(主题信息对应的路径信息),若终端设备接收到,则终端设备接收固件升级包,例如从主题信息对应的路径信息获取固件升级包,并保存该固件升级包。反之,若终端设备未接收到,则终端设备可以确定当前无需进行固件升级,则可以向消息管理平台发送退出登录指令,断开与消息管理平台的连接。进一步地,终端设备可以更新和存储“下次可登录时间”,即更新和存储下次向消息管理平台发送登录指令的时间,例如可以是终端设备根据当前时间、预设间隔时长以及随机间隔时长确定的,具体的,下次向消息管理平台发送登录指令的时间可以是当前时间、预设间隔时长以及随机间隔时长的和。
在一种可能的实现方式中,终端设备在将固件升级包存储在本地之后,可以向消息管理平台发送第二退出指令,第二退出指令指示终端设备断开与消息管理平台的连接。即终端设备可以向服务器发送第二退出指令,该第二退出指令用于终端设备断开与MQTT服务器的连接,即终端在登录消息管理平台(与MQTT服务器连接)后,处理完任务后会立即断开与MQTT服务器的连接,减小了MQTT服务器的压力。可以理解的是,在属性信息与主题信息匹配的情况下,终端设备获取到固件升级包,并可以根据固件升级包进行固件升级。
304、在上述属性信息与上述主题信息匹配的情况下,终端设备根据上述固件升级包进行固件升级。
在一种可能的实现方式中,终端设备将获取到的固件升级包(FOTA包)保存在终端设备本地,并对该固件升级包进行校验,具体的,对固件升级包校验可以是基于固件升级包的完整性进行校验,也可以是对传输检错进行校验,例如可以是循环冗余校验码(CyclicRedundancy Check,CRC)校验,也可以是奇偶校验码校验,还可以是其他校验方式进行校验本申请对此不做限定。
可选地,终端设备可以在校验之前向消息管理平台发送第二退出指令,也可以在校验成功后向消息管理平台发送第二退出指令,本申请对此不做限定。可选地,终端设备在与消息管理平台连接的过程中,在执行上述操作,例如获取固件升级包、校验固件升级包等,若出现任何错误立即断开与消息管理平台的连接,并重新确定“下次可登录时间”。
进一步地,终端设备在校验固件升级包无误的情况下,可以更新升级标志,例如将升级标志置为1,该升级标志可以用于标识终端设备可进行固件升级,即终端设备在检验该固件升级包无误之后,并非立刻进行升级,而是在终端设备重新启动之后,终端设备读取升级标志为1,则终端设备可以确定满足升级条件的情况下,才根据固件升级包进行升级。其中,升级条件可以包括终端设备的电池电量大于预设电量阈值,也可以是终端设备接入稳定的移动互联网等等,还可以是其他升级条件,本申请对此不做限定。
进一步地,在完成固件升级之后,终端设备可以将升级标志恢复默认值,或者终端设备也可以将升级标志删除,以便下一次进行设置。其中,若在终端设备重新启动之后,终端设备读取升级标志为1,若终端设备确定不满足升级条件的情况下,可以进入正常开机流程,启动该终端设备。并更新“下次可登录时间”,以便终端设备下一次向消息管理平台发送登录指令。
在一种可能的实现方式中,终端设备可以在完成固件升级之后,且设定的定时器超时的情况下,向消息管理平台发送第三登录指令,其中,设定的定时器在发送第二退出指令时启动计时,第三登录指令用于请求再次建立与上述消息管理平台的连接,即定时器可以用于确定“下次可登录时间”,设定的定时器的计时时间可以是默认间隔时长,例如可登录时间默认值为0,这里的0相当于在完成固件升级之后立刻登录消息管理平台(例如上述再次登录消息管理平台)。
进一步地,终端设备可以进一步确定“下次可登录时间”,如根据第三登录指令对应的第二登录时间、上述预设间隔时长和上述随机间隔时长来确定,例如,将第三登录指令对应的第二登录时间、预设间隔时长和随机间隔时长之和确定为第四登录指令对应的第三登录时间,第四登录指令为在上述第三登录指令之后下一次向上述消息管理平台发送的登录指令。可选地,终端设备根据第三登录指令之后退出登录该消息管理平台的时间、上述预设间隔时长和上述随机间隔时长来确定下一次向上述消息管理平台发送的登录指令的时间,例如终端设备可以将第三登录指令之后退出登录该消息管理平台的时间、预设间隔时长和随机间隔时长之和确定为第四登录指令对应的第三登录时间。由此,终端设备可以自行确定是否进行固件升级,并且,终端设备仅需上线后接收并校验确定是否升级,进而更新下一次可登录的时间,因此终端设备的流程相对简单,易于开发。
在本申请实施例中,服务器通过确定待升级设备的属性信息,并根据属性信息确定主题信息,进而向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包,在发送完成后,服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器断开与消息管理平台之间的连接。由此可见,本申请提出的方法,服务器在保证终端设备可以升级的情况下,服务器无需一直在线,并且服务器无需专门开发、维护和实时监控,功能实现较为简单,固件升级的系统实现也较为简单,易于开发,从而适用性高,能够满足较多场景的使用需求。
请一并参阅图4,图4是本申请实施例提供的一种固件升级的方法的流程框图,该固件升级方法可以由服务器和终端设备交互实现,该服务器例如可以是图1所示的固件升级系统中的升级管理服务器300,该终端设备可以是图1所示的固件升级系统中的终端设备100中的部分或全部终端设备。
具体的,服务器(如升级管理服务器)可以确定待升级终端设备的属性信息,并根据属性信息确定主题信息,进而服务器可以登录消息管理平台,并在消息管理平台发布主题信息,以及主题信息对应的固件升级包,该固件升级包可以直接是应用程序的安装包,也可以是主题信息对应的路径信息,基于主题信息对应的路径信息,终端设备可以获取该固件升级包。服务器例如可以向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包(主题信息对应的路径信息)。
需要说明的是,服务器可以发布多个不同的主题信息,也可以发布多个不同的主题信息分别对应的固件升级包(主题信息对应的路径信息),其中,不同的主题信息分别对应的固件升级包可以为同一个,同样的,不同的主题信息分别对应的路径信息可以为同一个。
进一步地,服务器在发布完所有主题信息和主题信息对应的固件升级包(主题信息对应的路径信息)后,可以向消息管理平台发送第一退出指令,该第一退出指令用于断开服务器与消息管理平台的连接,从而服务器可以无需长时间与消息管理平台连接,从而不消耗服务器的流量,也不对服务器的容量造成影响。
在服务器发布完成之后,终端设备可以确定终端设备的属性信息,即确定终端设备自身的属性信息,该属性信息可以包括通配符,并在到达登录时间的情况下,登录消息管理平台,例如终端设备可以向消息管理平台发送第二登录指令,建立与消息管理平台的连接。进而,终端设备可以接收来自消息管理平台的主题信息和主题信息对应的固件升级包,其中,终端设备可以订阅与自身属性信息匹配的主题信息,进而可以接收该主题信息对应的固件升级包,其中,该固件升级包可以是该主题信息对应的路径信息,基于路径信息终端设备可以获取固件升级包。在终端设备获取到固件升级包的情况下,可以退出登录消息管理平台,即终端设备可以向消息管理平台发送第二退出指令,该第二退出指令指示终端设备断开与消息管理平台的连接。
进一步地,终端设备在断开与消息管理平台的连接之后,可以确定下次登录消息管理平台的登录时间。并且,终端设备可以对固件升级包进行校验,在校验通过后,终端设备可以根据固件升级包进行固件升级。即在属性信息与主题信息匹配的情况下,终端设备可以重新启动,并在重启启动后判断终端设备是否满足升级条件,在满足的情况下,安装该固件升级包以进行升级。进而,终端设备可以确定并更新下次登录消息管理平台的登录时间。反之,在不满足升级条件的情况下,正常启动终端设备。
在本申请实施例中,服务器通过确定待升级设备的属性信息,并根据属性信息确定主题信息,进而向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包,在发送完成后,服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器断开与消息管理平台之间的连接。由此可见,本申请提出的方法,服务器在保证终端设备可以升级的情况下,服务器无需一直在线,并且服务器无需专门开发、维护和实时监控,功能实现较为简单,固件升级的系统实现也较为简单,易于开发,从而适用性高,能够满足较多场景的使用需求。
请参阅图5,图5是本申请实施例提供的一种固件升级装置的结构示意图。如图5所示,该固件升级装置500包括确定单元501以及发送单元502。固件升级装置500可以执行前述方法实施例中终端设备的相关步骤。其中:
确定单元501,用于确定待升级终端设备的属性信息,并根据上述属性信息确定主题信息;
发送单元502,用于向消息管理平台发送第一登录指令,上述第一登录指令包括上述主题信息和上述主题信息对应的固件升级包,上述主题信息和上述主题信息对应的固件升级包用于上述待升级终端设备进行固件升级;
上述发送单元502,还用于向上述消息管理平台发送第一退出指令,上述第一退出指令指示断开与上述消息管理平台的连接。
在一种可能的实现方式中,上述第一登录指令还包括上述主题信息对应的路径信息,上述主题信息对应的路径信息与上述主题信息对应的固件升级包具有关联关系。
具体的,在这种情况中,确定单元501以及发送单元502所执行的操作可以参照上述图1~图4对应的实施例中有关服务器的介绍。
根据本申请的一个实施例,图2和图4所示的方法所涉及的服务器的各个步骤均可以是由图5所示的固件升级装置中的各个单元执行的。例如,图2所示的步骤201由图5中所示的确定单元501来执行,步骤202由图5中所示的发送单元502来执行,又如,图2所示的步骤203由图5中所示的发送单元502来执行。
根据本申请的另一个实施例,图5所示的固件升级装置中的各个单元可以分别或者全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以是由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其他实施例中,基于固件升级装置也可以包括其他单元,在实际应用中,这些功能也可以由其他单元协助实现,并且可以由多个单元协作实现。
在本申请实施例中,服务器通过确定待升级设备的属性信息,并根据属性信息确定主题信息,进而向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包,在发送完成后,服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器断开与消息管理平台之间的连接。由此可见,本申请提出的方法,服务器在保证终端设备可以升级的情况下,服务器无需一直在线,并且服务器无需专门开发、维护和实时监控,功能实现较为简单,固件升级的系统实现也较为简单,易于开发,从而适用性高,能够满足较多场景的使用需求。
请参阅图6,图6是本申请实施例提供的一种固件升级装置的另一结构示意图。如图6所示,该固件升级装置600包括确定单元601、发送单元602、接收单元603以及升级单元604。固件升级装置600可以执行前述方法实施例中终端设备的相关步骤。其中:
确定单元601,用于确定终端设备的属性信息;
发送单元602,用于向消息管理平台发送第二登录指令,上述第二登录指令用于请求建立与上述消息管理平台的连接;
接收单元603,用于接收来自上述消息管理平台的主题信息和上述主题信息对应的固件升级包;
升级单元604,用于在上述属性信息与上述主题信息匹配的情况下,根据上述固件升级包进行固件升级。
在一种可能的实现方式中,上述确定单元601,还用于确定上述第二登录指令对应的第一登录时间;
上述发送单元602,还用于在当前时间到达上述第一登录时间的情况下,向上述消息管理平台发送上述第二登录指令;
其中,上述第一登录时间是上述终端设备在上一次完成固件升级的情况下,根据预设间隔时长和随机间隔时长确定的。
在一种可能的实现方式中,上述确定单元601用于确定终端设备的属性信息,具体用于:
获取终端设备的属性信息以及属性配置规则,上述属性配置规则包括通配符和上述通配符对应的属性信息;
将上述属性信息和上述通配符对应的属性信息确定为上述终端设备的属性信息。
在一种可能的实现方式中,上述升级单元604用于根据上述固件升级包进行固件升级,具体用于:
将上述固件升级包存储在上述终端设备;
在确定在重新启动之后的上述终端设备满足升级条件的情况下,根据上述固件升级包进行固件升级。
在一种可能的实现方式中,上述终端设备还接收来自上述消息管理平台的上述主题信息对应的路径信息,上述主题信息对应的路径信息与上述主题信息对应的固件升级包具有关联关系。
在一种可能的实现方式中,上述发送单元602,还用于向上述消息管理平台发送第二退出指令,上述第二退出指令指示断开与上述消息管理平台的连接。
在一种可能的实现方式中,上述发送单元602,还用于在完成固件升级,且设定的定时器超时的情况下,向上述消息管理平台发送第三登录指令,上述设定的定时器在发送上述第二退出指令时启动计时,上述第三登录指令用于请求再次建立与上述消息管理平台的连接;
获取单元605,用于获取上述第三登录指令对应的第二登录时间、上述预设间隔时长和上述随机间隔时长;
上述确定单元601,还用于根据上述第二登录时间、上述预设间隔时长和上述随机间隔时长确定向上述消息管理平台发送第四登录指令对应的第三登录时间,上述第四登录指令为在上述第三登录指令之后下一次向上述消息管理平台发送的登录指令。
根据本申请的一个实施例,图3所示的方法所涉及的各个步骤均可以是由图6所示的固件升级装置中的各个单元执行的。例如,图3所示的步骤301由图6中所示的确定单元601来执行,步骤302由图6中所示的发送单元602来执行,又如,图3所示的步骤303由图6中所示的接收单元603来执行,图3所示的步骤304由图6中所示的升级单元604来执行。
根据本申请的另一个实施例,图6所示的固件升级装置中的各个单元可以分别或者全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以是由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其他实施例中,基于固件升级装置也可以包括其他单元,在实际应用中,这些功能也可以由其他单元协助实现,并且可以由多个单元协作实现。
在本申请实施例中,服务器通过确定待升级设备的属性信息,并根据属性信息确定主题信息,进而向消息管理平台发送第一登录指令,该第一登录指令包括主题信息和主题信息对应的固件升级包,在发送完成后,服务器可以向消息管理平台发送第一退出指令,该第一退出指令用于指示服务器断开与消息管理平台之间的连接。由此可见,本申请提出的方法,服务器在保证终端设备可以升级的情况下,服务器无需一直在线,并且服务器无需专门开发、维护和实时监控,功能实现较为简单,固件升级的系统实现也较为简单,易于开发,从而适用性高,能够满足较多场景的使用需求。
请参阅图7,图7为本申请实施例提供的一种电子设备(服务器)的结构示意图,上述电子设备至少包括处理器701、通信接口702和存储器703。其中,处理器701、通信接口702和存储器703可通过总线或其他方式连接,本申请实施例以通过总线连接为例。其中,处理器701(或称中央处理器(Central Processing Unit,CPU))是电子设备的计算核心以及控制核心,其可以解析终端设备内的各类指令以及处理终端设备的各类数据,例如:CPU可以用于解析用户向终端设备所发送的开关机指令,并控制终端设备进行开关机操作;再如:CPU可以在终端设备内部结构之间传输各类交互数据,等等。通信接口702可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器701的控制可以用于收发数据;通信接口702还可以用于终端设备内部数据的传输以及交互。存储器703(Memory)是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器703既可以包括终端设备的内置存储器,当然也可以包括终端设备所支持的扩展存储器。存储器703提供存储空间,该存储空间存储了终端设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在一个实施例中,该电子设备可以为服务器,该电子设备可以包括的处理器701通过运行存储器703中的可执行程序代码,执行如下操作:
确定待升级终端设备的属性信息,并根据上述属性信息确定主题信息;
向消息管理平台发送第一登录指令,上述第一登录指令包括上述主题信息和上述主题信息对应的固件升级包,上述主题信息和上述主题信息对应的固件升级包用于上述待升级终端设备进行固件升级;
向上述消息管理平台发送第一退出指令,上述第一退出指令指示断开与上述消息管理平台的连接。
在一种可能的实现方式中,上述第一登录指令还包括上述主题信息对应的路径信息,上述主题信息对应的路径信息与上述主题信息对应的固件升级包具有关联关系。
基于同一发明构思,本申请实施例中提供的电子设备(服务器)解决问题的原理与有益效果与本申请方法实施例中固件升级方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参阅图8,图8为本申请实施例提供的一种电子设备(终端设备)的结构示意图,上述电子设备至少包括处理器801、通信接口802和存储器803。其中,处理器801、通信接口802和存储器803可通过总线或其他方式连接,本申请实施例以通过总线连接为例。其中,处理器801(或称中央处理器(Central Processing Unit,CPU))是电子设备的计算核心以及控制核心,其可以解析终端设备内的各类指令以及处理终端设备的各类数据,例如:CPU可以用于解析用户向终端设备所发送的开关机指令,并控制终端设备进行开关机操作;再如:CPU可以在终端设备内部结构之间传输各类交互数据,等等。通信接口802可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器801的控制可以用于收发数据;通信接口802还可以用于终端设备内部数据的传输以及交互。存储器803(Memory)是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器803既可以包括终端设备的内置存储器,当然也可以包括终端设备所支持的扩展存储器。存储器803提供存储空间,该存储空间存储了终端设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在一个实施例中,该电子设备可以为终端设备,该电子设备可以包括的处理器801通过运行存储器803中的可执行程序代码,执行如下操作:
在一种可能的实现方式中,确定终端设备的属性信息;
向消息管理平台发送第二登录指令,上述第二登录指令用于请求建立与上述消息管理平台的连接;
接收来自上述消息管理平台的主题信息和上述主题信息对应的固件升级包;
在上述属性信息与上述主题信息匹配的情况下,根据上述固件升级包进行固件升级。
在一种可能的实现方式中,上述处理器801通过运行存储器803中的可执行程序代码,还用于执行如下操作:
确定上述第二登录指令对应的第一登录时间;
在当前时间到达上述第一登录时间的情况下,向上述消息管理平台发送上述第二登录指令;
其中,上述第一登录时间是上述终端设备在上一次完成固件升级的情况下,根据预设间隔时长和随机间隔时长确定的。
在一种可能的实现方式中,上述处理器801通过运行存储器803中的可执行程序代码用于确定终端设备的属性信息,具体用于执行如下操作:
获取终端设备的属性信息以及属性配置规则,上述属性配置规则包括通配符和上述通配符对应的属性信息;
将上述属性信息和上述通配符对应的属性信息确定为上述终端设备的属性信息。
在一种可能的实现方式中,上述处理器801通过运行存储器803中的可执行程序代码用于根据上述固件升级包进行固件升级,具体用于执行如下操作:
将上述固件升级包存储在上述终端设备;
在确定在重新启动之后的上述终端设备满足升级条件的情况下,根据上述固件升级包进行固件升级。
在一种可能的实现方式中,上述终端设备还接收来自上述消息管理平台的上述主题信息对应的路径信息,上述主题信息对应的路径信息与上述主题信息对应的固件升级包具有关联关系。
在一种可能的实现方式中,上述处理器801通过运行存储器803中的可执行程序代码,还用于执行如下操作:
向上述消息管理平台发送第二退出指令,上述第二退出指令指示断开与上述消息管理平台的连接。
在一种可能的实现方式中,上述处理器801通过运行存储器803中的可执行程序代码,还用于执行如下操作:
在完成固件升级,且设定的定时器超时的情况下,向上述消息管理平台发送第三登录指令,上述设定的定时器在发送上述第二退出指令时启动计时,上述第三登录指令用于请求再次建立与上述消息管理平台的连接;
获取上述第三登录指令对应的第二登录时间、上述预设间隔时长和上述随机间隔时长;
根据上述第二登录时间、上述预设间隔时长和上述随机间隔时长确定向上述消息管理平台发送第四登录指令对应的第三登录时间,上述第四登录指令为在上述第三登录指令之后下一次向上述消息管理平台发送的登录指令。
基于同一发明构思,本申请实施例中提供的电子设备(终端设备)解决问题的原理与有益效果与本申请方法实施例中固件升级方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,上述计算机可读存储介质中存储有一条或多条程序指令,上述一条或多条程序指令适于由处理器加载并执行上述方法实施例上述的固件升级方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例上述的固件升级方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述固件升级方法。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明的权利要求书和说明书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (13)
1.一种固件升级的方法,其特征在于,包括:
确定待升级终端设备的属性信息,并根据所述属性信息确定主题信息;
向消息管理平台发送第一登录指令,所述第一登录指令包括所述主题信息和所述主题信息对应的固件升级包,所述主题信息和所述主题信息对应的固件升级包用于所述待升级终端设备进行固件升级;
向所述消息管理平台发送第一退出指令,所述第一退出指令指示断开与所述消息管理平台的连接。
2.根据权利要求1所述的方法,其特征在于,所述第一登录指令还包括所述主题信息对应的路径信息,所述主题信息对应的路径信息与所述主题信息对应的固件升级包具有关联关系。
3.一种固件升级的方法,其特征在于,包括:
确定终端设备的属性信息;
向消息管理平台发送第二登录指令,所述第二登录指令用于请求建立与所述消息管理平台的连接;
接收来自所述消息管理平台的主题信息和所述主题信息对应的固件升级包;
在所述属性信息与所述主题信息匹配的情况下,根据所述固件升级包进行固件升级。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定所述第二登录指令对应的第一登录时间;
在当前时间到达所述第一登录时间的情况下,向所述消息管理平台发送所述第二登录指令;
其中,所述第一登录时间是所述终端设备在上一次完成固件升级的情况下,根据预设间隔时长和随机间隔时长确定的。
5.根据权利要求3或4所述的方法,其特征在于,所述确定终端设备的属性信息,包括:
获取终端设备的属性信息以及属性配置规则,所述属性配置规则包括通配符和所述通配符对应的属性信息;
将所述属性信息和所述通配符对应的属性信息确定为所述终端设备的属性信息。
6.根据权利要求4所述的方法,其特征在于,所述根据所述固件升级包进行固件升级,包括:
将所述固件升级包存储在所述终端设备;
在确定在重新启动之后的所述终端设备满足升级条件的情况下,根据所述固件升级包进行固件升级。
7.根据权利要求3或4所述的方法,其特征在于,所述终端设备还接收来自所述消息管理平台的所述主题信息对应的路径信息,所述主题信息对应的路径信息与所述主题信息对应的固件升级包具有关联关系。
8.根据权利要求6所述的方法,其特征在于,所述将所述固件升级包存储在所述终端设备之后,所述方法还包括:
向所述消息管理平台发送第二退出指令,所述第二退出指令指示断开与所述消息管理平台的连接。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在完成固件升级,且设定的定时器超时的情况下,向所述消息管理平台发送第三登录指令,所述设定的定时器在发送所述第二退出指令时启动计时,所述第三登录指令用于请求再次建立与所述消息管理平台的连接;
获取所述第三登录指令对应的第二登录时间、所述预设间隔时长和所述随机间隔时长;
根据所述第二登录时间、所述预设间隔时长和所述随机间隔时长确定向所述消息管理平台发送第四登录指令对应的第三登录时间,所述第四登录指令为在所述第三登录指令之后下一次向所述消息管理平台发送的登录指令。
10.一种固件升级装置,其特征在于,包括:
确定单元,用于确定待升级终端设备的属性信息,并根据所述属性信息确定主题信息;
发送单元,用于向消息管理平台发送第一登录指令,所述第一登录指令包括所述主题信息和所述主题信息对应的固件升级包,所述主题信息和所述主题信息对应的固件升级包用于所述待升级终端设备进行固件升级;
所述发送单元,还用于向所述消息管理平台发送第一退出指令,所述第一退出指令指示断开与所述消息管理平台的连接。
11.一种固件升级装置,其特征在于,包括:
确定单元,用于确定终端设备的属性信息;
发送单元,用于向消息管理平台发送第二登录指令,所述第二登录指令用于请求建立与所述消息管理平台的连接;
接收单元,用于接收来自所述消息管理平台的主题信息和所述主题信息对应的固件升级包;
升级单元,用于在所述属性信息与所述主题信息匹配的情况下,根据所述固件升级包进行固件升级。
12.一种电子设备,其特征在于,包括处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行如权利要求1-2或者3-9中任一项的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,执行如权利要求1-2或者3-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211703372.1A CN116088901A (zh) | 2022-12-29 | 2022-12-29 | 一种固件升级的方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211703372.1A CN116088901A (zh) | 2022-12-29 | 2022-12-29 | 一种固件升级的方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116088901A true CN116088901A (zh) | 2023-05-09 |
Family
ID=86207562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211703372.1A Pending CN116088901A (zh) | 2022-12-29 | 2022-12-29 | 一种固件升级的方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116088901A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117453257A (zh) * | 2023-12-25 | 2024-01-26 | 深圳万物安全科技有限公司 | 基于分级管理的升级方法、终端设备及可读存储介质 |
CN117614963A (zh) * | 2023-10-20 | 2024-02-27 | 云南兆讯科技有限责任公司 | 一种分布式mqtt消息服务器 |
-
2022
- 2022-12-29 CN CN202211703372.1A patent/CN116088901A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117614963A (zh) * | 2023-10-20 | 2024-02-27 | 云南兆讯科技有限责任公司 | 一种分布式mqtt消息服务器 |
CN117453257A (zh) * | 2023-12-25 | 2024-01-26 | 深圳万物安全科技有限公司 | 基于分级管理的升级方法、终端设备及可读存储介质 |
CN117453257B (zh) * | 2023-12-25 | 2024-03-26 | 深圳万物安全科技有限公司 | 基于分级管理的升级方法、终端设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116088901A (zh) | 一种固件升级的方法、装置、电子设备及计算机存储介质 | |
US7644405B2 (en) | System with required enhancements to SyncML DM environment to support firmware updates | |
CN105577777B (zh) | 一种消息处理方法、装置及系统 | |
US20140351807A1 (en) | Method and communication device for updating web application | |
CN113630372A (zh) | 一种边缘计算的云边协同系统 | |
CN112988485B (zh) | 电力物联网设备模拟测试方法及装置 | |
WO2011076146A1 (zh) | 下载应用数据的方法、数字电视接收终端及系统 | |
US8732694B2 (en) | Method and system for performing services in server and client of client/server architecture | |
CN114124917B (zh) | 一种地锁固件远程升级方法、设备、系统和介质 | |
EP3313041A1 (en) | Application download method and device | |
CN112954717A (zh) | 基于h5页面的家电配网方法和装置 | |
CN112087475B (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN113014499B (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
CN108600378B (zh) | 一种文件下载方法、装置、终端和存储介质 | |
CN109905430A (zh) | 一种软件升级方法与系统 | |
KR100524588B1 (ko) | 무선인터넷에서 다운로드 중단된 데이터를 이어받는 방법 | |
CN112532664A (zh) | 数据升级方法及装置 | |
CN112291323B (zh) | 一种基于mqtt通讯协议的单片机固件升级通讯方法 | |
CN113326056B (zh) | 数据处理方法、装置、存储介质及处理器 | |
CN115811778A (zh) | 一种业务处理方法、装置、存储介质及设备 | |
EP3714588B1 (fr) | Procede de gestion a distance d'un dispositif connecte a une passerelle residentielle | |
CN112083945A (zh) | Npm安装包的更新提示方法、装置、电子设备及存储介质 | |
CN114385214B (zh) | 网站更新方法、装置、设备及存储介质 | |
CN109271192A (zh) | 一种智能钢琴的远程固件升级方法 | |
US20240152504A1 (en) | Data interaction method, apparatus, and electronic device |
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 |