自动驾驶软件同步方法、装置、存储介质及计算机设备与流程

文档序号:32222709发布日期:2022-11-16 11:34阅读:48来源:国知局
自动驾驶软件同步方法、装置、存储介质及计算机设备与流程

1.本技术涉及自动驾驶技术领域,尤其涉及一种自动驾驶软件同步方法、装置、存储介质及计算机设备。


背景技术:

2.自动驾驶车辆根据执行的任务不同,需要下载不同版本的自动驾驶软件,或是自动驾驶软件进行了版本更新,也需要进行下载。
3.但自动驾驶软件的体积比较大,通常为几十个gb,特别是需要使用测试车辆进行测试的版本,经常需要大规模更新,而且下载软件的频率较高,需要消耗大量的网络资源和计算资源,所需时间较长,不利于向车端高效分发自动驾驶软件。


技术实现要素:

4.本技术实施例提供了一种自动驾驶软件同步方法、装置、存储介质及计算机设备,能够节省自动驾驶软件分发至车辆所需的网络资源和计算资源,提高分发效率。
5.第一方面,本技术提供了一种自动驾驶软件同步方法,应用于自动驾驶车辆,所述方法包括:
6.根据目标版本软件的版本信息获取所述目标版本软件的元数据;所述元数据包括所述目标版本软件中每个文件的文件名、文件指纹及其在分布式存储系统的存储路径;
7.遍历本地目标目录中的每个文件得到结果文件;其中,所述本地目标目录用于存储自动驾驶软件的全部文件,所述结果文件包括所述自动驾驶软件的每个文件的文件指纹及文件更新时间;
8.比较结果文件中每个文件的文件指纹与所述元数据中每个文件的文件指纹,确定待下载文件及待删除文件;
9.根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从存储所述目标版本软件的分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
10.基于每个待下载文件的下载链接下载对应的待下载文件至所述本地目标目录,并将每个待下载文件的文件指纹和文件更新时间增加至所述结果文件;
11.删除所述本地目标目录中的各待删除文件及每个待删除文件在所述结果文件中的记录。
12.在其中一个实施例中,所述根据目标版本软件的版本信息获取所述目标版本软件的元数据,包括:
13.根据所述版本信息及预设的元数据文件名生成加载路径;
14.根据所述加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
15.在其中一个实施例中,所述遍历本地目标目录中的每个文件更新结果文件,包括:
16.获取所述本地目标目录中的任一文件的文件更新时间;
17.将所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间进行比较;
18.若所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间不一致,则计算所述文件的文件指纹;
19.将所述文件的文件指纹和文件更新时间更新至结果文件。
20.在其中一个实施例中,所述比较所述结果文件中每个文件的文件指纹与所述元数据中每个文件的文件指纹,确定待下载文件及待删除文件,包括:
21.若所述元数据的任一文件指纹在所述结果文件中没有记录,则将所述结果文件中没有记录的文件指纹对应的文件确定为待下载文件;
22.若所述结果文件中的任一文件指纹在所述元数据中没有记录,则将所述元数据中没有记录的文件指纹对应的文件其确定为待删除文件。
23.在其中一个实施例中,所述目标版本软件中每个文件在所述分布式存储系统中的存储路径根据每个文件的文件指纹创建。
24.在其中一个实施例中,执行所述根据目标版本软件的版本信息获取所述目标版本软件的元数据之前,还包括:
25.获取车辆运行任务;
26.根据所述车辆运行任务获取所述目标版本软件的版本信息。
27.在其中一个实施例中,所述分布式存储系统为对象存储系统,所述分布式缓存系统为web缓存系统。
28.第二方面,本技术提供了一种自动驾驶软件同步装置,应用于自动驾驶车辆,所述装置包括:
29.元数据获取模块,用于根据目标版本软件的版本信息获取所述目标版本软件的元数据;所述元数据包括所述目标版本软件中每个文件的文件名、文件指纹及其在分布式存储系统的存储路径;
30.结果文件更新模块,用于遍历本地目标目录中的每个文件得到结果文件;其中,所述本地目标目录用于存储自动驾驶软件的全部文件,所述结果文件包括所述自动驾驶软件的每个文件的文件指纹及文件更新时间;
31.确定模块,用于比较所述结果文件中每个文件的文件指纹与所述元数据中每个文件的文件指纹,确定待下载文件及待删除文件;
32.下载链接创建模块,用于根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从存储所述目标版本软件的分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
33.文件下载模块,用于基于每个待下载文件的下载链接下载对应的待下载文件至所述本地目标目录,并将每个待下载文件的文件指纹和文件更新时间增加至所述结果文件;
34.文件删除模块,用于删除所述本地目标目录中的各待删除文件及每个待删除文件在所述结果文件中的记录。
35.第三方面,本技术提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述任一
项实施例所述的自动驾驶软件同步方法的步骤。
36.第四方面,本技术提供了一种计算机设备,包括:一个或多个处理器,以及存储器;
37.所述存储器中存储有计算机可读指令,所述一个或多个处理器执行时所述计算机可读指令时,执行如上述任一项实施例所述的自动驾驶软件同步方法的步骤。
38.从以上技术方案可以看出,本技术实施例具有以下优点:
39.本技术提供的自动驾驶软件同步方法、装置、存储介质及计算机设备,应用于自动驾驶车辆,根据所要获取的目标版本软件的版本信息获取目标版本软件的元数据,元数据包括目标版本软件中每个文件的文件名、文件指纹及其在分布式存储系统的存储路径;遍历用于存储自动驾驶软件各文件的本地目标目录中的每个文件得到结果文件,即获得一份包含了当前存储的每个文件的文件指纹及文件更新时间的记录文件,将结果文件中每个文件的文件指纹与元数据中每个文件的文件指纹进行比较,确定待下载文件及待删除文件,根据每个待下载文件的文件名、文件指纹及存储路径,创建用于从存储目标版本软件的分布式存储系统或与分布式存储系统连接的分布式缓存系统下载对应的待下载文件的下载链接,基于下载链接将待下载文件下载至本地目标目录,并将每个待下载文件的文件指纹和文件更新时间增加至结果文件,减少下载体量,另外将本地目标目录中的待删除文件以及其在结果文件的记录均删除,在车端只需要对本地的文件进行指纹计算,而目标版本软件的指纹计算在云端完成,车端直接获取元数据进行比对确定本次同步新版本软件需要下载的和需要删除的文件即可,无需读入目标版本软件的所有文件进行计算和比对,节省自动驾驶软件分发至车辆所需的网络资源和计算资源,提高分发效率。
附图说明
40.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
41.图1为一个实施例中,自动驾驶软件同步方法的应用环境图;
42.图2为一个实施例中,自动驾驶软件同步方法的流程图;
43.图3为一个实施例中,根据目标版本软件的版本信息获取目标版本软件的元数据步骤的流程图;
44.图4为一个实施例中,遍历本地目标目录中的每个文件更新结果文件步骤的流程图;
45.图5为一个实施例中,自动驾驶软件同步装置的结构框图;
46.图6为一个实施例中,计算机设备的内部结构图。
具体实施方式
47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
48.图1为一个实施例中自动驾驶软件升级方法的应用环境示意图。如图1所示,该应用环境包括自动驾驶车辆101和自动驾驶云平台的服务器102。其中,自动驾驶车辆101通过网络与服务器102进行通信。分布式存储系统可以存储服务器102需要处理的数据。在编译完成一个自动驾驶软件后,计算自动驾驶软件中的每个文件的内容生成每个文件的文件指纹,将每个文件存储至分布式存储系统,完成后生成自动驾驶软件的元数据,元数据包括每个文件的文件名、文件更新时间、文件指纹及其在分布式存储系统的存储路径。自动驾驶车辆在要进行软件同步时,从分布式存储系统或与分布式存储系统连接的分布式缓存系统下载升级所需的文件。其中,服务器102可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
49.如图2所示,本技术实施例提供了一种自动驾驶软件同步方法,应用于自动驾驶车辆,所述方法包括步骤s201-s206,其中:
50.步骤s201,根据目标版本软件的版本信息获取目标版本软件的元数据。
51.其中,元数据包括目标版本软件中每个文件的文件名、文件指纹及其在分布式存储系统的存储路径。版本信息包括目标版本软件的版本号,版本号与元数据相关联,通过版本号可以获取元数据。目标版本软件中各文件的文件指纹为自动驾驶软件云平台对文件内容进行计算得到的,可以采用md5算法(message-digest algorithm,信息摘要算法)、sha256算法(secure hash algorithm 256,安全散列256算法)、crc算法(cyclic redundancy check,循环冗余校验算法)计算文件指纹,不需要自动驾驶车辆在同步时读入新版软件进行计算,车端直接获取元数据即可。
52.在其中一个实施例中,分布式存储系统为对象存储系统、数据库或文件存储系统。
53.在其中一个实施例中,目标版本软件中每个文件在分布式存储系统中的存储路径根据每个文件的文件指纹创建,使存储路径与文件指纹关联,便于定位目标文件。
54.步骤s202,遍历本地目标目录中的每个文件得到结果文件。
55.其中,本地目标目录用于存储自动驾驶软件的全部文件,结果文件包括自动驾驶软件的每个文件的文件指纹及文件更新时间。
56.由于对于个别自动驾驶车辆可能因人为操作修改了某些文件,为了保证结果文件能够反映同步时本地目标目录中的文件相关信息,因此无论之前是否有生成过结果文件,都需要遍历每个文件得到最新的结果文件。
57.步骤s203,比较结果文件中每个文件的文件指纹与元数据中每个文件的文件指纹,确定待下载文件及待删除文件。
58.文件指纹是基于文件的内容计算得到的,但相比直接对比文件内容而言,对比文件指纹的运算量大幅减少,通过结果文件中的文件指纹和元数据中的文件指纹,即可确定自动驾驶车辆当前版本的自动驾驶软件与目标版本软件相比所缺少的文件以及多余的文件,缺少的文件即为待下载文件,多余的文件即为待删除文件。
59.在其中一个实施例中,若元数据的任一文件指纹在结果文件中没有记录,则将结果文件中没有记录的文件指纹对应的文件确定为待下载文件;若结果文件中的任一文件指纹在元数据中没有记录,则将元数据中没有记录的文件指纹对应的文件其确定为待删除文件。
60.步骤s204,根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接。
61.在其中一个实施例中,下载链接用于从分布式存储系统下载对应的待下载文件。
62.在其中一个实施例中,在架构中设置有拓扑上更靠近车端的分布式缓存系统时,下载链接用于从与分布式存储系统连接的分布式缓存系统下载对应的待下载文件。分布式缓存系统能够提高对象读取速度,会管理用户要读取的文件,并将最近高频使用的文件加载到分布式缓存系统的内存中,提高读取近期使用率较高文件的速度,对于内存中没有缓存过文件,分布式缓存系统根据下载链接再从分布式存储系统加载。在其中一个实施例中,分布式缓存系统为web缓存系统。
63.步骤s205,基于每个待下载文件的下载链接下载对应的待下载文件至本地目标目录,并将每个待下载文件的文件指纹和文件更新时间增加至结果文件。
64.完成待下载文件的下载后从元数据中获取对应的文件指纹增加至结果文件,并记录文件更新时间至结果文件,后续在同步新版本软件时若文件没有发生更改则无需重复计算文件指纹。
65.步骤s206,删除本地目标目录中的各待删除文件及每个待删除文件在结果文件中的记录。
66.对于目标版本软件中没有的文件则进行删除,释放存储空间,同时删除其在结果文件中的记录。
67.本技术提供的自动驾驶软件同步方法,应用于自动驾驶车辆,根据所要获取的目标版本软件的版本信息获取目标版本软件的元数据,元数据包括目标版本软件中每个文件的文件名、文件指纹及其在分布式存储系统的存储路径;遍历用于存储自动驾驶软件各文件的本地目标目录中的每个文件得到结果文件,即获得一份包含了当前存储的每个文件的文件指纹及文件更新时间的记录文件,将结果文件中每个文件的文件指纹与元数据中每个文件的文件指纹进行比较,确定待下载文件及待删除文件,根据每个待下载文件的文件名、文件指纹及存储路径,创建用于从存储目标版本软件的分布式存储系统或与分布式存储系统连接的分布式缓存系统下载对应的待下载文件的下载链接,基于下载链接将待下载文件下载至本地目标目录,并将每个待下载文件的文件指纹和文件更新时间增加至结果文件,减少下载体量,另外将本地目标目录中的待删除文件以及其在结果文件的记录均删除,在车端只需要对本地的文件进行指纹计算,而目标版本软件的指纹计算在云端完成,车端直接获取元数据进行比对确定本次同步新版本软件需要下载的和需要删除的文件即可,无需读入目标版本软件的所有文件进行计算和比对,节省自动驾驶软件分发至车辆所需的网络资源和计算资源,提高分发效率。
68.如图3所示,在其中一个实施例中,所述根据目标版本软件的版本信息获取目标版本软件的元数据,包括:
69.步骤s301,根据版本信息及预设的元数据文件名生成加载路径。
70.根据预设的规则,任意版本软件的元数据的文件名固定,但在分布式存储系统中存储在不同的路径,元数据在分布式存储系统的相对路径通常为版本号与元数据文件名组合生成,例如,目标版本软件的版本为v,预设的元数据文件名为version.txt,则相对路径为v/version.txt,基于相对路径以及云平台发布的服务器地址生成加载路径,例如https://cache.server.com/v/version.txt。
71.步骤s302,根据加载路径从分布式存储系统或与分布式存储系统连接的分布式缓
存系统加载目标版本软件的元数据。
72.在其中一个实施例中,加载路径用于从分布式存储系统加载元数据。
73.在其中一个实施例中,在架构中设置有拓扑上更靠近车端的分布式缓存系统时,加载路径用于从与分布式存储系统连接的分布式缓存系统下载对应的元数据。分布式缓存系统能够提高对象读取速度,会管理用户要读取的文件,并将最近高频使用的文件加载到分布式缓存系统的内存中,提高读取近期使用率较高文件的速度,对于内存中没有缓存过文件,分布式缓存系统根据加载路径再从分布式存储系统加载。在其中一个实施例中,分布式缓存系统为web缓存系统。
74.如图4所示,在其中一个实施例中,所述遍历本地目标目录中的每个文件更新结果文件,包括:
75.步骤s401,获取本地目标目录中的任一文件的文件更新时间。
76.随机或按循序选择本地目标目录中的一个文件开始遍历,先获取当前选择的文件的文件更新时间。
77.步骤s402,比较所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间是否相同。
78.将当前选择文件的文件更新时间与上一次同步完成后保存的结果文件中记录的该文件的文件更新时间对比是否相同,若相同则表明该文件在此期间没有发生过变动,若不相同则表明该文件有可能发生过变动。
79.步骤s403,若所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间相同,则跳过该文件。
80.对于没有发生过变动的文件则可以跳过,不需要更新其在结果文件中的任何记录。
81.步骤s404,若所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间不一致,则计算所述文件的文件指纹。
82.步骤s405,将所述文件的文件指纹和文件更新时间更新至结果文件。
83.在更新时间不同时,由于存在文件发生过变动的可能性,为了保证目标版本软件同步的可靠性,需要保证结果文件能够真实反映当下的各文件的信息,因此需要计算该文件的文件指纹并更新至结果文件。
84.在其中一个实施例中,若在遍历时中存在结果文件中没有记录的文件,则计算该文件的文件指纹,并将文件指纹及文件更新时间增加至结果文件。
85.在其中一个实施例中,执行所述根据目标版本软件的版本信息获取目标版本软件的元数据之前,还包括:
86.获取车辆运行任务;
87.根据车辆运行任务获取目标版本软件的版本信息。
88.由于自动驾驶软件可能根据车辆所要执行任务的不同,也会存在差异,因此可以在获取到车辆运行任务时,根据车辆运行任务确定需要获取目标版本软件,获取目标版本软件的版本信息,进而进行目标版本软件的同步。
89.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有
明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
90.下面对本技术实施例提供的自动驾驶软件同步装置进行描述,下文描述的自动驾驶软件同步装置与上文描述的自动驾驶软件同步方法可相互对应参照。
91.如图5所示,本技术实施例提供了一种自动驾驶软件同步装置500,应用于自动驾驶车辆,所述装置包括:
92.元数据获取模块501,用于根据目标版本软件的版本信息获取所述目标版本软件的元数据;所述元数据包括所述目标版本软件中每个文件的文件名、文件指纹及其在分布式存储系统的存储路径;
93.结果文件更新模块502,用于遍历本地目标目录中的每个文件得到结果文件;其中,所述本地目标目录用于存储自动驾驶软件的全部文件,所述结果文件包括所述自动驾驶软件的每个文件的文件指纹及文件更新时间;
94.确定模块503,用于比较所述结果文件中每个文件的文件指纹与所述元数据中每个文件的文件指纹,确定待下载文件及待删除文件;
95.下载链接创建模块504,用于根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从存储所述目标版本软件的分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
96.文件下载模块505,用于基于每个待下载文件的下载链接下载对应的待下载文件至所述本地目标目录,并将每个待下载文件的文件指纹和文件更新时间增加至所述结果文件;
97.文件删除模块506,用于删除所述本地目标目录中的各待删除文件及每个待删除文件在所述结果文件中的记录。
98.在其中一个实施例中,元数据获取模块包括:
99.加载路径生成单元,用于根据所述版本信息及预设的元数据文件名生成加载路径;
100.元数据加载单元,用于根据所述加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
101.在其中一个实施例中,结构文件更新模块包括:
102.更新时间获取单元,用于获取所述本地目标目录中的任一文件的文件更新时间;
103.比较单元,用于将所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间进行比较;
104.指纹计算单元,用于在所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间不一致时,则计算所述文件的文件指纹;
105.更新单元,用于将所述文件的文件指纹和文件更新时间更新至结果文件。
106.在其中一个实施例中,确定模块被配置为用于:
107.在所述元数据的任一文件指纹在所述结果文件中没有记录时,则将所述结果文件
中没有记录的文件指纹对应的文件确定为待下载文件;
108.在所述结果文件中的任一文件指纹在所述元数据中没有记录时,则将所述元数据中没有记录的文件指纹对应的文件其确定为待删除文件。
109.在其中一个实施例中,自动驾驶软件同步装置还包括:
110.任务获取模块,用于获取车辆运行任务;
111.版本信息获取模块,用于根据所述车辆运行任务获取所述目标版本软件的版本信息。
112.上述自动驾驶软件同步装置中各个模块的划分仅仅用于举例说明,在其他实施例中,可将自动驾驶软件同步装置按照需要划分为不同的模块,以完成上述自动驾驶软件同步装置的全部或部分功能。上述自动驾驶软件同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
113.在一个实施例中,本技术还提供了一种存储介质,所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:
114.根据目标版本软件的版本信息获取所述目标版本软件的元数据;所述元数据包括所述目标版本软件中每个文件的文件名、文件指纹及其在分布式存储系统的存储路径;
115.遍历本地目标目录中的每个文件得到结果文件;其中,所述本地目标目录用于存储自动驾驶软件的全部文件,所述结果文件包括所述自动驾驶软件的每个文件的文件指纹及文件更新时间;
116.比较结果文件中每个文件的文件指纹与所述元数据中每个文件的文件指纹,确定待下载文件及待删除文件;
117.根据每个待下载文件的文件名、文件指纹及存储路径,创建下载链接;所述下载链接用于从存储所述目标版本软件的分布式存储系统或与所述分布式存储系统连接的分布式缓存系统下载对应的待下载文件;
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.根据所述加载路径从所述分布式存储系统或与所述分布式存储系统连接的分布式缓存系统加载所述目标版本软件的元数据。
144.在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
145.获取所述本地目标目录中的任一文件的文件更新时间;
146.将所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间进行比较;
147.若所述文件的文件更新时间与上一次同步后保存的结果文件中记录的文件更新时间不一致,则计算所述文件的文件指纹;
148.将所述文件的文件指纹和文件更新时间更新至结果文件。
149.在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
150.若所述元数据的任一文件指纹在所述结果文件中没有记录,则将所述结果文件中
没有记录的文件指纹对应的文件确定为待下载文件;
151.若所述结果文件中的任一文件指纹在所述元数据中没有记录,则将所述元数据中没有记录的文件指纹对应的文件其确定为待删除文件。
152.在其中一个实施例中,处理器执行计算机可读指令时还执行以下步骤:
153.获取车辆运行任务;
154.根据所述车辆运行任务获取所述目标版本软件的版本信息。
155.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种自动驾驶软件同步方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
156.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
157.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
158.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者
设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
159.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
160.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
161.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1