发明内容
本发明实施例提供了一种升级固件的方法和装置,能够使设备根据固件服务器发送的升级文件升级固件,简化了用户操作并提高了固件升级的成功率和效率。
本发明实施例提出了一种固件升级的方法,包括:
设备将固件的当前版本信息发送给固件服务器;
所述设备接收来自所述固件服务器的针对所述固件的升级文件,所述升级文件是所述固件服务器根据所述固件的当前版本信息确定的;
所述设备判断所述升级文件是否接收成功,若是,则根据所述升级文件对所述固件进行升级。
可选的,所述设备将固件的当前版本信息发送给固件服务器包括:
所述设备按照预设频率将所述固件的当前版本信息发送给所述固件服务器;或者,
所述设备在接收到来自所述固件服务器的查询消息时,将所述查询消息查询的固件的当前版本信息发送给所述固件服务器;或者,
所述设备将升级后的固件的当前版本信息发送给所述固件服务器。
可选的,所述方法还包括:
所述设备接收来自所述固件服务器的针对所述固件的升级信息,所述升级信息包括所述升级文件的大小或所述升级文件的MD5值;
所述设备判断所述升级文件是否接收成功包括:
若所述升级信息包括升级文件的大小,所述设备判断接收到的升级文件的大小和所述升级信息中的升级文件的大小是否相同,若相同,确定所述升级文件接收成功;或者,
若所述升级信息包括升级文件的MD5值,所述设备判断所述接收到的升级文件的MD5值和所述升级信息中的MD5值是否相同,若相同,确定所述升级文件接收成功。
可选的,所述方法还包括:
当判断出所述升级文件接收失败时,所述设备向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件。
可选的,所述设备判断出所述升级文件接收成功后,所述方法还包括:
所述设备提示用户是否对所述固件进行升级;
所述设备根据升级文件对固件进行升级包括:
所述设备检测到所述用户确认升级操作后,根据所述升级文件对所述固件进行升级。
可选的,所述方法还包括:
所述设备判断所述固件是否升级成功;
若为否,则所述设备向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件;
若所述设备确定升级失败的次数大于或等于预设阈值,提示用户所述固件升级失败。
本发明实施例提出了一种固件升级的方法,包括:
固件服务器接收到设备发送的固件的当前版本信息;
所述固件服务器根据所述固件的当前版本信息判断所述固件是否需要升级;
若为是,则所述固件服务器向所述设备发送针对所述固件的升级文件,以使所述设备根据所述升级文件对所述固件进行升级。
可选的,所述固件服务器根据所述固件的当前版本信息判断所述固件是否需要升级包括:
所述固件服务器根据所述固件的当前版本信息确定所述固件的当前版本;
所述固件服务器判断所述固件的当前版本是否为最新版本;
若为否,则所述固件服务器确定所述固件需要升级。
可选的,所述方法还包括:
所述固件服务器向所述设备发送所述固件的升级信息,所述升级信息用于由所述设备确定所述固件是否接收成功。
可选的,所述固件服务器向所述设备发送针对所述固件的升级文件包括:
若所述固件服务器中存在针对所述固件的多个升级文件时,所述固件服务器判断所述固件是否支持跨版本升级;
若为是,则所述固件服务器向所述设备发送针对所述固件的最新版本的升级文件;
若为否,则所述固件服务器向所述设备发送针对所述固件的下一个版本的升级文件。
本发明实施例提出了一种设备,包括:
第一发送模块,用于将固件的当前版本信息发送给固件服务器;
第一接收模块,用于接收来自固件服务器的针对所述固件的升级文件,所述升级文件是所述固件服务器根据所述固件的当前版本信息确定的;
升级模块,用于判断所述升级文件是否接收成功,若是,则根据所述升级文件对所述固件进行升级。
可选的,所述升级模块还用于:
判断所述固件是否升级成功,若为否,则向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件;若确定升级失败的次数大于或等于预设阈值,提示用户所述固件升级失败。
可选的,所述升级模块还用于:
当判断出所述升级文件接收失败时,向所述第一发送模块发送请求消息;
所述第一发送模块还用于:
接收到请求消息,向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件。
可选的,所述升级模块具体用于:
判断所述升级文件是否接收成功,若是,则提示用户是否对所述固件进行升级;检测到所述用户确认升级操作后,根据所述升级文件对所述固件进行升级。
本发明实施例提出了一种固件服务器,包括:
第二接收模块,用于接收到设备发送的固件的当前版本信息;
处理模块,用于根据所述固件的当前版本信息判断所述固件是否需要升级,若为是,则向第二发送模块发送通知消息;
第二发送模块,用于接收到通知消息,向设备发送针对所述固件的升级文件,以使所述设备根据所述升级文件对所述固件进行升级。
可选的,所述处理模块具体用于采用以下方式实现根据固件的当前版本信息判断固件是否需要升级:
根据所述固件的当前版本信息确定所述固件的当前版本;判断所述固件的当前版本是否为最新版本;若为否,则确定所述固件需要升级。
可选的,所述第二发送模块还用于:
向所述设备发送所述固件的升级信息,所述升级信息用于由所述设备确定所述固件是否接收成功。
可选的,所述第二发送模块具体用于采用以下方式实现所述向所述设备发送针对所述固件的升级文件:
若所述固件服务器中存在针对所述固件的多个升级文件时,判断所述固件是否支持跨版本升级;
若为是,则向所述设备发送针对所述固件的最新版本的升级文件;
若为否,则向所述设备发送针对所述固件的下一个版本的升级文件。
本发明实施例提出了一种设备,包括第一处理器和第一计算机可读存储介质,所述第一计算机可读存储介质中存储有第一计算机程序,所述第一处理器用于调用所述第一计算机程序以执行上述任意一种升级固件的方法。
本发明实施例提出了一种固件服务器,包括第二处理器和第二计算机可读存储介质,所述第二计算机可读存储介质中存储有第二计算机程序,所述第二处理器用于调用所述第二计算机程序以执行上述任意一种升级固件的方法。
本发明实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于被处理器执行时实现上述任意一种升级固件的方法的步骤。
本申请实施例中,设备将固件的当前版本信息发送给固件服务器;该设备接收来自固件服务器的针对所述固件的升级文件,所述升级文件是所述固件服务器根据所述固件的当前版本信息确定的;该设备判断所述升级文件是否接收成功,若是,则根据所述升级文件对所述固件进行升级。通过本发明实施例的方案,设备根据固件服务器发送的升级文件进行固件升级,简化了用户操作并提高了固件升级的成功率和效率。
具体实施方式
下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
参见图1,本发明第一实施例提出了一种升级固件的方法,包括:
步骤100、设备将固件的当前版本信息发送给固件服务器。
本申请所描述的实施例中,设备可以是指无人飞行器(Unmanned AerialVehicle,UAV);或者,设备是指用于控制该无人飞行器的遥控设备。在此不予限定。
其中,固件是指配置于设备中的存储器所保存的硬件驱动程序。其中,存储器中可以保存有多个固件,不同的固件可以对应不同的硬件。
示例性地,设备可以采用以下几种方法中的任意一种将固件的当前版本信息发送给固件服务器。
第一种,设备周期性地将固件的当前版本信息发送给所述固件服务器。其中,设备可以按照预设周期向固件服务器发送固件的当前版本信息,各固件对应的预设周期可以相同或不同,在此不予限定。设备所要发送当前版本信息的固件可以是固件服务器指定的,或者,是预配置的,或者是设备设置触发发送条件,并确定满足该触发发送条件的固件,并将该固件的当前版本信息发送给固件服务器,在此不予限定。其中,设备所设置的触发发送条件可以是固件升级后的预设时间阈值,或者其他条件等,在此不予限定。
第二种,设备在接收到来自固件服务器的查询消息时,将查询消息查询的固件的当前版本信息发送给固件服务器。
第三种,设备将升级后的固件的当前版本信息发送给固件服务器。具体地,一种情况为,如果设备需要进行多次升级才能升级到最新版本,那么,在每升级成功一个版本后,还需要判断是否继续升级,即在固件升级成功后将固件的当前版本信息发送给固件服务器,固件服务器接收到固件的当前版本信息判断是否继续进行升级。
或者,设备可以执行上述至少两种方式的结合。例如,设备接收固件服务器的查询消息中,携带有固件服务器所需查询的固件,以及针对该固件的周期。设备可以根据查询消息,向固件服务器按照该周期发送查询消息所指示的固件的当前版本信息。
当然,还可以包括其他结合方式,或其他实现方式,在此不予限定。
本实施例中,设备可以将部分固件的当前版本信息发送给固件服务器,也可以将全部固件的当前版本信息发送给固件服务器。当设备将两个或两个以上固件的当前版本信息发送给固件服务器时,可以将两个或两个以上固件的当前版本信息逐个发送给固件服务器,也可以将两个或两个以上固件的当前版本信息同时发送给固件服务器,也可以采用其他方式发送给固件服务器,本发明实施例对此不作限定。
步骤101、固件服务器接收到来自设备的固件的当前版本信息,根据所述固件的当前版本信息判断所述固件是否需要升级,如果需要,则向所述设备发送针对所述固件的升级文件,以使设备根据所述升级文件对所述固件进行升级。
示例性地,固件服务器根据固件的当前版本信息判断固件是否需要升级可以包括:
固件服务器根据固件的当前版本信息确定固件的当前版本;固件服务器判断固件的当前版本是否为最新版本;若为否,则固件服务器确定固件需要升级。
具体地,当前版本信息可以包括固件的当前版本号或其他可以唯一标识版本的信息。固件服务器可以比对从设备中获取的固件的当前版本与固件服务器中所存储的最新版本,例如,比对版本的版本号等,进而判断是否需要升级,若当前版本的版本号低于最新版本的版本号,则确定固件需要升级;若当前版本的版本号与最新版本的版本号相同,或当前版本的版本号高于最新版本的版本号,则确定固件不需要升级。
固件服务器也可以比对从设备中获取的固件的当前版本与固件服务器中所存储的任意一个版本,例如,比对版本的版本号等,当固件服务器判断出自身存储的固件的升级文件中,存在版本信息比获得的固件的当前版本信息新的升级文件时,确定固件需要升级;
当固件服务器判断出自身存储的固件的升级文件中,不存在版本信息比获得的固件的当前版本信息新的升级文件时,确定固件不需要升级。
可选地,该方法还可以包括:当固件服务器判断出固件需要升级时,向设备发送针对固件的通知消息;该通知消息用于通知设备所述固件需要进行升级,其中,通知消息可以包括升级文件的版本号等。设备接收到固件服务器的通知消息,若设备根据该通知消息确认对该固件进行升级,则设备可以向固件服务器发送请求消息,该请求消息用于请求对固件的升级文件进行下载,例如,请求消息中可以包括请求升级文件的版本号等,该版本号可以与通知消息中的版本号相同,或不同,在此不予限定;固件服务器接收到设备发送的请求消息后,向设备发送针对固件的升级文件,该升级文件的版本号与请求消息中的版本号相同。
可选地,该方法还可以包括:
若固件服务器中的最新版本的固件与设备中当前版本的固件之间跨版本,则固件服务器可以判断设备中的该固件是否支持跨版本升级,如果支持,则向设备发送最新版本的升级文件;如果不支持,则向设备发送当前版本的下一个版本的升级文件,使固件逐步升级至最新版本。例如,在设备根据下一个版本的升级文件对固件升级成功后,设备可以将下一个版本的版本信息发送给固件服务器,即执行上述步骤100中所描述的第三种实现方式,循环上述步骤,直至设备将该固件升级为最新版本的固件。
示例性地,固件服务器可以根据设备发送的固件的当前版本信息来判断固件是否支持跨版本升级。具体实现可以参见以下几种方式中的任意一种或几种结合。
例如,固件服务器中预先存储有固件的版本信息和是否支持跨版本升级之间的对应关系,在对应关系中查找固件的当前版本信息对应的是否支持跨版本升级,如果查找到的是支持跨版本升级,则确定固件支持跨版本升级;如果查找到的是不支持跨版本升级,则确定固件不支持跨版本升级。
又如,固件服务器中预先存储有支持跨版本升级的版本信息,在支持跨版本升级的版本信息中查找固件的当前版本信息,如果查找到,则确定固件支持跨版本升级;如果查找不到,则确定固件不支持跨版本升级。
又如,固件服务器中预先存储有不支持跨版本升级的版本信息,在不支持跨版本升级的版本信息中查找固件的当前版本信息,如果查找到,则确定固件不支持跨版本升级;如果查找不到,则确定固件支持跨版本升级。
其中,请求消息可以具体包括:需要升级的固件的标识和表示升级到的版本的信息,例如上述的版本的版本号等。
可选的,如果固件服务器判断出固件不需要升级,则结束本流程。
步骤102、设备接收来自固件服务器的针对固件的升级文件,判断升级文件是否接收成功,若是,则根据升级文件对固件进行升级。
示例性地,设备可以通过接收的升级信息来判断升级文件是否接收成功。
示例性地,设备可以在接收升级文件之前接收升级信息,例如,升级信息携带在上述固件服务器发送的通知消息中;或者,设备可以在接收升级文件时,该升级文件中携带有升级信息。
其中,升级信息可以包括升级文件的大小、升级文件的消息摘要算法第五版(MD5,Message Digest Algorithm 5)值,等等中的至少一个或多个。
设备通过接收的升级信息来判断升级文件是否接收成功可以通过以下方式来实现:
若升级信息包括升级文件的大小,判断接收到的升级文件的大小和所述升级信息中的升级文件的大小是否相同,若相同,则判断出接收成功,若不相同,则判断出接收失败;或者,若升级信息包括升级文件的MD5值,则判断接收到的升级文件的MD5值和所述升级信息中的升级文件的MD5值是否相同,若相同,则判断出接收成功,若不相同,则判断出接收失败;或者,若升级信息包括上述两种信息,则可以将上述判断方式结合以进行判断,如果均相同,则判断出所述升级文件接收成功;如果至少一个不相同,则判断出所述升级文件接收失败。当然,若升级信息中还包括其他信息,还可以基于其他信息进行判断,在此不予限定。
本步骤中,可以采用将固件的原文件擦除,并写入接收到的升级文件以实现升级。
可选的,当判断出升级文件接收失败时,设备向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件。
可选地,在一种实现方式中,若设备在接收到升级文件之前接收到升级信息,例如,上述固件服务器发送的通知消息中携带有升级信息,设备可以根据升级信息判断是否有足够的存储空间存储待接收的升级文件,若设备判断出没有足够的存储空间,则可以不向设备发送请求消息,待确定有足够空间存储待接收的升级文件后,再向设备发送请求消息。
例如,判断自身的可用存储空间是否满足存储升级文件包括:
判断出升级信息中的升级文件的大小小于或等于自身的可用存储空间,确定自身的可用存储空间满足存储升级文件;
判断出升级信息中的升级文件的大小大于自身的可用存储空间,确定自身的可用存储空间不满足存储升级文件。
可选的,当判断出自身的可用存储空间不满足存储升级文件时,删除旧版本的升级文件,或结束本流程。
可选的,该方法还可以包括:设备判断出升级文件接收成功后,提示用户是否对固件进行升级,当检测到用户确认升级操作后,根据升级文件对固件进行升级。
其中,当设备为无人机时,由于无人机在遥控设备的控制下执行对应的任务,因此,设备可以通过遥控设备提示用户是否对无人机中的固件进行升级。
例如,无人机向遥控设备发送提示消息,遥控设备根据该提示消息提示用户;遥控设备检测到用户确认升级操作后,向无人机发送进行升级的指令;无人机基于该指令确认对该固件进行升级。
又如,无人机向遥控设备发送提示消息,遥控设备向与遥控设备连接的移动终端发送提示消息,移动终端根据该提示消息提示用户;移动终端检测到用户确认升级操作后,向遥控设备发送进行升级的指令,遥控设备接收到进行升级的指令,将接收到的进行升级的指令发送给无人机。
可选的,当检测到用户确认不升级操作时,结束本流程。
可选的,该方法还可以包括:
设备判断固件是否升级成功,若为否,则向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件;
若所述设备判断升级失败的次数达到预设阈值,提示用户针对所述固件升级失败。例如,提示用户升级失败的固件的标识。
示例性地,设备判断固件是否升级成功可以包括:
获取固件的当前版本信息,判断获得的当前版本信息与升级信息中的版本信息是否相同,如果相同,则确定升级成功;如果不相同,则确定升级失败。
上述方法中,固件服务器和设备可以通过物联网或其他网络进行通信,在此不予限定。
通过本发明实施例的方案,设备根据固件服务器发送的升级文件进行固件升级,简化了用户操作并提高了固件升级的成功率和效率。
参见图2,本发明第二实施例还提出了一种升级固件的方法,应用于设备侧,包括:
步骤200、设备将固件的当前版本信息发送给固件服务器。
本申请所描述的实施例中,设备可以是指无人飞行器(Unmanned AerialVehicle,UAV);或者,设备是指用于控制该无人飞行器的遥控设备。在此不予限定。
其中,固件是指配置于设备中的存储器所保存的硬件驱动程序。其中,存储器中可以保存有多个固件,不同的固件可以对应不同的硬件。
示例性地,设备可以采用以下几种方法中的任意一种将固件的当前版本信息发送给固件服务器。
第一种,设备周期性地将固件的当前版本信息发送给所述固件服务器。
其中,设备可以按照预设周期向固件服务器发送固件的当前版本信息,各固件对应的预设周期可以相同或不同,在此不予限定。设备所要发送当前版本信息的固件可以是固件服务器指定的,或者,是预配置的,或者是设备设置触发发送条件,并确定满足该触发发送条件的固件,并将该固件的当前版本信息发送给固件服务器,在此不予限定。其中,设备所设置的触发发送条件可以是固件升级后的预设时间阈值,或者其他条件等,在此不予限定。
第二种,设备在接收到来自固件服务器的查询消息时,将查询消息查询的固件的当前版本信息发送给固件服务器。
第三种,设备将升级后的固件的当前版本信息发送给固件服务器。具体地,一种情况为,如果设备需要进行多次升级才能升级到最新版本,那么,在每升级成功一个版本后,还需要判断是否继续升级,即在固件升级成功后将固件的当前版本信息发送给固件服务器,固件服务器接收到固件的当前版本信息判断是否继续进行升级。
或者,设备可以执行上述至少两种方式的结合。例如,设备接收固件服务器的查询消息中,携带有固件服务器所需查询的固件,以及针对该固件的周期。设备可以根据查询消息,向固件服务器按照该周期发送查询消息所指示的固件的当前版本信息。
当然,还可以包括其他结合方式,或其他实现方式,在此不予限定。
本实施例中,设备可以将部分固件的当前版本信息发送给固件服务器,也可以将全部固件的当前版本信息发送给固件服务器。当设备将两个或两个以上固件的当前版本信息发送给固件服务器时,可以将两个或两个以上固件的当前版本信息逐个发送给固件服务器,也可以将两个或两个以上固件的当前版本信息同时发送给固件服务器,也可以采用其他方式发送给固件服务器,本发明实施例对此不作限定。
可选的,设备接收到固件服务器的升级信息,向固件服务器发送文件下载指令。
步骤201、设备接收来自固件服务器的针对固件的升级文件,判断升级文件是否接收成功,若是,则根据升级文件对固件进行升级。
示例性地,设备可以通过接收的升级信息来判断升级文件是否接收成功。
示例性地,设备可以在接收升级文件之前接收升级信息,例如,升级信息携带在上述固件服务器发送的通知消息中;或者,设备可以在接收升级文件时,该升级文件中携带有升级信息。
其中,升级信息可以包括升级文件的大小、升级文件的消息摘要算法第五版(MD5,Message Digest Algorithm 5)值,等等中的至少一个或多个。
设备通过接收的升级信息来判断升级文件是否接收成功可以通过以下方式来实现:
若升级信息包括升级文件的大小,判断接收到的升级文件的大小和所述升级信息中的升级文件的大小是否相同,若相同,则判断出接收成功,若不相同,则判断出接收失败;或者,若升级信息包括升级文件的MD5值,则判断接收到的升级文件的MD5值和所述升级信息中的升级文件的MD5值是否相同,若相同,则判断出接收成功,若不相同,则判断出接收失败;或者,若升级信息包括上述两种信息,则可以将上述判断方式结合以进行判断,如果均相同,则判断出所述升级文件接收成功;如果至少一个不相同,则判断出所述升级文件接收失败。当然,若升级信息中还包括其他信息,还可以基于其他信息进行判断,在此不予限定。
本步骤中,可以采用将固件的原文件擦除,并写入接收到的升级文件以实现升级。
可选的,当判断出升级文件接收失败时,设备向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件。
可选地,在一种实现方式中,若设备在接收到升级文件之前接收到升级信息,例如,上述固件服务器发送的通知消息中携带有升级信息,设备可以根据升级信息判断是否有足够的存储空间存储待接收的升级文件,若设备判断出没有足够的存储空间,则可以不向设备发送请求消息,待确定有足够空间存储待接收的升级文件后,再向设备发送请求消息。
例如,判断自身的可用存储空间是否满足存储升级文件包括:
判断出升级信息中的升级文件的大小小于或等于自身的可用存储空间,确定自身的可用存储空间满足存储升级文件;
判断出升级信息中的升级文件的大小大于自身的可用存储空间,确定自身的可用存储空间不满足存储升级文件。
可选的,当判断出自身的可用存储空间不满足存储升级文件时,删除旧版本的升级文件,或结束本流程。
可选的,该方法还可以包括:设备判断出升级文件接收成功后,提示用户是否对固件进行升级,当检测到用户确认升级操作后,根据升级文件对固件进行升级。
其中,当设备为无人机时,由于无人机在遥控设备的控制下执行对应的任务,因此,设备可以通过遥控设备提示用户是否对无人机中的固件进行升级。
例如,无人机向遥控设备发送提示消息,遥控设备根据该提示消息提示用户;遥控设备检测到用户确认升级操作后,向无人机发送进行升级的指令;以使无人机基于该指令确认对该固件进行升级。
又如,无人机向遥控设备发送提示消息,遥控设备向与遥控设备连接的移动终端发送提示消息,移动终端根据该提示消息提示用户;移动终端检测到用户确认升级操作后,向遥控设备发送进行升级的指令,遥控设备接收到进行升级的指令,将接收到的进行升级的指令发送给无人机。
可选的,当检测到用户确认不升级操作时,结束本流程。
可选的,该方法还可以包括:
设备判断固件是否升级成功,若为否,则向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件;
若所述设备判断升级失败的次数达到预设阈值,提示用户针对所述固件升级失败。例如,提示用户升级失败的固件的标识。
其中,设备判断固件是否升级成功可以包括:
获取固件的当前版本信息,判断获得的当前版本信息与升级信息中的版本信息是否相同,如果相同,则确定升级成功;如果不相同,则确定升级失败。
上述方法中,固件服务器和设备可以通过物联网或其他网络进行通信,在此不予限定。
参见图3,本发明第三实施例还提出了一种升级固件的方法,应用于固件服务器侧,包括:
步骤300、固件服务器接收到来自设备的固件的当前版本信息。
步骤301、固件服务器根据所述固件的当前版本信息判断所述固件是否需要升级,如果需要,则向所述设备发送针对所述固件的升级文件,以使设备根据所述升级文件对所述固件进行升级。
示例性地,固件服务器根据固件的当前版本信息判断固件是否需要升级可以包括:
固件服务器根据固件的当前版本信息确定固件的当前版本;固件服务器判断固件的当前版本是否为最新版本;若为否,则固件服务器确定固件需要升级。
具体地,当前版本信息可以包括固件的当前版本号或其他可以唯一标识版本的信息。固件服务器可以比对从设备中获取的固件的当前版本与固件服务器中所存储的最新版本,例如,比对版本的版本号等,进而判断是否需要升级,若当前版本的版本号低于最新版本的版本号,则确定固件需要升级;若当前版本的版本号与最新版本的版本号相同,或当前版本的版本号高于最新版本的版本号,则确定固件不需要升级。
固件服务器也可以比对从设备中获取的固件的当前版本与固件服务器中所存储的任意一个版本,例如,比对版本的版本号等,当固件服务器判断出自身存储的固件的升级文件中,存在版本信息比获得的固件的当前版本信息新的升级文件时,确定固件需要升级;
当固件服务器判断出自身存储的固件的升级文件中,不存在版本信息比获得的固件的当前版本信息新的升级文件时,确定固件不需要升级。
可选地,该方法还可以包括:当固件服务器判断出固件需要升级时,向设备发送针对固件的通知消息;该通知消息用于通知设备所述固件需要进行升级,其中,通知消息可以包括升级文件的版本号等。设备接收到固件服务器的通知消息,若设备根据该通知消息确认对该固件进行升级,则设备可以向固件服务器发送请求消息,该请求消息用于请求对固件的升级文件进行下载,例如,请求消息中可以包括请求升级文件的版本号等,该版本号可以与通知消息中的版本号相同,或不同,在此不予限定;固件服务器接收到设备发送的请求消息后,向设备发送针对固件的升级文件,该升级文件的版本号与请求消息中的版本号相同。
可选地,该方法还可以包括:
若固件服务器中的最新版本的固件与设备中当前版本的固件之间跨版本,则固件服务器可以判断设备中的该固件是否支持跨版本升级,如果支持,则向设备发送最新版本的升级文件;如果不支持,则向设备发送当前版本的下一个版本的升级文件,使固件逐步升级至最新版本。例如,在设备根据下一个版本的升级文件对固件升级成功后,设备可以将下一个版本的版本信息发送给固件服务器,即执行上述步骤100中所描述的第三种实现方式,循环上述步骤,直至设备将该固件升级为最新版本的固件。
示例性地,固件服务器可以根据设备发送的固件的当前版本信息来判断固件是否支持跨版本升级。具体实现可以参见以下几种方式中的任意一种或几种结合。
例如,固件服务器中预先存储有固件的版本信息和是否支持跨版本升级之间的对应关系,在对应关系中查找固件的当前版本信息对应的是否支持跨版本升级,如果查找到的是支持跨版本升级,则确定固件支持跨版本升级;如果查找到的是不支持跨版本升级,则确定固件不支持跨版本升级。
又如,固件服务器中预先存储有支持跨版本升级的版本信息,在支持跨版本升级的版本信息中查找固件的当前版本信息,如果查找到,则确定固件支持跨版本升级;如果查找不到,则确定固件不支持跨版本升级。
又如,固件服务器中预先存储有不支持跨版本升级的版本信息,在不支持跨版本升级的版本信息中查找固件的当前版本信息,如果查找到,则确定固件不支持跨版本升级;如果查找不到,则确定固件支持跨版本升级。
其中,请求消息可以具体包括:需要升级的固件的标识和表示升级到的版本的信息,例如上述的版本的版本号等。
可选的,如果固件服务器判断出固件不需要升级,则结束本流程。
参见图4,本发明第四实施例还提出了一种设备,包括:
第一发送模块401,用于将固件的当前版本信息发送给固件服务器;
第一接收模块403,用于接收来自固件服务器的针对所述固件的升级文件,所述升级文件是所述固件服务器根据所述固件的当前版本信息确定的;
升级模块405,用于判断所述升级文件是否接收成功,若是,则根据所述升级文件对所述固件进行升级。
可选的,所述升级模块405还用于:
判断所述固件是否升级成功,若为否,则向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件;若确定升级失败的次数大于或等于预设阈值,提示用户针对所述固件升级失败。
可选的,所述升级模块405还用于:
当判断出所述升级文件接收失败时,并向所述第一发送模块发送请求消息;
所述第一发送模块401还用于:
接收到请求消息,向所述固件服务器发送请求消息,所述请求消息用于请求所述固件服务器重新发送所述升级文件。
可选的,所述升级模块405具体用于:
判断所述升级文件是否接收成功,若是,则提示用户是否对所述固件进行升级;检测到所述用户确认升级操作后,根据所述升级文件对所述固件进行升级。
参见图5,本发明第五实施例还提出了一种固件服务器,包括:
第二接收模块501,用于接收到设备发送的固件的当前版本信息;
处理模块503,用于根据所述固件的当前版本信息判断所述固件是否需要升级,若为是,则向第二发送模块发送通知消息;
第二发送模块505,用于接收到通知消息,向设备发送针对所述固件的升级文件,以使设备根据所述升级文件对所述固件进行升级。
可选的,所述处理模块503具体用于采用以下方式实现根据固件的当前版本信息判断固件是否需要升级:
根据所述固件的当前版本信息确定所述固件的当前版本;判断所述固件的当前版本是否为最新版本;若为否,则确定所述固件需要升级。
可选的,所述第二发送模块505还用于:
向所述设备发送所述固件的升级信息,所述升级信息用于由所述设备确定所述固件是否接收成功。
可选的,所述第二发送模块505具体用于采用以下方式实现所述向所述设备发送针对所述固件的升级文件:
若所述固件服务器中存在针对所述固件的多个升级文件时,判断所述固件是否支持跨版本升级;
若为是,则向所述设备发送针对所述固件的最新版本的升级文件;
若为否,则向所述设备发送针对所述固件的下一个版本的升级文件。
参见图6,本发明第六实施例还提出了一种设备,包括第一处理器601和第一计算机可读存储介质603,所述第一计算机可读存储介质603中存储有第一计算机程序,所述第一处理器601用于调用所述第一计算机程序603以执行上述任意一种设备侧的升级固件的方法。
其中,第一计算机可读存储介质603至少包括以下的一种:闪存、硬盘、多媒体卡、卡型存储器(例如,安全数码卡(SD卡,Secure Digital Memory Card)或数据寄存器(DX,Data Register)存储器等)、随机访问存储器(RAM,Random Access Memory)、静态随机访问存储器(SRAM,Static Random Access Memory)、只读存储器(ROM,Read Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、磁性存储器、磁盘、光盘等。
其中,第一处理器601可以是中央处理器(CPU,Central Processing Unit)、控制器、微控制器、微处理器、或其他数据处理芯片等。
上述设备还可以包含其他的用于实现特定功能的硬件装置,例如,若设备为遥控设备,则该遥控设备还可以包括天线、通信装置等;若设备为无人飞行器,则该无人飞行器还可以包括摄像头、飞行控制器、视觉控制器等,在此不作限定。
参见图7,本发明第七实施例还提出了一种固件服务器,包括第二处理器701和第二计算机可读存储介质703,所述第二计算机可读存储介质703中存储有第二计算机程序,第二处理器701用于调用所述第二计算机程序703以执行上述任意一种固件服务器侧的升级固件的方法。
其中,第二计算机可读存储介质703至少包括以下的一种:闪存、硬盘、多媒体卡、卡型存储器(例如,安全数码卡(SD卡,Secure Digital Memory Card)或数据寄存器(DX,Data Register)存储器等)、随机访问存储器(RAM,Random Access Memory)、静态随机访问存储器(SRAM,Static Random Access Memory)、只读存储器(ROM,Read Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-OnlyMemory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、磁性存储器、磁盘、光盘等。
其中,第二处理器701可以是中央处理器(CPU,Central Processing Unit)、控制器、微控制器、微处理器、或其他数据处理芯片等。
上述固件服务器还可以包含其他的用于实现特定功能的硬件模块,如通信装置等,在此不作限定。
本发明第八实施例还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于被处理器执行时实现上述任意一种升级固件的方法的步骤。
参见图8,本发明第九实施例提出了一种升级固件的系统,包括:无人飞行器801、遥控设备803和固件服务器805。
其中,无人飞行器801与遥控设备803之间可以通过无线连接;无人飞行器801与固件服务器805之间可以通过无线技术或无线网络进行连接;相应地,遥控设备803与固件服务器805之间可以通过无线技术活无线网络进行连接。其中,无人飞行器801与遥控设备803之间所使用的无线网络或无线技术可以与无人飞行器801与固件服务器805之间或遥控设备803与固件服务器805之间所使用的相同或不同,并且在此对上述设备与固件服务器之间的连接方式不予限定。
遥控设备803可以用于控制无人飞行器801飞行,还可以接收无人飞行器拍摄的视频或图像等;无人飞行器801用于在遥控设备803的控制下执行相应的任务,无人飞行器801和遥控设备803各自可以包括至少一个存储器,该至少一个存储器中存储有一个或一个以上固件,当无人飞行器801或遥控设备803的存储器中的固件需要升级时,可以采用上述设备所执行的方法进行升级。
其中,无人飞行器801或遥控设备803可以执行上述设备所执行方法的部分或全部步骤,在此不予赘述。
相应地,固件服务器805可以执行上述固件服务器所执行方法的部分或全部步骤,在此不予赘述。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。