数据升级方法、装置、电子设备和存储介质与流程

文档序号:31085851发布日期:2022-08-09 23:00阅读:62来源:国知局
数据升级方法、装置、电子设备和存储介质与流程

1.本技术涉及智能家居技术领域,特别是涉及一种数据升级方法、装置、电子设备和存储介质。


背景技术:

2.随着智能家居行业的不断发展,智能设备如智能门锁的使用越来越广泛,而为了提升用户使用体验、设备功能等需要,智能设备的数据如固件等需要定期或不定时进行升级。目前的方式是手机和智能设备通过蓝牙传输数据升级文件,智能设备在数据升级文件传输完成后对数据升级文件进行完整性校验,并在校验通过后再进行升级。
3.然而,在目前的方式中,若上一次数据升级传输时发生中断,则后续数据升级时需要重新传输所有文件,存在影响数据升级效率等问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高数据升级效率的数据升级方法、装置、电子设备和存储介质。
5.第一方面,本技术实施例提供一种数据升级方法,所述方法包括:
6.发送查询请求,所述查询请求用于请求查询目标设备的上一次数据升级状态;
7.接收基于所述查询请求返回的上一次数据升级状态信息;
8.基于所述上一次数据升级状态信息,按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件向所述目标设备发送。
9.在一实施方式中,所述发送查询请求之前,还包括:
10.向所述目标设备发送退出上一次数据升级指令。
11.第二方面,本技术实施例提供一种数据升级方法,所述方法包括:
12.接收查询请求,所述查询请求用于请求查询目标设备上一次数据升级状态;
13.响应所述查询请求,发送上一次数据升级状态信息;
14.获取升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件,以基于所述部分或全部数据子文件进行数据升级。
15.在一实施方式中,所述接收查询请求之前,还包括:
16.接收退出上一次数据升级指令;
17.响应所述退出上一次数据升级指令,初始化升级状态。
18.第三方面,本技术实施例提供一种数据升级装置,应用于升级控制设备,所述装置包括:
19.第一发送模块,用于发送查询请求,所述查询请求用于请求查询目标设备的上一次数据升级状态;
20.第一接收模块,用于接收基于所述查询请求返回的上一次数据升级状态信息;
21.第一处理模块,用于基于所述上一次数据升级状态信息,按照预设分片传输策略
将数据升级文件包含的部分或全部数据子文件通过所述第一发送模块向所述目标设备发送。
22.在一些实施例中,所述上一次数据升级状态信息包括上一次数据升级的版本信息和/或用于指示上一次数据升级是否存在断点信息的指示信息;所述第一处理模块,具体用于:
23.若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息,则按照预设分片传输策略将所述数据升级文件包含的全部数据子文件通过所述第一发送模块向所述目标设备发送;
24.若所述上一次数据升级的版本信息与所述数据升级文件对应的版本信息相同且上一次数据升级存在断点信息,则按照预设分片传输策略将所述数据升级文件包含的部分数据子文件通过所述第一发送模块向所述目标设备发送。
25.在一些实施例中,第一发送模块,还用于发送文件筛选请求,所述文件筛选请求包括所述数据升级文件包含的全部数据子文件信息;
26.第一接收模块,还用于接收文件筛选请求响应信息,所述文件筛选请求响应信息包括待升级的数据子文件信息;
27.第一处理模块,还用于将所述待升级的数据子文件确定为需要向所述目标设备发送的所述部分数据子文件。
28.在一些实施例中,所述第一处理模块,具体用于:
29.对于当前待发送的目标数据子文件,根据所述上一次数据升级状态信息从所述目标数据子文件对应的至少一分片中确定初始分片;其中,所述至少一分片是按照预设分片值依次对所述目标数据子文件进行排序分片获得的;所述目标数据子文件为所述部分或全部数据子文件中的任一数据子文件;
30.按照预设规则将所述初始分片和所述目标数据子文件包含的位于所述初始分片之后的分片通过所述第一发送模块依次向所述目标设备发送。
31.在一些实施例中,所述第一处理模块,具体用于:
32.若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息或所述目标数据子文件为上一次数据升级未传输的数据子文件,则将所述目标数据子文件的第一个分片确定为初始分片;
33.若所述目标数据子文件包含上一次数据升级传输中断的分片标识,则将所述目标数据子文件包含的与所述分片标识对应的分片确定为初始分片。
34.在一些实施例中,所述第一处理模块,具体用于:
35.对于当前待发送的目标分片,根据所述目标设备的传输能力信息,对所述目标分片进行排序分割,获得所述目标分片的至少一数据碎片;所述目标分片为所述初始分片和位于所述初始分片之后的分片中的任一分片;
36.将所述目标分片的各所述数据碎片和对应的数据碎片标识依次向所述目标设备发送。
37.在一些实施例中,
38.第一发送模块,还用于向所述目标设备发送所述目标分片对应的分片标识、数据长度和校验信息;
39.第一处理模块,还用于响应于发送完成所述目标分片后的预设时长内未接收到所述目标设备发送的校验响应信息,或根据所述目标设备发送的校验响应信息确定所述目标设备接收所述目标分片失败,通过第一发送模块重新发送所述目标分片。
40.在一些实施例中,
41.第一发送模块,还用于向所述目标设备发送退出上一次数据升级指令。
42.第四方面,本技术实施例提供一种数据升级装置,所述装置包括:
43.第二接收模块,用于接收查询请求,所述查询请求用于请求查询目标设备上一次数据升级状态;以及获取升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件;
44.第二发送模块,用于响应所述查询请求,发送上一次数据升级状态信息;
45.第二处理模块,用于基于所述部分或全部数据子文件进行数据升级。
46.在一些实施例中,第二接收模块,还用于接收文件筛选请求,所述文件筛选请求包括所述数据升级文件包含的全部数据子文件信息;
47.第二处理模块,还用于根据所述全部数据子文件信息确定待升级的数据子文件信息;
48.第二发送模块,还用于发送文件筛选请求响应信息,所述文件筛选请求响应信息包括待升级的数据子文件信息。
49.在一些实施例中,第二接收模块,具体用于:
50.接收升级控制设备基于所述上一次数据升级状态信息依次发送的目标数据子文件包含的初始分片和位于所述初始分片之后的分片;其中,所述初始分片和位于所述初始分片之后的分片是按照预设分片值依次对所述目标数据子文件进行排序分片获得的;所述目标数据子文件为所述部分或全部数据子文件中的任一数据子文件。
51.在一些实施例中,第二接收模块,具体用于:
52.接收升级控制设备基于所述上一次数据升级状态信息依次发送的目标分片的各数据碎片和对应的数据碎片标识;其中,所述目标分片为所述初始分片和位于所述初始分片之后的分片中的任一分片。
53.在一些实施例中,
54.第二接收模块,还用于接收发送的所述目标分片对应的分片标识、数据长度和校验信息;
55.第二处理模块,还用于在接收完成所述目标分片后,基于所述分片标识、所述数据长度和所述校验信息对所述目标分片进行校验,并根据获得的校验结果通过第二发送模块发送校验响应信息。
56.在一些实施例中,
57.第二接收模块,还用于接收发送的退出上一次数据升级指令;
58.第二处理模块,还用于响应所述退出上一次数据升级指令,初始化升级状态。
59.在一些实施例中,所述数据升级装置还包括第一控制模块和第二控制模块,所述第二控制模块包括无线通信模块,所述第一控制模块与所述第二控制模块之间有线连接;
60.所述第二接收模块,具体用于:通过所述无线通信模块接收升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件;
61.所述第二发送模块,还用于通过所述有线连接将所述第一控制模块进行数据升级所需的数据子文件发送给所述第一控制模块;
62.所述第二处理模块,具体用于:基于所述数据子文件对所述第一控制模块进行数据升级,以及基于所述数据升级文件对所述第二控制模块进行升级。
63.第五方面,本技术实施例提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可被所述处理器执行的计算机程序,所述计算机程序被所述处理器执行时实现本技术任一实施例所述的数据升级方法。
64.第六方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本技术任一实施例所述的数据升级方法。
65.上述数据升级方法、装置、电子设备和存储介质,升级控制设备根据目标设备的上一次数据升级状态信息,确定需要向目标设备发送的数据子文件,即确定是将数据升级文件包含的部分或全部数据子文件向目标设备发送,并按照预设分片传输策略将对应的数据子文件向目标设备发送,使得在目标设备上一次数据升级过程中存在传输中断时,当前数据升级无需重新传输所有文件,提高了数据升级的灵活性和效率。
附图说明
66.图1为一个实施例中数据升级方法的应用环境图;
67.图2为一个实施例中数据升级方法的流程示意图;
68.图3为另一个实施例中数据升级方法的流程示意图;
69.图4为一个实施例中数据升级装置的结构框图;
70.图5为另一个实施例中数据升级装置的结构框图;
71.图6为一个实施例中数据升级方法的交互示意图;
72.图7为一个实施例中固件bin文件传输的流程示意图;
73.图8为一个实施例中电子设备的内部结构图。
具体实施方式
74.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
75.请参阅图1,图1为适用于本技术实施例的一种应用环境示意图。本技术实施例提供的数据升级方法可以应用于如图1所示的智能家居系统中,该智能家居系统包括升级控制设备1和目标设备2。
76.其中,升级控制设备1可以但不限于是个人计算机(personal computer,pc)、手机、平板电脑、穿戴式电子设备、网关、中控器等设备,目标设备2可以但不限于是智能门锁、智能打印机、智能传真机、智能摄像机、智能空调或者配置了通信模块(例如zigbee模块、wi-fi模块、蓝牙通信模块等)的人体传感器、门窗传感器、温湿度传感器、水浸传感器、天然气报警器、烟雾报警器、墙壁开关、墙壁插座、无线开关无线墙贴开关、魔方控制器、窗帘电机等设备。升级控制设备1可向目标设备2或与目标设备2通讯连接的网关等设备发送用于
请求查询目标设备2的上一次数据升级状态的查询请求,目标设备2或与目标设备2通讯连接的网关等设备响应所述查询请求,向升级控制设备1发送目标设备2的上一次数据升级状态信息,升级控制设备1接收返回的目标设备2的上一次数据升级状态信息,并基于目标设备2的上一次数据升级状态信息,按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件向目标设备2发送,目标设备2获取升级控制设备1发送的数据升级文件包含的部分或全部数据子文件,以基于所述部分或全部数据子文件进行数据升级。需要说明的是,升级控制设备1可按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件先发送给与目标设备2通讯连接的网关等设备,再由与目标设备2通讯连接的网关等设备将数据升级文件包含的部分或全部数据子文件发送给目标设备2。
77.升级控制设备1与目标设备2之间可以通过蓝牙、nfc、红外、wifi等无线方式进行通信。例如,升级控制设备1与目标设备2之间的数据传送可以采用蓝牙的方式,也可以通过nfc进行,本技术实施例对此不作限定。可以理解的是,以上应用环境仅为方便理解下述实施例作出的示例性描述,并不对本技术实施例实际可实施的应用环境构成任何限定。
78.请参阅图2,为本技术一实施例提供的一种数据升级方法,可应用于图1所示的升级控制设备1,所述数据升级方法包括以下步骤:
79.步骤s101,升级控制设备发送查询请求,所述查询请求用于请求查询目标设备的上一次数据升级状态。
80.其中,升级控制设备为提供数据升级服务的设备,具体可以为智能手机、平板电脑、网关等。数据升级包括但不限于固件升级、操作系统升级。升级控制设备可预先建立与目标设备之间的通信连接,比如蓝牙连接等,并基于所述通信连接向目标设备发送用于请求查询所述目标设备的上一次数据升级状态的查询请求。需要说明的是,升级控制设备发送查询请求,也可以是升级控制设备向与目标设备通讯连接的网关等设备发送查询请求,以通过与目标设备通讯连接的网关等设备查询目标设备的上一次数据升级状态。在一些实施例中,升级控制设备发送查询请求之前,还可包括:升级控制设备发送数据版本信息查询指令,并接收返回的目标设备的当前数据版本信息;升级控制设备检测所述当前数据版本信息是否早于从云端服务器获取的最新数据版本信息,若是,则执行发送查询请求的步骤,若否,则不执行发送查询请求的步骤。需要说明的是,所述目标设备的当前数据版本信息为目标设备当前数据对应的版本信息,所述版本信息包括但不限于版本号、版本更新时间等。例如,假设目标设备当前数据对应的版本号为a,且采用版本号为b的数据升级文件对目标设备当前数据进行升级,若升级成功,则目标设备当前数据对应的版本号将变为b;若升级失败,则目标设备当前数据对应的版本号仍为a。此外,若升级控制设备已记载目标设备每一次数据升级成功后对应的版本信息,可无需发送数据版本信息查询指令,而直接将上一次对目标设备进行数据升级后对应的版本信息作为目标设备的当前数据版本信息。如此,升级控制设备通过检测目标设备的当前数据版本信息是否低于从云端服务器获取的最新数据版本信息,进而确定是否发送查询请求,可有效节省资源,并提高数据升级效率。
81.步骤s103,升级控制设备接收基于所述查询请求返回的上一次数据升级状态信息。
82.其中,所述上一次数据升级状态信息用于表征目标设备上一次数据升级是否成功、版本信息等信息。可选地,所述上一次数据升级状态信息可包括上一次数据升级的版本
信息、和/或用于指示上一次数据升级是否存在断点信息的指示信息,所述指示信息可包括但不限于上一次数据升级的所有数据子文件名称、各数据子文件对应的传输状态以及已传输完成的分片标识。可以理解,所述上一次数据升级的版本信息为上一次数据升级所采用的数据升级文件对应的版本信息。版本信息可以是版本号、版本更新时间等信息。根据上一次数据升级的各数据子文件对应的传输状态,可获知哪些数据子文件已传输完成,而哪些数据子文件未传输完成,包括数据子文件未开始传输、数据子文件已传输部分等,而对于未传输完成的数据子文件,可基于已传输完成的分片标识,确定未传输完成的分片标识即传输中断的分片标识。需要说明的是,数据子文件已传输完成可以为目标设备已成功接收该数据子文件,而数据子文件未传输完成可以为目标设备未成功接收该数据子文件。所述分片标识用于对分片身份进行标识,比如可以为数字、字母等。
83.步骤s105,升级控制设备基于所述上一次数据升级状态信息,按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件向所述目标设备发送。
84.具体地,若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息,则按照预设分片传输策略将所述数据升级文件包含的全部数据子文件向所述目标设备发送;和/或,若所述上一次数据升级的版本信息与所述数据升级文件对应的版本信息相同且上一次数据升级存在断点信息,则按照预设分片传输策略将所述数据升级文件包含的部分数据子文件向所述目标设备发送。
85.其中,若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息,说明只需要利用全部数据升级文件对目标设备进行数据升级,此时当前的数据升级不再需要上一次数据升级的数据子文件,则按照预设分片传输策略将所述数据升级文件包含的全部数据子文件向所述目标设备发送。若所述上一次数据升级的版本信息与所述数据升级文件对应的版本信息相同且上一次数据升级存在断点信息,说明只需要利用部分数据升级文件对目标设备进行数据升级,此时当前的数据升级可结合上一次数据升级的数据子文件,则按照预设分片传输策略将所述数据升级文件包含的部分数据子文件向所述目标设备发送。可以理解,升级控制设备按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件向所述目标设备发送,可以为升级控制设备按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件先发送给与目标设备通讯连接的网关等设备,再由与目标设备通讯连接的网关等设备将数据升级文件包含的部分或全部数据子文件发送给目标设备。
86.需要说明的是,若所述上一次数据升级的版本信息与所述数据升级文件对应的版本信息相同,则所述上一次数据升级的数据升级文件与所述数据升级文件的大小相同,且包含的数据子文件也对应相同。所述数据升级文件可为升级控制设备从云端服务器下载的,具体地,升级控制设备从云端服务器下载数据升级文件的压缩包后,解压所述压缩包,获得对应的数据升级文件,而所述数据升级文件包含已分割好的多个数据子文件,每个数据子文件对应目标设备的一个功能模块。所述预设分片传输策略可以根据实际情况需要进行设置,具体可以设置为将每个数据子文件分割为多个分片,依次传输所述分片等。此外,升级控制设备在向目标设备发送任一数据子文件之前,可先将该数据子文件的名称、大小等信息发送给目标设备,以告知目标设备接下来将要传输的数据子文件信息,并在接收到目标设备返回的开始发送信号后,再按照预设分片传输策略将该数据子文件向所述目标设
备发送。同时,升级控制设备在接收到目标设备发送的进入升级状态消息后,将断开与所述目标设备之间的通信连接,以避免干扰目标设备的数据升级。
87.本技术上述实施例中,升级控制设备发送用于请求查询目标设备的上一次数据升级状态的查询请求,接收返回的上一次数据升级状态信息,并基于目标设备的上一次数据升级状态信息,按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件向目标设备发送,以使目标设备基于所述部分或全部数据子文件进行数据升级,如此,根据目标设备的上一次数据升级状态信息,确定需要向目标设备发送的数据子文件,并按照预设分片传输策略将对应的数据子文件向目标设备发送,使得在目标设备上一次数据升级过程中存在传输中断时,当前数据升级无需重新传输所有文件,提高了数据升级的灵活性和效率。
88.在一些实施例中,所述按照预设分片传输策略将所述数据升级文件包含的部分数据子文件向所述目标设备发送之前,还包括:
89.升级控制设备发送文件筛选请求,所述文件筛选请求包括所述数据升级文件包含的全部数据子文件信息;
90.升级控制设备接收文件筛选请求响应信息,所述文件筛选请求响应信息包括待升级的数据子文件信息;
91.升级控制设备将所述待升级的数据子文件确定为需要向所述目标设备发送的所述部分数据子文件。
92.可以理解,升级控制设备上一次对目标设备进行数据升级过程中,对于升级控制设备已传输给目标设备的部分数据子文件,目标设备可能已丢失,因此,为了能够准确获知目标设备进行数据升级所需的文件信息,升级控制设备可向所述目标设备或与所述目标设备通讯连接的网关等设备发送包括有所述数据升级文件包含的全部数据子文件信息的文件筛选请求,并接收所述目标设备或与目标设备通讯连接的网关等设备返回的包括有待升级的数据子文件信息的文件筛选请求响应信息,进而将所述待升级的数据子文件确定为需要向所述目标设备发送的所述部分数据子文件。其中,所述全部数据子文件信息可以包括所有数据子文件的数量、各数据子文件的名称和名称长度、各数据子文件的大小等。如此,升级控制设备查询数据升级所需的数据子文件,确保通过向目标设备发送的数据子文件能够使目标设备成功进行数据升级,并尽量减少数据传输量,提高了数据升级的准确度和效率。
93.在一些实施例中,所述按照预设分片传输策略将所述数据升级文件包含的部分数据子文件向所述目标设备发送之前,还包括:升级控制设备基于所述上一次数据升级状态信息,确定待升级的数据子文件信息;升级控制设备将所述待升级的数据子文件确定为需要向所述目标设备发送的所述部分数据子文件。可以理解,升级控制设备上一次对目标设备进行数据升级过程中,对于升级控制设备已传输给目标设备的部分数据子文件,若目标设备已经存储好这些数据子文件,而未丢失这些数据子文件,则可基于所述上一次数据升级状态信息,将所述数据升级文件中未传输完成的数据子文件作为待升级的数据子文件,进而将所述待升级的数据子文件确定为需要向所述目标设备发送的所述部分数据子文件。如此,升级控制设备通过目标设备的上一次数据升级状态信息确定当前数据升级所需的数据子文件,提高了数据升级的效率和灵活性。
94.在一些实施例中,所述预设分片传输策略,包括:
95.升级控制设备对于当前待发送的目标数据子文件,根据所述上一次数据升级状态信息从所述目标数据子文件对应的至少一分片中确定初始分片;其中,所述至少一分片是按照预设分片值依次对所述目标数据子文件进行排序分片获得的;所述目标数据子文件为所述部分或全部数据子文件中的任一数据子文件;
96.升级控制设备按照预设规则将所述初始分片和所述目标数据子文件包含的位于所述初始分片之后的分片依次向所述目标设备发送。
97.其中,所述目标数据子文件可以为需要向目标设备发送的任一数据子文件,对于需要向所述目标设备发送的数据子文件,可以根据每个数据子文件的位置或顺序,依次将每个数据子文件作为所述目标数据子文件。对于所述目标数据子文件,可以按照预设分片值依次对所述目标数据子文件进行排序分片,获得所述目标数据子文件对应的至少一分片,最后一个分片的大小可能小于或等于预设分片值,而所述最后一个分片之前的分片的大小等于预设分片值。根据所述上一次数据升级状态信息的不同,从所述目标数据子文件对应的至少一分片中确定的初始分片也可相应不同。在一些实施例中,所述根据所述上一次数据升级状态信息从所述目标数据子文件对应的至少一分片中确定初始分片,包括以下至少一种:若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息或所述目标数据子文件为上一次数据升级未传输的数据子文件,则将所述目标数据子文件的第一个分片确定为初始分片;若所述目标数据子文件包含上一次数据升级传输中断的分片标识,则将所述目标数据子文件包含的与所述分片标识对应的分片确定为初始分片。
98.可以理解,若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息,说明需要将整个所述目标数据子文件都发送给所述目标设备,则所述初始分片为所述目标数据子文件的第一个分片。若在上一次数据升级时所述目标数据子文件未开始传输,则需要将所述目标数据子文件包含的所有分片发送给所述目标设备,相应的,所述初始分片为所述目标数据子文件的第一个分片。若在上一次数据升级时所述目标数据子文件已传输部分,则可只需要将所述目标数据子文件包含的部分分片发送给所述目标设备,相应的,所述初始分片为所述目标数据子文件包含的与所述分片标识对应的分片。其中,所述预设规则可以根据实际情况需要进行设置,比如,在对一分片传输完成后进行完整性校验,若校验通过,则继续传输下一分片等。
99.需要说明的是,升级控制设备在发送完成一个数据子文件后,可等待接收目标设备或与所述目标设备通讯连接的网关等设备发送的文件接收反馈信息,所述文件接收反馈信息用于指示升级控制设备是否进入下一个数据子文件的发送或者是否接收到所有数据子文件,升级控制设备相应根据所述文件接收反馈信息进入下一个数据子文件的发送流程或者结束传输。如此,通过将数据子文件以分片方式进行传输,便于实时对传输的数据进行校验,进一步提高了数据升级的效率和准确性。
100.在一些实施例中,所述按照预设规则将所述初始分片和所述目标数据子文件包含的位于所述初始分片之后的分片依次向所述目标设备发送,包括:
101.对于当前待发送的目标分片,升级控制设备根据所述目标设备的传输能力信息,对所述目标分片进行排序分割,获得所述目标分片的至少一数据碎片;所述目标分片为所述初始分片和位于所述初始分片之后的分片中的任一分片;
102.升级控制设备将所述目标分片的各所述数据碎片和对应的数据碎片标识依次向
所述目标设备发送。
103.可以理解,所述目标分片可以为需要向目标设备发送的所述目标数据子文件包含的任一分片,对于需要向所述目标设备发送的所述目标数据子文件包含的至少一分片,可以根据每个分片的位置或顺序,依次将每个分片作为所述目标分片。对于所述目标分片,可以根据所述目标设备的传输能力信息或者所述目标设备与所述升级控制设备之间的传输能力信息依次对所述目标分片进行排序分割,获得所述目标分片对应的至少一数据碎片。在一些实施例中,所述根据所述目标设备的传输能力信息,对所述目标分片进行排序分割,获得所述目标分片的至少一数据碎片之前,还可包括:升级控制设备发送传输能力查询指令,并接收返回的所述传输能力信息。其中,所述传输能力信息可以为所述目标设备与所述升级控制设备之间的最大传输单元。
104.其中,为了方便目标设备能够实时获知数据碎片发送的进度,即当前发送的数据碎片是所述目标分片的第几个数据碎片,升级控制设备可将一数据碎片和该数据碎片对应的数据碎片标识同时向目标设备发送。升级控制设备根据所述目标设备与所述升级控制设备之间的传输能力信息对所述目标分片进行排序分割,可以结合各数据碎片对应的数据碎片标识的大小,对所述目标分片进行排序分割。以所述目标设备与所述升级控制设备之间的传输能力信息为最大传输单元mtu为例,若一数据碎片标识的大小为1字节,则可按照mtu-1字节大小对所述目标分片进行排序分割,以将所述目标分片分割为多个mtu-1字节大小的数据碎片。需要说明的是,所述目标分片的最后一个数据碎片的大小可能与其它数据碎片的大小不相同。此外,所述目标分片的最后一个数据碎片对应的数据碎片标识可以采用特定字符,以更加便于所述目标设备获知数据碎片发送的进度。如此,通过将分片以数据碎片的方式进行传输,进一步提高了数据升级的效率和灵活性。
105.在一些实施例中,所述将所述目标分片的各所述数据碎片和对应的数据碎片标识依次向所述目标设备发送之前,还包括:
106.升级控制设备发送所述目标分片对应的分片标识、数据长度和校验信息;
107.所述按照预设规则将所述初始分片和所述目标数据子文件包含的位于所述初始分片之后的分片依次向所述目标设备发送,还包括:
108.升级控制设备响应于发送完成所述目标分片后的预设时长内未接收到所述目标设备发送的校验响应信息,或根据所述目标设备发送的校验响应信息确定所述目标设备接收所述目标分片失败,重新发送所述目标分片。
109.其中,所述升级控制设备在将所述目标分片的各所述数据碎片和对应的数据碎片标识依次向所述目标设备发送之前,可向所述目标设备或与所述目标设备通讯连接的网关等设备发送所述目标分片对应的分片标识、数据长度和校验信息,以在所述目标设备或与所述目标设备通讯连接的网关等设备接收到所述目标分片后,基于所述目标分片对应的分片标识、数据长度和校验信息对接收的所述目标分片进行完整性校验。升级控制设备在发送完成所述目标分片后,可以开始计时,以检测在预设时长内未接收到所述目标设备发送的校验响应信息。若升级控制设备在发送完成所述目标分片后的预设时长内未接收到所述目标设备或与所述目标设备通讯连接的网关等设备发送的校验响应信息,或根据所述目标设备或与所述目标设备通讯连接的网关等设备发送的校验响应信息确定所述目标设备接收所述目标分片失败,则重新发送所述目标分片。若升级控制设备在发送完成所述目标分
片后的预设时长内接收到所述目标设备或与所述目标设备通讯连接的网关等设备发送的校验响应信息,且根据所述校验响应信息确定所述目标设备接收所述目标分片成功,则继续发送下一个分片。需要说明的是,所述校验信息可以为预设校验码等。如此,通过分片校验,以在任一分片传输失败时重新传输,提高了数据升级的准确性和效率。
110.在一些实施例中,所述升级控制设备发送查询请求之前,还包括:升级控制设备向所述目标设备发送退出上一次数据升级指令。
111.其中,所述退出上一次数据升级指令用于指示所述目标设备对升级状态进行初始化,以清除与当前数据升级无关的信息和状态等。可以理解,为了防止目标设备出现的异常现象,比如在上一次数据升级过程中升级控制设备与目标设备之间的蓝牙连接断开,而此时目标设备还在等待升级控制设备发送信息等,升级控制设备可先向所述目标设备发送退出上一次数据升级指令,以退出上一次数据升级的操作,确保所述目标设备能够准确执行当前的数据升级处理,提高了数据升级的准确性和效率。
112.请参阅图3,为本技术一实施例提供的一种数据升级方法,可应用于图1所示的目标设备2,所述数据升级方法包括以下步骤:
113.步骤s201,目标设备接收查询请求,所述查询请求用于请求查询所述目标设备的上一次数据升级状态。
114.其中,目标设备为需要进行数据升级的设备,具体可以为智能门锁、智能打印机、智能传真机、智能摄像机、智能空调等。目标设备可预先建立与升级控制设备之间的通信连接,比如蓝牙连接等,并基于所述通信连接接收升级控制设备发送用于请求查询所述目标设备的上一次数据升级状态的查询请求。。在一些实施例中,目标设备接收查询请求,可以为目标设备接收与所述目标设备通讯连接的网关等设备发送的查询请求,其中,所述查询请求可以为升级控制设备发送给与所述目标设备通讯连接的网关等设备的。在一些实施例中,目标设备接收查询请求之前,还可包括:目标设备接收发送的数据版本信息查询指令,并向升级控制设备发送当前数据版本信息。需要说明的是,所述目标设备向升级控制设备发送的当前数据版本信息为目标设备当前数据对应的版本信息。版本信息可以是版本更新时间、版本号等。例如,假设目标设备当前数据对应的版本号为a,且采用版本号为b的数据升级文件对目标设备当前数据进行升级,若升级成功,则目标设备当前数据对应的版本号将变为b;若升级失败,则目标设备当前数据对应的版本号仍为a。如此,目标设备通过将自身的当前数据版本信息告知升级控制设备,方便升级控制设备判断是否需要对目标设备的数据进行升级,可有效节省资源,并提高数据升级效率。
115.步骤s203,目标设备响应所述查询请求,发送上一次数据升级状态信息。
116.其中,所述上一次数据升级状态信息用于表征目标设备上一次数据升级是否成功、版本信息等信息。可选地,所述上一次数据升级状态信息可包括上一次数据升级的版本信息、和/或用于指示上一次数据升级是否存在断点信息的指示信息,所述指示信息可包括但不限于上一次数据升级的所有数据子文件名称、各数据子文件对应的传输状态以及已传输完成的分片标识。所述分片标识用于对分片身份进行标识,比如可以为数字、字母等。需要说明的是,若所述查询请求是升级控制设备通过与所述目标设备通讯连接的网关等设备发送给目标设备的,则目标设备可向与所述目标设备通讯连接的网关等设备发送上一次数据升级状态信息,以由与所述目标设备通讯连接的网关等设备将上一次数据升级状态信息
向升级控制设备发送。
117.步骤s205,目标设备获取升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件,以基于所述部分或全部数据子文件进行数据升级。
118.其中,所述数据升级文件包含已分割好的多个数据子文件,每个数据子文件对应目标设备的一个功能模块。目标设备在获取所述升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件之前,还可包括:接收升级控制设备发送的待发送的数据子文件的名称、大小等信息,向升级控制设备发送开始发送信号。同时,目标设备在接收完成升级控制设备发送的数据子文件之后,可向升级控制设备发送进入升级状态消息,以断开与所述升级控制设备之间的通信连接。
119.上述数据升级方法中,目标设备接收用于请求查询目标设备的上一次数据升级状态的查询请求,向升级控制设备发送上一次数据升级状态信息,并接收升级控制设备基于目标设备的上一次数据升级状态信息,按照预设分片传输策略发送的数据升级文件包含的部分或全部数据子文件,以基于所述部分或全部数据子文件进行数据升级,如此,根据目标设备的上一次数据升级状态信息,确定需要向目标设备发送的数据子文件,使得在目标设备上一次数据升级过程中存在传输中断时,当前数据升级无需重新传输所有文件,提高了数据升级的灵活性和效率。
120.在一些实施例中,所述获取升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件,以基于所述部分或全部数据子文件进行数据升级之前,还包括:
121.目标设备接收文件筛选请求,所述文件筛选请求包括所述数据升级文件包含的全部数据子文件信息;
122.目标设备根据所述全部数据子文件信息确定待升级的数据子文件信息,并发送文件筛选请求响应信息,所述文件筛选请求响应信息包括待升级的数据子文件信息。
123.可以理解,升级控制设备上一次对目标设备进行数据升级过程中,对于升级控制设备已传输给目标设备的部分数据子文件,目标设备可能已丢失,因此,为了能够准确获知目标设备进行数据升级所需的文件信息,升级控制设备可向所述目标设备发送包括有所述数据升级文件包含的全部数据子文件信息的文件筛选请求,目标设备接收到所述文件筛选请求后,可根据所述全部数据子文件信息检查所述目标设备缺少的数据子文件,以确定待升级的数据子文件信息,然后向升级控制设备发送包括有待升级的数据子文件信息的文件筛选请求响应信息。其中,所述全部数据子文件信息可以包括所有数据子文件的数量、各数据子文件的名称和名称长度、各数据子文件的大小等。如此,目标设备根据数据升级文件包含的全部数据子文件信息确定待升级的数据子文件信息,确保向升级控制设备请求发送的数据子文件能够使目标设备成功进行数据升级,提高了数据升级的准确度和效率。
124.在一些实施例中,所述获取升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件,以基于所述部分或全部数据子文件进行数据升级,包括:
125.目标设备接收升级控制设备基于所述上一次数据升级状态信息依次发送的目标数据子文件包含的初始分片和位于所述初始分片之后的分片;其中,所述初始分片和位于
所述初始分片之后的分片是按照预设分片值依次对所述目标数据子文件进行排序分片获得的;所述目标数据子文件为所述部分或全部数据子文件中的任一数据子文件。
126.其中,所述目标数据子文件可以为升级控制设备需要向目标设备发送的任一数据子文件,即任一待升级的数据子文件,对于升级控制设备向所述目标设备发送的数据子文件,可以根据每个数据子文件的位置或顺序,依次将每个数据子文件作为所述目标数据子文件。对于所述目标数据子文件,升级控制设备可以按照预设分片值依次对所述目标数据子文件进行排序分片,获得所述目标数据子文件对应的至少一分片,最后一个分片的大小可能小于或等于预设分片值,而所述最后一个分片之前的分片的大小等于预设分片值。根据所述上一次数据升级状态信息的不同,升级控制设备从所述目标数据子文件对应的至少一分片中确定的初始分片也可相应不同。在升级控制设备将所述初始分片和所述目标数据子文件包含的位于所述初始分片之后的分片依次向所述目标设备发送时,目标设备相应接收所述升级控制设备依次发送的目标数据子文件包含的初始分片和位于所述初始分片之后的分片,以接收所述升级控制设备发送的目标数据子文件。可以理解,目标设备在接收完成一个数据子文件后,可向升级控制设备发送文件接收反馈信息,所述文件接收反馈信息用于指示升级控制设备是否进入下一个数据子文件的发送或者是否接收到所有数据子文件。如此,通过将数据子文件以分片方式进行传输,便于实时对传输的数据进行校验,进一步提高了数据升级的效率和准确性。
127.在一些实施例中,所述接收所述升级控制设备基于所述上一次数据升级状态信息依次发送的目标数据子文件包含的初始分片和位于所述初始分片之后的分片,包括:
128.目标设备接收升级控制设备基于所述上一次数据升级状态信息依次发送的目标分片的各数据碎片和对应的数据碎片标识;其中,所述目标分片的各数据碎片是根据所述目标设备与所述升级控制设备之间的传输能力信息,对所述目标分片进行排序分割获得的;所述目标分片为所述初始分片和位于所述初始分片之后的分片中的任一分片。
129.可以理解,所述目标分片可以为升级控制设备需要向目标设备发送的所述目标数据子文件包含的任一分片,对于升级控制设备向所述目标设备发送的所述目标数据子文件包含的至少一分片,可以根据每个分片的位置或顺序,依次将每个分片作为所述目标分片。对于所述目标分片,可以根据所述目标设备与所述升级控制设备之间的传输能力信息依次对所述目标分片进行排序分割,获得所述目标分片对应的至少一数据碎片。在升级控制设备将所述目标分片的各数据碎片和对应的数据碎片标识依次向所述目标设备发送时,目标设备相应接收所述升级控制设备依次发送的目标分片的各数据碎片和对应的数据碎片标识,以接收所述升级控制设备发送的目标分片。目标设备可根据数据碎片对应的数据碎片标识,能够实时获知数据碎片发送的进度,即当前发送的数据碎片是所述目标分片的第几个数据碎片。如此,通过将分片以数据碎片的方式进行传输,进一步提高了数据升级的效率和灵活性。
130.在一些实施例中,所述接收所述升级控制设备基于所述上一次数据升级状态信息依次发送的目标数据子文件包含的初始分片和位于所述初始分片之后的分片之前,还包括:
131.目标设备接收所述升级控制设备发送的所述目标分片对应的分片标识、数据长度和校验信息;
132.所述接收所述升级控制设备基于所述上一次数据升级状态信息依次发送的目标数据子文件包含的初始分片和位于所述初始分片之后的分片,还包括:
133.目标设备在接收完成所述目标分片后,基于所述分片标识、所述数据长度和所述校验信息对所述目标分片进行校验,并根据获得的校验结果向所述升级控制设备发送校验响应信息。
134.其中,目标设备在接收所述升级控制设备发送的所述目标分片之前,可接收所述升级控制设备发送的所述目标分片对应的分片标识、数据长度和校验信息,以在收到所述目标分片后,基于所述目标分片对应的分片标识、数据长度和校验信息对接收的所述目标分片进行完整性校验。目标设备在接收完成所述目标分片后,基于所述分片标识、所述数据长度和所述校验信息对所述目标分片进行校验,比如,接收到的目标分片的数据长度与升级控制设备发送的所述数据长度是否一致等,并根据获得的校验结果向所述升级控制设备发送校验响应信息。需要说明的是,所述校验信息可以为预设校验码等,所述校验响应信息用于指示校验是否成功,可包括所述目标分片对应的分片标识、校验状态码等。如此,通过分片校验,以在任一分片传输失败时重新传输,提高了数据升级的准确性和效率。
135.在一些实施例中,所述接收查询请求之前,还包括:
136.目标设备接收所述升级控制设备发送的退出上一次数据升级指令;
137.目标设备响应所述退出上一次数据升级指令,初始化升级状态。
138.其中,所述退出上一次数据升级指令用于指示所述目标设备对升级状态进行初始化,以清除与当前数据升级无关的信息和状态等。可以理解,为了防止目标设备出现的异常现象,比如在上一次数据升级过程中升级控制设备与目标设备之间的蓝牙连接断开,而此时目标设备还在等待升级控制设备发送信息等,升级控制设备可先向所述目标设备发送退出上一次数据升级指令,所述目标设备接收所述退出上一次数据升级指令以退出上一次数据升级的操作,确保所述目标设备能够准确执行当前的数据升级处理,提高了数据升级的准确性和效率。
139.在一些实施例中,所述方法应用于目标设备,所述目标设备包括第一控制模块和第二控制模块,所述第二控制模块包括无线通信模块,所述第一控制模块与所述第二控制模块之间有线连接;所述接收升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件,以基于所述部分或全部数据子文件进行数据升级,包括:
140.通过所述无线通信模块接收升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件,以基于所述数据升级文件对所述第二控制模块进行升级补全;以及,
141.通过所述有线连接将所述第一控制模块进行数据升级所需的数据子文件发送给所述第一控制模块,以基于所述数据子文件对所述第一控制模块进行数据升级。
142.其中,所述目标设备的第二控制模块通过无线通信模块如蓝牙无线模块等接收所述升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件后,通过与所述第一控制模块之间的有线连接,将所述第一控制模块进行数据升级所需的数据子文件发送给所述第一控制模块,以使所述第一控制模块基于所述数据子文件进行数据升级。需要说明的是,所述第二控制模块可通过接收到的数据子文件
信息来判断所述第一控制模块进行数据升级所需的数据子文件。需要说明的是,根据目标设备的不同,所述第一控制模块和所述第二控制模块也相应不同,例如,若所述目标设备为门锁,则第一控制模块可为前锁模块,第二控制模块可为后锁模块。如此,第一控制模块与第二控制模块之间可通过有线连接进行数据传输,无需在第一控制模块设置无线通信模块,节省了成本,并降低了设备复杂度。
143.应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
144.在一个实施例中,如图4所示,提供了一种数据升级装置,包括:第一发送模块、第一接收模块和第一处理模块,其中:
145.第一发送模块,用于发送查询请求,所述查询请求用于请求查询目标设备的上一次数据升级状态;
146.第一接收模块,用于接收基于所述查询请求返回的上一次数据升级状态信息;
147.第一处理模块,用于基于所述上一次数据升级状态信息,按照预设分片传输策略将数据升级文件包含的部分或全部数据子文件通过所述第一发送模块向所述目标设备发送。
148.在一些实施例中,所述上一次数据升级状态信息包括上一次数据升级的版本信息和/或用于指示上一次数据升级是否存在断点信息的指示信息;所述第一处理模块,具体用于:
149.若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息,则按照预设分片传输策略将所述数据升级文件包含的全部数据子文件通过所述第一发送模块向所述目标设备发送;
150.若所述上一次数据升级的版本信息与所述数据升级文件对应的版本信息相同且上一次数据升级存在断点信息,则按照预设分片传输策略将所述数据升级文件包含的部分数据子文件通过所述第一发送模块向所述目标设备发送。
151.在一些实施例中,
152.第一发送模块,还用于发送文件筛选请求,所述文件筛选请求包括所述数据升级文件包含的全部数据子文件信息;
153.第一接收模块,还用于接收文件筛选请求响应信息,所述文件筛选请求响应信息包括待升级的数据子文件信息;
154.第一处理模块,还用于将所述待升级的数据子文件确定为需要向所述目标设备发送的所述部分数据子文件。
155.在一些实施例中,所述第一处理模块,具体用于:
156.对于当前待发送的目标数据子文件,根据所述上一次数据升级状态信息从所述目标数据子文件对应的至少一分片中确定初始分片;其中,所述至少一分片是按照预设分片
值依次对所述目标数据子文件进行排序分片获得的;所述目标数据子文件为所述部分或全部数据子文件中的任一数据子文件;
157.按照预设规则将所述初始分片和所述目标数据子文件包含的位于所述初始分片之后的分片通过所述第一发送模块依次向所述目标设备发送。
158.在一些实施例中,所述第一处理模块,具体用于:
159.若所述上一次数据升级的版本信息早于所述数据升级文件对应的版本信息或所述目标数据子文件为上一次数据升级未传输的数据子文件,则将所述目标数据子文件的第一个分片确定为初始分片;
160.若所述目标数据子文件包含上一次数据升级传输中断的分片标识,则将所述目标数据子文件包含的与所述分片标识对应的分片确定为初始分片。
161.在一些实施例中,所述第一处理模块,具体用于:
162.对于当前待发送的目标分片,根据所述目标设备的传输能力信息,对所述目标分片进行排序分割,获得所述目标分片的至少一数据碎片;所述目标分片为所述初始分片和位于所述初始分片之后的分片中的任一分片;
163.将所述目标分片的各所述数据碎片和对应的数据碎片标识依次向所述目标设备发送。
164.在一些实施例中,
165.第一发送模块,还用于发送所述目标分片对应的分片标识、数据长度和校验信息;
166.第一处理模块,还用于响应于发送完成所述目标分片后的预设时长内未接收到所述目标设备发送的校验响应信息,或根据所述目标设备发送的校验响应信息确定所述目标设备接收所述目标分片失败,通过第一发送模块重新发送所述目标分片。
167.在一些实施例中,
168.第一发送模块,还用于向所述目标设备发送退出上一次数据升级指令。
169.关于数据升级装置的具体限定可以参见上文中对于数据升级方法的限定,在此不再赘述。上述数据升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
170.在一个实施例中,如图5所示,提供了一种数据升级装置,应用于目标设备,包括:第二接收模块、第二发送模块和第二处理模块,其中:
171.第二接收模块,用于接收查询请求,所述查询请求用于请求查询目标设备的上一次数据升级状态;以及接收所述升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件;
172.第二发送模块,用于响应所述查询请求,发送上一次数据升级状态信息;
173.第二处理模块,用于基于所述部分或全部数据子文件进行数据升级。
174.在一些实施例中,
175.第二接收模块,还用于接收文件筛选请求,所述文件筛选请求包括所述数据升级文件包含的全部数据子文件信息;
176.第二处理模块,还用于根据所述全部数据子文件信息确定待升级的数据子文件信息;
177.第二发送模块,还用于发送文件筛选请求响应信息,所述文件筛选请求响应信息包括待升级的数据子文件信息。
178.在一些实施例中,第二接收模块,具体用于:
179.接收升级控制设备基于所述上一次数据升级状态信息依次发送的目标数据子文件包含的初始分片和位于所述初始分片之后的分片;其中,所述初始分片和位于所述初始分片之后的分片是按照预设分片值依次对所述目标数据子文件进行排序分片获得的;所述目标数据子文件为所述部分或全部数据子文件中的任一数据子文件。
180.在一些实施例中,第二接收模块,具体用于:
181.接收升级控制设备基于所述上一次数据升级状态信息依次发送的目标分片的各数据碎片和对应的数据碎片标识;其中,所述目标分片的各数据碎片是根据所述目标设备与所述升级控制设备之间的传输能力信息,对所述目标分片进行排序分割获得的;所述目标分片为所述初始分片和位于所述初始分片之后的分片中的任一分片。
182.在一些实施例中,
183.第二接收模块,还用于接收所述升级控制设备发送的所述目标分片对应的分片标识、数据长度和校验信息;
184.第二处理模块,还用于在接收完成所述目标分片后,基于所述分片标识、所述数据长度和所述校验信息对所述目标分片进行校验,并根据获得的校验结果通过第二发送模块向所述升级控制设备发送校验响应信息。
185.在一些实施例中,
186.第二接收模块,还用于接收所述升级控制设备发送的退出上一次数据升级指令;
187.第二处理模块,还用于响应所述退出上一次数据升级指令,初始化升级状态。
188.在一些实施例中,所述数据升级装置还包括第一控制模块和第二控制模块,所述第二控制模块包括无线通信模块,所述第一控制模块与所述第二控制模块之间有线连接;
189.所述第二接收模块,具体用于:通过所述无线通信模块接收升级控制设备基于所述上一次数据升级状态信息对应发送的数据升级文件包含的部分或全部数据子文件;
190.所述第二发送模块,还用于通过所述有线连接将所述第一控制模块进行数据升级所需的数据子文件发送给所述第一控制模块;
191.所述第二处理模块,具体用于:基于所述数据子文件对所述第一控制模块进行数据升级,以及基于所述数据升级文件对所述第二控制模块进行升级。
192.关于数据升级装置的具体限定可以参见上文中对于数据升级方法的限定,在此不再赘述。上述数据升级装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
193.为了能够对本技术实施例提供的数据升级方法具有更系统的理解,下面结合一具体示例进行说明,本示例中以所述升级控制设备为手机、所述目标设备为智能门锁,且所述数据升级文件为固件升级文件,即数据升级为固件升级,固件子文件的格式为bin文件(也可称为bin包)、将固件子文件分片且每个分片的大小为4kb(即4096byte)为例。
194.首先,本技术中的智能门锁需包括以下模块或单元:
195.处理单元,用于数据处理、指令生成等运算逻辑处理;
196.数据通信模块,用于指令和数据的发送和接收;
197.数据存储模块,用于存储处理单元产生的必要数据;
198.计时模块,用于数据通信计时、超时处理等。
199.其次,参阅图6,智能门锁和手机之间通过蓝牙通信的协议需支持:
200.1)智能门锁当前固件版本查询指令:协议中需携带智能门锁用于识别固件版本号的信息。
201.2)上一次固件升级(ota,over the air)状态查询指令(“01”):协议需携带上一次固件升级所有文件的传输情况,包括是否传输完成,传输中断的分片序号。
202.3)设置所有需升级的文件信息指令(“08”):用于告知智能门锁升级过程中涉及的固件升级文件的相关信息,用于信息完整性校验。
203.4)传输每个bin包信息(“09”):用于手机向智能门锁发送文件信息,智能门锁反馈信息等。
204.5)开始单个固件bin文件的升级指令(握手指令“04”):告知智能门锁开始传输某个文件。
205.6)退出上一次固件升级指令(“05”):用于智能门锁退出固件升级,初始化固件升级状态。
206.7)分片包状态上报指令(“fe”):用于告诉手机一个4kb分片数据传输的状态。
207.8)最大传输单元(mtu,maximum transmission unit)协商指令(“0a”):用于获取智能门锁蓝牙通信的最大传输单元。
208.其次,智能门锁已绑定手机中用于门锁升级的app账号。
209.最后,智能门锁已通过蓝牙方式和手机保持连接。
210.本技术实施例提供的数据升级方法主要包括以下过程:
211.1)手机向智能门锁设备发送固件版本号查询指令,智能门锁设备返回给手机app固件版本号信息;
212.2)手机获取云端服务器最新固件版本信息,并和智能门锁返回的固件版本号进行比较,如果服务器侧的版本号大于智能门锁返回的固件版本号,则进入开始升级流程。
213.3)手机通过云端服务器返回的固件版本号信息,下载最新的固件bin文件保存到手机。
214.4)手机向智能门锁发送退出上一次固件升级指令,智能门锁收到该指令后将升级状态初始化,清除与本次升级无关的信息和状态。
215.5)手机向智能门锁发送获取最大传输单元mtu的请求,智能门锁返回给手机app对应的最大传输单元mtu。
216.6)手机向智能门锁发送查询上一次固件升级状态的请求,以获取上一次固件升级断点状态信息,智能门锁将固件升级状态信息返回给手机,其中,协议定义包含的返回信息应该包括:上一次固件升级的版本号;上一次固件升级的所有文件名,对应文件传输状态(状态需表明是否传输完成),对应文件已传输完成的分片序号x。这里,如果返回的上一次固件升级的版本号和本次固件升级的版本号不同,则丢弃断点信息。
217.7)手机将下载好的bin文件信息发送给智能门锁,其中,bin文件信息应包含:共有多少个固件文件、各个固件文件的名称、各个固件文件名称长度、各个固件文件的大小。智
能门锁收到该bin文件信息之后,从中筛选出所需要升级的固件文件信息,对于已传输完成的固件文件,可以不在返回的信息中。手机通过返回的bin文件信息,从已下载解压好的文件中筛选出需要发送的bin文件。
218.8)手机将需要传输的第一个bin文件读取,将该文件名和文件大小发送至智能门锁,告知智能门锁接下来传输的文件名和文件大小,智能门锁接收信息之后反馈手机一个开始发送信号,告知手机开始发送。
219.请参阅图7,为固件bin文件传输的流程示意图,包括以下步骤:
220.步骤s301,向智能门锁发送当前发送的bin文件信息。
221.步骤s302,接收智能门锁发送的开始发送信号。
222.步骤s303,检测当前发送的bin文件是否有断点信息,若是,则执行步骤s305,否则执行步骤s304。
223.这里,手机可根据获取的上一次固件升级状态信息,检测当前发送的bin文件是否有断点信息,若是,则执行步骤s305,否则执行步骤s304。
224.步骤s304,设置当前bin文件中待发送的4k包序号n为1。
225.步骤s305,设置当前bin文件中待发送的4k包序号n为x+1。
226.其中,x表示已传输完成的分片序号,即上一次数据升级传输中断时最后一个传输完成的4k包序号。
227.步骤s306,向智能门锁发送第n个4k包的数据头。
228.这里,手机获取第n个4k包即数据分片,向智能门锁发送分片数据头,数据头携带分片序号n,数据长度4k,以及该数据分片的数据完整性crc校验码。
229.步骤s307,向智能门锁依次发送第n个4k包中的第一个mtu和最后一个mtu。
230.这里,为方便智能门锁知晓数据碎片即mtu发送的进度(即当前mtu是此4k包的第几个mtu),每次发送数据的头部需带上当前数据碎片的序号,序号占用一个byte的大小。手机将本次4k数据按照mtu-1的大小进行再细分,每次发送数据的大小为一个mtu(序号长度+数据长度),如果当前数据碎片的序号是本次发送4k包的最后一个数据碎片,则序号设为特定的“ff”。
231.步骤s308,检测是否接收到针对第n个4k包的回复信息,若是,则执行步骤s309,否则执行步骤s307。
232.这里,手机在一个4k数据分片发送完成之后,智能门锁端使用分片数据头中的crc校验码对此次接收到的4k数据进行完整性校验。手机等待智能门锁回复,此回复可设置预定时间t,如果超过该预定时间,可从第一个mtu继续发送,直到智能门锁回复为止。如果收到本次4k数据的回复信息,智能门锁回复的数据应该携带如下信息:接受4k数据的序号,接受4k数据的状态码。
233.步骤s309,检测智能门锁是否成功接收第n个4k包,若是,则执行步骤s310,否则执行步骤s306。
234.具体地,根据所述回复信息检测智能门锁是否成功接收第n个4k包,若是,则执行步骤s310,否则执行步骤s306。如果回复的状态码为失败,则再次进入发送4k包的流程,4k包序号不变。如果回复的状态码为成功,则执行步骤s310。
235.步骤s310,检测当前bin文件是否传输完成,若是,则执行步骤s311,否则执行步骤
s312。
236.这里,手机判断是否已发送当前bin文件的最后一个4k包,若是,则执行步骤s311,否则执行步骤s312。
237.步骤s311,检测当前bin文件是否为最后一个bin文件,若是,则执行步骤s315,否则执行步骤s301。
238.步骤s312,检测是否传输最后一个4k包,若是,则执行步骤s313,否则执行步骤s314。
239.步骤s313,设置4k包序号n为“ff”。
240.这里,如果分片是最后一个分片,则数据分片序号设为“ff”,数据长度为剩余数据的长度(最后一个分片的大小可能会出现不足4k的情况)。
241.步骤s314,将4k包序号n加1。
242.这里,如果已发送最后一个4k包,智能门锁需向手机回复当前bin文件接收的状态“89”,回复状态需携带是否进入下一个文件发送,或者是否收到所有文件的信息。在接受到指令“89”信号回复之后,进入下一个bin文件发送流程,或者结束传输。
243.步骤s315,结束传输。
244.在一些实施例中,智能门锁的通信模块收到最后一个4k包之后,处理器单元将所有4k数据分片按发送顺序拼接即可形成原始bin文件。
245.在一些实施例中,智能门锁的后锁模块一般设有蓝牙通讯模块,手机将智能门锁的所有固件升级文件都发送给后锁模块,后锁模块再根据收到的固件升级文件的文件名来区分哪些文件是前锁模块的,然后将属于前锁模块的升级文件通过前后锁之间的数据连接线发送至前锁模块。
246.在一些实施例中,在所有bin文件传输完成之后,智能门锁进入准备升级的流程,此时手机可相应提示,智能门锁升级还需要一段时间,以提示用户耐心等待。智能门锁准备完成之后,向手机发送一个信号,以告诉手机此时智能门锁进入升级过程,此时智能门锁相应的会断开蓝牙连接,等待智能门锁升级完成,和手机重新建立蓝牙连接,则本次升级流程结束。
247.如此,上述实施例提供的数据升级方法中,使用多个bin文件,对于每一个不同的模块都对应一个bin文件,手机在从服务器下载最新固件压缩包之后,手机在对其解压后,将多个bin文件依次发送给门锁设备端,而在发送每一个bin文件时,将细分成多个片段,对于每个片段,门锁设备端都需要进行校验,校验通过之后则继续发送下一个片段。如果当前片段的完整性校验不通过,则要求手机设备端重新发送该片段。如此,优化解决了多模块的智能门锁升级传输过程中的异常问题,文件传输不再是一个整体传输,取而代之的是分片传输,如果其中一个分片传输失败,可以针对该分片重传。同时,如果在传输过程中蓝牙断开,可以在上一次的传输基础上继续发送数据。
248.在一个实施例中,提供了一种电子设备,其内部结构图可以如图8所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端
通过网络连接通信。该计算机程序被处理器执行时以实现一种数据升级方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
249.本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
250.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述数据升级方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。
251.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
252.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
253.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1