一种固件升级包下发方法、获取方法及装置的制造方法_2

文档序号:9730298阅读:来源:国知局
[0034]步骤104:根据获取请求将对应的固件升级包发送给发送获取请求的AlI Joyn设备。
[0035]相应地,本实施例还提供了一种固件升级包获取方法,该方法可以由AllJoyn设备来实现,图2是该方法的流程图,如图2所示,该装置主要包括如下步骤:
[0036]步骤201:接收到来自控制终端的固件升级包的描述信息后,根据固件升级包的描述信息判断固件升级包是否适用于Al I Joyn设备,以及Al I Joyn设备的固件版本是否低于固件升级包的版本,如果固件升级包适用于AllJoyn设备且AllJoyn设备的固件版本低于固件升级包的版本,则缓存固件升级包的描述信息;
[0037]步骤202:判断AllJoyn设备当前的运行状态是否能够进行固件升级,如果是,则根据缓存的固件升级包的描述信息向AllJoyn设备的控制终端获取最新的固件升级包。
[0038]在该步骤202中,当Al I Joyn设备处于空闲状态时(S卩非工作状态)时,确定All Joyn设备可以进行固件升级,同时,由于固件升级包的描述信息中包含固件对应的设备型号,所以可以根据该信息确定固件是否适用于指定的AllJoyn设备。
[0039]进一步的,在网络中存在多个控制终端的情况下,AllJoyn设备会接收到不同的固件升级消息,基于此,方法还可以包括:
[0040]在判断AllJoyn设备当前的运行状态是否能够进行固件升级之前,如果再次接收到固件升级包的描述信息,将再次接收的固件升级包的描述信息与缓存的最新的固件升级包的描述信息进行对比;
[0041]仅在再次接收到的固件升级包比缓存的最新的固件升级包的版本高的情况下缓存再次接收到的固件升级包的描述信息,且删除之前缓存的固件升级包的描述信息。
[0042]同时,AllJoyn设备还可能同时接收到来自不同控制终端的固件升级包的描述信息,基于此,接收到来自控制终端的固件升级包的描述信息后,根据固件升级包的描述信息判断固件升级包是否适用于Al I Joyn设备,以及Al I Joyn设备的固件版本是否低于固件升级包的版本,如果固件升级包适用于AllJoyn设备且AllJoyn设备的固件版本低于固件升级包的版本,则缓存固件升级包的描述信息,具体可以包括:AllJoyn设备接收到多个固件升级广播消息,广播消息中包括多个固件升级包的描述信息,选择适用于AllJoyn设备且版本最高的固件升级包的描述信息进行缓存,其中,AllJoyn设备接受到的多个固件升级广播消息可以由多个控制终端发出。
[0043]实施例2
[0044]在一个基于AllJoyn的家庭网络中,存在若干AllJoyn设备及一个或多个运行固件升级程序的控制终端。其中,AllJoyn设备可以是电视、空调、冰箱等家电家居设备;控制终端可以是路由器、网关、手机等。
[0045]控制终端维护本地固件信息,为一种或多种AllJoyn设备提供固件升级服务,另一方面,控制终端具有外网连接功能,能够连接互联网中的升级服务器,并主动或者被动地从升级服务器获得新的升级数据。
[0046]以下结合图3对本实施例中涉及到的AllJoyn设备固件升级的过程进行阐述:
[0047]控制终端通过internet从远程升级服务器获取固件升级包信息,包括固件映像、固件ID(如固件映像的哈希值)、固件版本、对应的设备型号列表(如Casarte BCD-728WDCA、Casarte XQGH100-HBF1427UF),也可以包含该固件覆盖的固件版本关系等。
[0048]控制终端将获取到的新的固件升级包信息添加到固件列表中,若控制终端不维护以前版本的固件信息,则固件列表可以为空。
[0049]控制终端广播包含新固件升级包信息的固件列表,以及提供相应服务的会话端口等信息。
[0050]AllJoyn设备收到广播信息,首先判断固件信息是否适用于本设备及是否比现有固件版本新。
[0051 ]若网络中存在多个控制终端,则AllJoyn设备会收到多个控制终端发送的固件升级广播。AllJoyn设备比较收到的多个固件升级广播中的升级包信息,选择其中最新的固件Ia息,进行缓存。
[0052]AllJoyn设备判断当前运行状态能够升级固件,提取缓存的固件信息,加入相应控制终端的会话。
[0053]AllJoyn设备发送开始升级指令,包括设备当前的固件信息、目标固件ID。
[0054]AllJoyn设备接收控制终端发送的固件升级数据。
[0055]AllJoyn设备根据哈希值判断升级数据接收完毕,发出接收完成指令,关闭会话,开始升级。
[0056]实施例3
[0057]本实施提供一种通过控制终端与Al I Joyn设备进行交互来实现Al I Joyn设备固件升级的方法,本实施例与上述实施例2的不同之处在于,在AllJoyn设备设备缓存固件升级包的描述信息且未进行固件升级时,又接收到来自控制终端的固件升级包信息的情况下的处理方法,如图4所示,该方法包括如下处理:
[0058]控制终端通过internet从远程升级服务器获取固件升级包信息,包括固件映像、固件ID、、固件版本、对应的设备型号列表,也可以包含该固件覆盖的固件版本关系等。
[0059]控制终端将新的固件升级包信息添加到固件列表中。若控制终端不维护以前版本的固件信息,则固件列表可以为空。
[0060]控制终端发送广播信息,该广播信息中包含新固件升级包信息的固件列表,以及提供相应服务的会话端口等信息。
[0061]AllJoyn设备收到广播信息,首先判断固件信息是否适用于本设备及是否比现有固件版本新。
[0062]若网络中存在多个控制终端,则AllJoyn设备会收到多个固件升级广播。AllJoyn设备比较收到的多个信息,选择其中最新的固件信息,进行缓存。
[0063]AllJoyn设备接收到新的广播信息,判断其比缓存的固件信息更新。
[0064]AllJoyn设备更新缓存的固件信息为新接收到的信息。
[0065]AllJoyn设备判断当前运行状态能够升级固件,提取缓存的固件信息,加入相应控制终端的会话。
[0066]AllJoyn设备发送开始升级指令,包括设备当前的固件信息、目标固件ID。
[0067]AllJoyn设备接收控制终端发送的固件升级数据。
[0068]AllJoyn设备根据哈希值判断升级数据接收完毕,发出接收完成指令,关闭会话,开始升级。
[0069]实施例4
[0070]本实施例提供一种通过控制终端与Al I Joyn设备进行交互来实现Al I Joyn设备固件升级的方法,本实施例与上述实施例2的不同之处在于,控制终端限制与接入升级会话中的终端数量,如图5所示,该方法包括如下处理:
[0071]控制终端通过internet从远程升级服务器获取固件升级包信息,包括固件映像、固件ID、固件版本、对应的设备型号列表,也可以包含该固件覆盖的固件版本关系等。
[0072]控制终端将新的固件升级包信息添加到固件列表中。若控制终端不维护以前版本的固件信息,则固件列表可以为空。
[0073]控制终端广播包含新固件升级包信息的固件列表,以及提供相应服务的会话端口等信息。
[0074]AllJoyn设备收到广播信息,首先判断固件信息是否适用于本设备及是否比现有固件版本新。
[0075]若网络中存在多个控制终端,则AllJoyn设备会收到多个固件升级广播。AllJoyn设备比较收到的多个信息,选择其中最新的固件信息,进行缓存。
[0076]AllJoyn设备判断当前运行状态能够升级固件,提取缓存的固件信息,加入相应控制终端的会话。
[0077]控制终端判断当前升级的设备是否达到连接的最大数量,例如终端设定同时连接升级10个设备,则设备多于10个时后续接入的设备会被暂时拒绝。
[0078]未达到控制终端连接上限,终端允许AllJoyn设备会话接入。
[0079]AllJoyn设备发送开始升级指令,包括设备当前的固件信息、目标固件ID。
[0080]AllJoyn设备接收控制终端发送的固件升级数据。
[0081]AllJoyn设备根据哈希值判断升级数据接收完毕,发出接收完成指令,关闭会话,开始升级。
[0082]实施例5
[0083]本实施例提供了一种固件升级包下发装置,该装置可以设置于控制终端侧,用于实现上述实施例1中提供的固件升级包下发方法,图6是该装置的结构框图,如图6所示,该装置60具体可以包括如下组成部分:
[0084]获取模块61,用于从升级服务器端获取控制终端管理的AllJoyn设备的固件升级包的描述信息;
[0085]广播模块62,用于广播固件升级包的描述信息;
[0086]第一接收模块63,
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1