CN116126710A - 一种车载软件仿真方法、装置、设备及介质 - Google Patents
一种车载软件仿真方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116126710A CN116126710A CN202310068397.7A CN202310068397A CN116126710A CN 116126710 A CN116126710 A CN 116126710A CN 202310068397 A CN202310068397 A CN 202310068397A CN 116126710 A CN116126710 A CN 116126710A
- Authority
- CN
- China
- Prior art keywords
- docker
- image
- vehicle
- warehouse
- software
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种车载软件仿真方法,包括:对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化;从本地客户机中拉取发生变化的所述Docker镜像;在创建好的Docker容器中运行所述发生变化的所述Docker镜像。本发明通过本地客户机在云上仿真调试待仿真的车载软件,通过本地构建与云端仿真相结合,不需要在本地配置硬件调试环境,减少软件调试对硬件环境的依赖,极大地提高了软件开发效率及成本。
Description
技术领域
本发明属于车载软件开发技术领域,具体涉及一种车载软件仿真方法、装置、设备及介质。
背景技术
随着智能网联汽车的发展,以及SDV(软件定义汽车)概念的提出,软件在汽车领域的重要性越来越高,汽车软件的复杂度也以指数级提升,软件所需要的硬件环境要求也越来越高。
软件开发是根据用户的特定需求建立一个系统或者系统中的某一部分的过程,软件开发的基本流程包括需求分析,总体设计,详细设计,开发编程,测试分析和系统整合。最后一步测试分析和系统整合是把软件烧录到实际运行环境中进行运行调试,这个过程可以发现很多功能错误,显得尤为重要。由于芯片价格越来越高,一块开发板的成本就比较昂贵,在实际项目开发过程中能够用来软件调试的单板资源少之又少。目前的车载软件开发一般采用交叉编译的方式在本地客户机上进行开发,但是由于研发成本的原因经常遇到硬件设备不足导致无法烧录软件,无法在实际环境下运行调试软件,使得开发效率大大降低。
发明内容
鉴于以上所述现有技术的缺点,本发明提供一种车载软件仿真方法、装置、设备及介质,以解决上述技术问题。
本发明提供的一种车载软件仿真方法,应用于云端服务器,所述方法包括:
对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
从本地客户机中拉取发生变化的所述Docker镜像;
在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
于本发明一实施例中,所述判断所述Docker镜像仓库中的Docker镜像是否发生变化,包括:
获取所述Docker镜像的最新版本号;
将所述Docker镜像的最新版本号与存储于所述Docker镜像仓库中的Docker镜像的版本号进行比较;
当所述Docker镜像的最新版本号高于所述存储于所述Docker镜像仓库中的Docker镜像的版本号,则判断所述Docker镜像发生变化。
于本发明一实施例中,所述Docker镜像仓库中的Docker镜像的生成方法包括:
将在本地客户机上生成的对应于待仿真的车载软件的代码提交至Git仓库;
根据流水线任务从所述Git仓库拉取代码;
对所述代码进行编译,得到编译结果文件;
基于所述编译结果文件生成Docker镜像,所述Docker镜像用于被提交至Docker镜像仓库。
于本发明一实施例中,在对所述代码进行编译前,所述方法还包括:通过代码测试工具对所述代码进行检测。
于本发明一实施例中,在对所述代码进行编译时,通过交叉编译工具链对代码进行编译。
本发明提供的一种车载软件仿真装置,应用于云端服务器,所述装置包括:
监测模块,用于对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
拉取模块,用于从本地客户机中拉取发生变化的所述Docker镜像;
运行模块,用于在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
本发明提供的一种车载软件仿真装置,所述仿真装置包括本地客户机和云端服务器;
所述本地客户机包括:
软件开发模块,用于将生成的对应于待仿真的车载软件的代码提交至Git仓库;
第一CI/CD模块,用于根据流水线任务从Git仓库中拉取代码并对代码进行编译得到编译结果文件,以及基于所述编译结果文件生成Docker镜像,所述Docker镜像用于被提交至Docker镜像仓库;
所述云端服务器包括:
第二CI/CD模块,用于对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,且在Docker镜像仓库中存在发生变化的Docker镜像时,并根据流水线任务拉取发生变化的Docker镜像;
Docker模块,用于在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
于本发明一实施例中,所述本地客户机与所述云端服务器之间的传输的数据通过OpenSSH在进行加密。
本发明提供的一种电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述的车载软件仿真方法的步骤。
本发明提供的一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行上述的车载软件仿真方法的步骤。
本发明的有益效果:
本发明中的一种车载软件仿真方法,应用于云端服务器,所述方法包括:对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;从本地客户机中拉取发生变化的所述Docker镜像;在创建好的Docker容器中运行所述发生变化的所述Docker镜像。本发明通过云端服务器的JenkinsPipeline对Docker镜像仓库进行监测,并在检测到Docker镜像仓库变化时,拉取发生变化的Docker镜像,然后运行Docker容器,在Docker容器中运行待仿真的车载软件;这样,在缺少硬件调试设备的情况下,开发人员通过本地客户机在云上仿真调试告待仿真的车载软件,通过本地构建与云端仿真相结合,不需要在本地配置硬件调试环境,减少软件调试对硬件环境的依赖,极大地提高了软件开发效率及成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术者来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本申请的一示例性实施例示出的车载软件仿真方法的实施环境示意图;
图2为本申请的一示例性实施例示出的车载软件仿真方法的流程图;
图3为本申请的一示例性实施例示出的判断Docker镜像仓库中的Docker镜像是否发生变化的流程图;
图4为本申请的一示例性实施例示出的Docker镜像的生成方法的流程图;
图5为本申请的一示例性实施例示出的一种车载软件仿真装置的框图;
图6为本申请的一示例性实施例示出的一种车载软件仿真装置的框图;
图7示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下将参照附图和优选实施例来说明本发明的实施方式,本领域技术人员可由本说明书中所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。应当理解,优选实施例仅为了说明本发明,而不是为了限制本发明的保护范围。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
在下文描述中,探讨了大量细节,以提供对本发明实施例的更透彻的解释,然而,对本领域技术人员来说,可以在没有这些具体细节的情况下实施本发明的实施例是显而易见的,在其他实施例中,以方框图的形式而不是以细节的形式来示出公知的结构和设备,以避免使本发明的实施例难以理解。
图1是本申请一种示例性的车载软件仿真方法实施环境的示意图。请参阅图1,该实施环境中包括至少由本地客户机110和云端服务器120构成车载软件仿真系统。在该系统中,开发人员在本地客户机开发代码,开发完成之后提交到Git仓库,触发流水线任务拉取代码并对代码进行编译,Pipeline结束之后由Docker生成Docker镜像,然后提交到Docker镜像仓库;云端服务器根据流水线任务对Docker镜像仓库进行检测,检测到Docker镜像仓库发生变化时拉取Docker镜像,然后运行Docker容器。客户机通过OpenSSH登录远程服务器,运行shell指令,查看容器里面的软件运行状态,在客户机与云端进行加密数据传输,便于软件调试且满足数据安全的要求。这样可以将本地构建与云端仿真相结合,不需要在本地配置硬件调试环境,极大地提高了软件开发效率及成本。
应该理解,图1中的本地客户机110的数目仅仅是示意性的。根据实际需要,可以具有任意数目的本地客户机110。
本地客户机110可以通过3G(第三代的移动信息技术)、4G(第四代的移动信息技术)、5G(第五代的移动信息技术)等无线网络与云端服务器120进行数据交互,本处也不对此进行限制。
本申请的实施例分别提出一种车载软件仿真方法、一种车载软件仿真装置、一种电子设备、一种计算机可读存储介质,以下将对这些实施例进行详细描述。
在对本申请的实施例进行详细描述前,先对一些技术名字进行说明。
Git是一个开源的版本管理系统,可通过Web界面进行访问公开的或者私人项目。能够支持浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,非常易于浏览提交过的版本并提供一个文件历史库。还提供一个代码片段收集功能可以轻松实现代码复用,便于日后需要的时候进行查找。
CI/CD流水线是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法,本发明的客户指的是云端服务器。CI/CD的核心概念是持续集成、持续交付和持续部署。它是作为一个面向开发和运营团队的解决方案,主要针对在集成新代码时所引发的问题。CI在完成了构建、单元测试和集成测试这些自动化流程后,持续交付可以自动把已验证的代码发布到企业自己的存储库。持续交付旨在建立一个可随时将开发环境的功能部署到生成环境的代码库。在持续交付的过程中,每个步骤都涉及到了测试自动化和代码发布自动化。在流程结束时,运维团队可以快速、轻松地将应用部署到生成环境中。对于一个完整、成熟的CI/CD流水线来说,最后的阶段持续部署时作为持续交付的延伸,持续部署可以自动将应用发布到生成环境中。
OpenSSH是SSH(SecureShell)协议的免费开源实现,提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。本发明使用OpenSSH在本地客户机远程登录云端服务器,在云端服务器中安全运行shell,查看容器中软件的运行状态。OpenSSH有两种认证模式,分别是基于口令认证和基于密钥认证,它是基于C/S架构工作的。
QEMU是一个通用的开源的跨平台仿真模拟器,提供user和system两种模式,其模拟的作用是可以模拟在特定体系结构下的应用的执行或者构建。本发明使用QEMU来使ARM的docker镜像可以在X86_64下运行,在运行容器之前只需要注册QEMU虚拟机即可。
云端服务器是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。本发明在云端服务器上使用Yum命令安装Docker,然后正确配置,用于运行CI/CD输出到云端服务器上的应用。
请参阅图2,图2是本申请的一示例性实施例示出的一种车载软件仿真方法的流程图。该方法可以应用于图1所示的实施环境,并由该实施环境中的云端服务器具体执行。应理解的是,该方法也可以适用于其它的示例性实施环境,并由其它实施环境中的设备具体执行,本实施例不对该方法所适用的实施环境进行限制。
请参阅图2,图2为本申请一示例性的一种车载软件仿真方法的流程图,该车载软件仿真方法至少包括步骤S210至步骤S230,详细介绍如下:
步骤S210,对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
请参阅图3,图3为本申请一示例性实施例示出的判断Docker镜像仓库中的Docker镜像是否发生变化的流程图。在图3中,判断所述Docker镜像仓库中的Docker镜像是否发生变化,包括步骤S310~步骤S320:
步骤S310,获取所述Docker镜像的最新版本号;
步骤S320,将所述Docker镜像的最新版本号与存储于所述Docker镜像仓库中的Docker镜像的版本号进行比较;
步骤S330,当所述Docker镜像的最新版本号高于所述存储于所述Docker镜像仓库中的Docker镜像的版本号,则判断所述Docker镜像发生变化。
具体地,假如定义版本号A1高于版本号A。若存储于所述Docker镜像仓库中的Docker镜像的版本号为A,而对应该Docker镜像的最新版本号为A1,则此时可以判断Docker镜像发生了变化;若存储于所述Docker镜像仓库中的Docker镜像的版本号为A,而对应该Docker镜像的最新版本号为A,则此时可以判断Docker镜像没有发生变化。
请参阅图4,图4为本申请一示例性实施例示出的Docker镜像的生成方法的流程图。在图4中,所述Docker镜像仓库中的Docker镜像的生成方法包括步骤S410~步骤S440:
步骤S410,将在本地客户机上生成的对应于待仿真的车载软件的代码提交至Git仓库;
用户先在本地客户机上根据项目需求完成待仿真的车载软件的代码开发,然后将开发完成的代码提交至Git仓库。
步骤S420,根据流水线任务从所述Git仓库拉取代码;
在本实施例中,通过pipeline实现jenkins的流水线功能。pipeline是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。pipeline帮助jenkins实现从CI到CD与DevOps的转变。
步骤S430,对所述代码进行编译,得到编译结果文件;
具体地,在对所述代码进行编译时,通过交叉编译工具链对代码进行编译。
交叉编译可以理解为,在当前编译平台下,编译出来的程序能运行在体系结构不同的另一种目标平台上,但是编译平台本身却不能运行该程序。比如,在x86平台上,编写程序并编译成能运行在ARM平台的程序,编译得到的程序在x86平台上是不能运行的,必须放到ARM平台上才能运行。
交叉编译链就是为了编译跨平台体系结构的程序代码而形成的由多个子工具构成的一套完整的工具集。同时,它隐藏了预处理、编译、汇编、链接等细节,当指定了源文件(.c)时,它会自动按照编译流程调用不同的子工具,自动生成最终的二进制程序映像(.bin)。
步骤S440,基于所述编译结果文件生成Docker镜像,所述Docker镜像用于被提交至Docker镜像仓库。
在一实施例中,在对所述代码进行编译前,所述方法还包括:通过代码测试工具对所述代码进行检测。
步骤S220,从本地客户机中拉取发生变化的所述Docker镜像;
由于云端服务器对本地客户机进行监测,监测Docker镜像仓库中是否存在发生变化的Docker镜像,若存在则基于流水线任务从本地客户机中拉取发生变化的所述Docker镜像。
在本实施例中,通过pipeline实现jenkins的流水线功能。pipeline是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。pipeline帮助jenkins实现从CI到CD与DevOps的转变。
步骤S230,在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
本发明将本地构建与云端仿真相结合,不需要在本地配置硬件调试环境,极大地提高了软件开发效率及成本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图5是本申请的一示例性实施例示出的车载软件仿真装置的框图。该装置可以应用于图1所示的实施环境,并具体配置在服务器中。该装置也可以适用于其它的示例性实施环境,并具体配置在其它设备中,本实施例不对该装置所适用的实施环境进行限制。
如图5所示,本申请提供一种车载软件仿真装置,所述装置包括:
监测模块510,用于对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
拉取模块520,用于从本地客户机中拉取发生变化的所述Docker镜像;
运行模块530,用于在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
需要说明的是,上述实施例所提供的车载软件仿真装置与上述实施例所提供的车载软件仿真方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的车载软件仿真装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
如图6是本申请的一示例性实施例示出的车载软件仿真装置的框图。在图6中,所述车载软件仿真装置包括:本地客户机和云端服务器;
所述本地客户机包括:
软件开发模块,用于将生成的对应于待仿真的车载软件的代码提交至Git仓库;
第一CI/CD模块,用于根据流水线任务从Git仓库中拉取代码并对代码进行编译得到编译结果文件,以及基于所述编译结果文件生成Docker镜像,所述Docker镜像用于被提交至Docker镜像仓库;其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
所述云端服务器包括:
第二CI/CD模块,用于对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,且在Docker镜像仓库中存在发生变化的Docker镜像时,并根据流水线任务拉取发生变化的Docker镜像;
Docker模块,用于在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
需要说明的是,上述实施例所提供的车载软件仿真装置与上述实施例所提供的车载软件仿真方法属于同一构思,其中各个模块和单元执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。上述实施例所提供的车载软件仿真装置在实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能,本处也不对此进行限制。
本申请的实施例还提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现上述各个实施例中提供的车载软件仿真方法。
图7示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图7示出的电子设备的计算机系统仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统包括中央处理单元(CentralProcessingUnit,CPU),其可以根据存储在只读存储器(Read-OnlyMemory,ROM)中的程序或者从储存部分加载到随机访问存储器(RandomAccessMemory,RAM)中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM中,还存储有系统操作所需的各种程序和数据。CPU、ROM以及RAM通过总线彼此相连。输入/输出(Input/Output,I/O)接口也连接至总线。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CathodeRayTube,CRT)、液晶显示器(LiquidCrystalDisplay,LCD)等以及扬声器等的输出部分;包括硬盘等的储存部分;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入储存部分。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图2所示的车载软件仿真方法的计算机程序。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ErasableProgrammableReadOnly Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(CompactDisc Read-OnlyMemory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
本申请的另一方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机的处理器执行时,使计算机执行如前所述的车载软件仿真方法。该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的,也可以是单独存在,而未装配入该电子设备中。
本申请的另一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中提供的车载软件仿真方法。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种车载软件仿真方法,其特征在于,应用于云端服务器,所述方法包括:
对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
从本地客户机中拉取发生变化的所述Docker镜像;
在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
2.根据权利要求1所述的车载软件仿真方法,其特征在于,所述判断所述Docker镜像仓库中的Docker镜像是否发生变化,包括:
获取所述Docker镜像的最新版本号;
将所述Docker镜像的最新版本号与存储于所述Docker镜像仓库中的Docker镜像的版本号进行比较;
当所述Docker镜像的最新版本号高于所述存储于所述Docker镜像仓库中的Docker镜像的版本号,则判断所述Docker镜像发生变化。
3.根据权利要求1所述的车载软件仿真方法,其特征在于,所述Docker镜像仓库中的Docker镜像的生成方法包括:
将在本地客户机上生成的对应于待仿真的车载软件的代码提交至Git仓库;
根据流水线任务从所述Git仓库拉取代码;
对所述代码进行编译,得到编译结果文件;
基于所述编译结果文件生成Docker镜像,所述Docker镜像用于被提交至Docker镜像仓库。
4.根据权利要求3所述的车载软件仿真方法,其特征在于,在对所述代码进行编译前,所述方法还包括:通过代码测试工具对所述代码进行检测。
5.根据权利要求4所述的车载软件仿真方法,其特征在于,在对所述代码进行编译时,通过交叉编译工具链对代码进行编译。
6.一种车载软件仿真装置,其特征在于,应用于云端服务器,所述装置包括:
监测模块,用于对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
拉取模块,用于从本地客户机中拉取发生变化的所述Docker镜像;
运行模块,用于在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
7.一种车载软件仿真装置,其特征在于,所述仿真装置包括本地客户机和云端服务器;
所述本地客户机包括:
软件开发模块,用于将生成的对应于待仿真的车载软件的代码提交至Git仓库;
第一CI/CD模块,用于根据流水线任务从Git仓库中拉取代码并对代码进行编译得到编译结果文件,以及基于所述编译结果文件生成Docker镜像,所述Docker镜像用于被提交至Docker镜像仓库;其中,所述Docker镜像仓库中存储有至少一个Docker镜像,所述Docker镜像是将待仿真的车载软件进行打包生成;
所述云端服务器包括:
第二CI/CD模块,用于对在本地客户机上创建的Docker镜像仓库进行监测,并判断所述Docker镜像仓库中的Docker镜像是否发生变化,且在Docker镜像仓库中存在发生变化的Docker镜像时,并根据流水线任务拉取发生变化的Docker镜像;
Docker模块,用于在创建好的Docker容器中运行所述发生变化的所述Docker镜像。
8.根据权利要求7所述的一种车载软件仿真装置,其特征在于,所述本地客户机与所述云端服务器之间的传输的数据通过OpenSSH在进行加密。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至5中任一项所述的车载软件仿真方法的步骤。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如权利要求1至5中任一项所述的车载软件仿真方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310068397.7A CN116126710A (zh) | 2023-02-06 | 2023-02-06 | 一种车载软件仿真方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310068397.7A CN116126710A (zh) | 2023-02-06 | 2023-02-06 | 一种车载软件仿真方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116126710A true CN116126710A (zh) | 2023-05-16 |
Family
ID=86302462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310068397.7A Pending CN116126710A (zh) | 2023-02-06 | 2023-02-06 | 一种车载软件仿真方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116126710A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881174A (zh) * | 2023-09-08 | 2023-10-13 | 富钛字节车载软件(长春)有限公司 | 一种ecu应用软件闭环测试方法、装置、设备及存储介质 |
-
2023
- 2023-02-06 CN CN202310068397.7A patent/CN116126710A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881174A (zh) * | 2023-09-08 | 2023-10-13 | 富钛字节车载软件(长春)有限公司 | 一种ecu应用软件闭环测试方法、装置、设备及存储介质 |
CN116881174B (zh) * | 2023-09-08 | 2023-11-14 | 富钛字节车载软件(长春)有限公司 | 一种ecu应用软件闭环测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10296296B2 (en) | Integrated development environment for analytic authoring | |
WO2023045849A1 (zh) | 软件包处理方法、装置、系统、设备及介质 | |
CN110727575B (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
CN112639734A (zh) | 仿真任务调度方法、执行方法、仿真实现方法及装置 | |
CN113220283A (zh) | 一种基于云编排的物联app开发系统 | |
CN116126710A (zh) | 一种车载软件仿真方法、装置、设备及介质 | |
CN113835691B (zh) | 一种iOS应用开发方法、系统、设备、介质和程序产品 | |
Fursin | The collective knowledge project: Making ML models more portable and reproducible with open APIs, reusable best practices and MLOps | |
CN116502437A (zh) | 一种基于云+端架构的信号级仿真平台云化方法 | |
CN115795845A (zh) | 集成化测试仿真平台的构建方法、装置、设备及存储介质 | |
CN116302034A (zh) | 一种软件发布的处理方法、装置、设备及介质 | |
EP3683675A1 (en) | System, apparatus and method of integrated deployment | |
CN115437940A (zh) | 一种适用于金融级云平台的api接口测试方法 | |
Becker et al. | A safety-certified vehicle OS to enable software-defined vehicles | |
CN115248680A (zh) | 软件构建方法、系统、设备、介质和程序产品 | |
CN114564207A (zh) | 软件产品的处理方法、装置、计算机设备、存储介质 | |
CN112667491A (zh) | 虚拟机的功能测试方法及装置 | |
CN110633077A (zh) | 一种基于模块化的快速开发系统及方法 | |
CN114240265B (zh) | 一种基于混合环境的产品部署方法及装置 | |
WO2024000917A1 (zh) | 一种无侵入可插拔的前端构建转移提速方法及装置 | |
Cervera | Run to the Source: The Effective Reproducibility of Robotics Code Repositories | |
Kanerva | Deployment of proprietary applications based on open source technology for automation platform | |
CN116708492A (zh) | 一种车辆网络管理状态变更测试方法、装置、设备及介质 | |
CN115407679A (zh) | 自动驾驶算法的测试方法、装置、设备及存储介质 | |
Fernandez-Gauna et al. | Simion Zoo: A training workbench for reinforcement learning allowing distributed experimentation |
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 |