Software deployment method of automatic driving application graphical developer and electronic equipment

By using software deployment templates and associations in the graphical developer of autonomous driving applications to automate software deployment, the problem of low efficiency in autonomous driving software deployment is solved, and the development efficiency and application safety and real-time performance are improved.

CN119987749APending Publication Date: 2025-05-13AUTOMOTIVE INTELLIGENCE & CONTROL OF CHINA CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411999390.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-31
Publication Date
2025-05-13

AI Technical Summary

Technical Problem

In the prior art, the deployment efficiency of autonomous driving software is low, resulting in low development efficiency of autonomous driving applications and poor safety and real-time performance of the use of autonomous driving applications.

Method used

A software deployment method for graphical developer of an autonomous driving application is provided. By determining the software deployment template of the target software and the association relationship between the deployment object and the target component in response to instructions, the deployment object is deployed to the corresponding target component according to the association relationship.

Benefits of technology

It improves the efficiency of software deployment, enhances the maintainability of software deployment, thereby improving the development efficiency of autonomous driving applications, and improving the safety and real-time use of autonomous driving applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119987749A_ABST
    Figure CN119987749A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a software deployment method of an automatic driving application graphical developer and electronic equipment. The invention relates to the technical field of automatic driving, and the method comprises the following steps: in response to a first instruction, determining a software deployment template corresponding to target software indicated by the first instruction; wherein the first instruction is used for indicating target software deployed in a target vehicle; the software deployment template is a template obtained after abstract definition is carried out on a software package; the software deployment template indicates a deployment object; the target vehicle comprises a target component; in response to the second instruction, determining an association relationship between the deployment object and the target component; and deploying the deployment object to the target component associated with the deployment object according to the association relationship. In the technical field of automatic driving, when the method is used for development based on an automatic driving application graphical developer, the development efficiency of the automatic driving application can be improved, and the use safety and real-time performance of the automatic driving application can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of autonomous driving technology, and in particular to a software deployment method and electronic device for an autonomous driving application graphical developer. Background Art

[0002] With the development of vehicle technology, the application of autonomous driving technology is becoming more and more extensive. In the application process of autonomous driving technology, autonomous driving software needs to be deployed in the vehicle to enable the vehicle to realize the autonomous driving function. At the same time, autonomous driving software also needs to be deployed in the vehicle during the development and debugging stage of autonomous driving software.

[0003] In the prior art, the software deployment of the vehicle is completed mainly by manually downloading files or directories in the software package to different controllers of the vehicle.

[0004] However, the manual method will lead to low efficiency in vehicle software deployment, which will further lead to low development efficiency of autonomous driving applications, as well as poor safety and real-time performance in the use of autonomous driving applications. Summary of the invention

[0005] The embodiments of the present application provide a software deployment method, an electronic device, and a program product for an autonomous driving application graphical developer, so as to improve the development efficiency of autonomous driving applications, and improve the safety and real-time performance of the use of autonomous driving applications.

[0006] In a first aspect, an embodiment of the present application provides a software deployment method of an autonomous driving application graphical developer, comprising:

[0007] In response to a first instruction, a software deployment template corresponding to the target software indicated by the first instruction is determined; wherein the first instruction is used to indicate the target software to be deployed in the target vehicle; the software deployment template is a template obtained after abstractly defining the software package; the software deployment template indicates a deployment object; the deployment object is an object determined after abstractly defining the software package; the target vehicle includes a target component;

[0008] In response to a second instruction, determining an association relationship between the deployment object and the target component; wherein the second instruction is used to indicate the association relationship;

[0009] According to the association relationship, the deployment object is deployed to the target component associated with the deployment object.

[0010] In a possible implementation, the first instruction indicates a software type and a software development environment; in response to the first instruction, determining a software deployment template corresponding to the target software indicated by the first instruction includes: in response to the first instruction, extracting a software deployment template corresponding to both the software type and the software development environment from a preset software deployment template set; wherein the software deployment template set includes at least one software deployment template, and the software deployment templates in the software deployment template set are templates obtained after abstract definitions of different software packages under different development environments.

[0011] In one possible implementation, in response to a second instruction, determining the association relationship between the deployment object and the target component includes: in response to the second instruction, determining the initial association relationship indicated by the second instruction; wherein the initial association relationship is the initial association relationship between the deployment object and the target component; if it is determined that a conditional check of the initial association relationship passes, determining the initial association relationship to be the association relationship between the deployment object and the target component; otherwise, generating and presenting prompt information; wherein the prompt information indicates that the deployment of the deployment object has failed.

[0012] In a possible implementation, the software deployment template further indicates source information of the software package; and deploying the deployment object to a target component associated with the deployment object according to the association relationship includes: acquiring the software package according to the source information; determining, from the software package, a deployment file and a deployment directory corresponding to the deployment object; and deploying the deployment object to the target component associated with the deployment object according to the deployment file and the deployment directory corresponding to the deployment object and the association relationship.

[0013] In a possible implementation, the target vehicle further includes a main vehicle domain controller; the main vehicle domain controller corresponds to at least one target component; according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship, the deployment object is deployed to the target component associated with the deployment object, including: according to the correspondence between the main vehicle domain controller and the target component, and the association relationship, a deployment object set corresponding to the main vehicle domain controller is determined; the deployment object set includes at least one deployment object; the deployment file and deployment directory corresponding to the deployment object included in the deployment object set are sent to the corresponding main vehicle domain controller, so that the main vehicle domain controller sends the deployment file and deployment directory corresponding to the deployment object to the target component associated with the deployment object.

[0014] In a possible implementation, the method further includes: determining a first connection state and a second connection state; the first connection state is the connection state with the main vehicle domain controller; the second connection state is the connection state between the main vehicle domain controller and a target component corresponding to the main vehicle domain controller; if it is determined that both the first connection state and the second connection state are normal connections, executing a process of deploying the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship; otherwise, generating and presenting a prompt message; wherein the prompt message indicates that the deployment of the deployment object has failed.

[0015] In a possible implementation, the method further includes: acquiring a deployment state of the deployment object; wherein the deployment state is a deployment completed state or an undeployed state; and processing the deployment object according to the deployment state of the deployment object.

[0016] In one possible implementation, the deployment object is processed according to the deployment status of the deployment object, including: when it is determined that the deployment processing of the deployment object is interrupted, the deployment object whose deployment status is characterized as an incomplete deployment state is resumed; when it is determined that the deployment processing of the deployment object has failed, the deployment object whose deployment status is characterized as a completed deployment state, and the deployment object whose deployment status is characterized as an incomplete deployment state but some deployment files and deployment directories have been transferred, are rolled back.

[0017] In a second aspect, an embodiment of the present application provides a software deployment device of an autonomous driving application graphical developer, comprising:

[0018] A first determination module is used to determine, in response to a first instruction, a software deployment template corresponding to the target software indicated by the first instruction; wherein the first instruction is used to indicate the target software to be deployed in the target vehicle; the software deployment template is a template obtained after abstractly defining the software package; the software deployment template indicates a deployment object; the deployment object is an object determined after abstractly defining the software package; the target vehicle includes a target component;

[0019] A second determining module, configured to determine, in response to a second instruction, an association relationship between the deployment object and the target component; wherein the second instruction is configured to indicate the association relationship;

[0020] A deployment module is used to deploy the deployment object to a target component associated with the deployment object according to the association relationship.

[0021] In one possible implementation, the first instruction indicates a software type and a software development environment; the first determination module is specifically used to extract, in response to the first instruction, a software deployment template corresponding to both the software type and the software development environment from a preset software deployment template set; wherein the software deployment template set includes at least one software deployment template, and the software deployment templates in the software deployment template set are templates obtained after abstract definitions of different software packages under different development environments.

[0022] In a possible implementation, the second determination module is specifically configured to determine, in response to the second instruction, an initial association relationship indicated by the second instruction; wherein the initial association relationship is an initial association relationship between a deployment object and a target component; if it is determined that a conditional check of the initial association relationship passes, then the initial association relationship is determined to be an association relationship between the deployment object and the target component; otherwise, a prompt message is generated and presented; wherein the prompt message indicates that deployment of the deployment object has failed.

[0023] In a possible implementation, the software deployment template further indicates source information of the software package; the deployment module includes: an acquisition unit, used to acquire the software package according to the source information; a determination unit, used to determine, from the software package, a deployment file and a deployment directory corresponding to the deployment object; and a deployment unit, used to deploy the deployment object to a target component associated with the deployment object according to the deployment file and the deployment directory corresponding to the deployment object and the association relationship.

[0024] In a possible implementation, the target vehicle also includes a main vehicle domain controller; the main vehicle domain controller corresponds to at least one target component; the deployment unit is specifically used to determine the deployment object set corresponding to the main vehicle domain controller according to the correspondence between the main vehicle domain controller and the target component, and the association relationship; the deployment object set includes at least one deployment object; the deployment files and deployment directories corresponding to the deployment objects included in the deployment object set are sent to the corresponding main vehicle domain controller, so that the main vehicle domain controller sends the deployment files and deployment directories corresponding to the deployment objects to the target component associated with the deployment object.

[0025] In a possible implementation, the deployment unit is further used to determine a first connection state and a second connection state; the first connection state is the connection state with the main vehicle domain controller; the second connection state is the connection state between the main vehicle domain controller and a target component corresponding to the main vehicle domain controller; if it is determined that both the first connection state and the second connection state are normal connections, a process of deploying the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship is executed; otherwise, a prompt message is generated and presented; wherein the prompt message indicates that the deployment of the deployment object has failed.

[0026] In a possible implementation, the deployment unit is further configured to obtain a deployment status of the deployment object; wherein the deployment status is a deployment completed state or an undeployed state; and the deployment object is processed according to the deployment status of the deployment object.

[0027] In a possible implementation, the deployment unit is further specifically used to, when it is determined that the deployment processing of the deployment object is interrupted, perform breakpoint resumption processing on the deployment object whose deployment status is characterized as an incomplete deployment state; when it is determined that the deployment processing of the deployment object fails, perform rollback processing on the deployment object whose deployment status is characterized as a completed deployment state, and the deployment object whose deployment status is characterized as an incomplete deployment state but has transferred some deployment files and deployment directories.

[0028] In a third aspect, an embodiment of the present application provides an electronic device, including: a memory, a processor;

[0029] The memory stores computer-executable instructions;

[0030] The processor executes the computer-executable instructions stored in the memory, so that the processor executes the above first aspect and / or various possible implementations of the first aspect.

[0031] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored. When the computer-executable instructions are executed by a processor, they are used to implement the first aspect above and / or various possible implementations of the first aspect.

[0032] In a fifth aspect, an embodiment of the present application provides a computer program product, including a computer program, which, when executed by a processor, implements the above first aspect and / or various possible implementation methods of the first aspect.

[0033] The software deployment method and electronic device of the graphical developer of an autonomous driving application provided in the embodiment of the present application, by responding to a first instruction, determines the software deployment template corresponding to the target software indicated by the first instruction, and determines the association relationship between the deployment object and the target component in response to a second instruction, and deploys the deployment object to the target component associated with the deployment object according to the association relationship, wherein the software deployment template is a template obtained after abstract definition of the software package, and software deployment through the software deployment template can reduce the complexity of software deployment, enhance the maintainability of software deployment, and thus improve the efficiency of software deployment, wherein the deployment object indicated by the software deployment is an object determined after abstract definition of the software package, and software deployment according to the deployment object can further improve the efficiency of software deployment. In summary, the software deployment method of the graphical developer of an autonomous driving application provided in the embodiment of the present application can improve the efficiency of software deployment, further improve the development efficiency of autonomous driving applications, and also improve the safety and real-time performance of the use of autonomous driving applications. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.

[0035] Figure 1 Schematic diagram of the software deployment method of the autonomous driving application graphical developer provided in this application Figure 1 ;

[0036] Figure 2 Schematic diagram of the software deployment method of the autonomous driving application graphical developer provided in this application Figure 2 ;

[0037] Figure 3 A schematic diagram of the structure of the software deployment device of the autonomous driving application graphical developer provided in this application;

[0038] Figure 4 A schematic diagram of the structure of the electronic device provided in this application.

[0039] The above drawings have shown clear embodiments of the present application, which will be described in more detail later. These drawings and text descriptions are not intended to limit the scope of the present application in any way, but to illustrate the concept of the present application to those skilled in the art by referring to specific embodiments. DETAILED DESCRIPTION

[0040] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with the present application. Instead, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the appended claims.

[0041] In the prior art, the software deployment of the vehicle is mainly completed by manually downloading the files or directories in the software package to different controllers of the vehicle. However, the manual method will lead to the problem of low efficiency of vehicle software deployment, which will further lead to low efficiency of development of autonomous driving applications, as well as poor security and real-time performance of the use of autonomous driving applications.

[0042] With the development of autonomous driving technology, the development process of autonomous driving applications has gradually changed from manual programming to the use of graphical development platforms, such as the use of autonomous driving application graphical developers. However, after the autonomous driving software package is developed based on the autonomous driving application graphical developer, it is still necessary to manually download the files or directories in the software package to different controllers of the vehicle to complete the vehicle software deployment.

[0043] Therefore, there is an urgent need for an efficient software deployment method to solve the problem of low efficiency in vehicle software deployment, thereby solving the problem of low development efficiency of autonomous driving applications, as well as the problems of poor security and real-time performance of the use of autonomous driving applications.

[0044] The software deployment method of the graphical developer of an autonomous driving application provided in the present application determines, in response to a first instruction, a software deployment template corresponding to the target software indicated by the first instruction, and in response to a second instruction, determines the association relationship between the deployment object and the target component, and deploys the deployment object to the target component associated with the deployment object according to the association relationship, wherein the software deployment template is a template obtained after abstractly defining the software package, and software deployment through the software deployment template can reduce the complexity of software deployment, enhance the maintainability of software deployment, and thus improve the efficiency of software deployment, wherein the deployment object indicated by the software deployment is an object determined after abstractly defining the software package, and software deployment according to the deployment object can further improve the efficiency of software deployment. In summary, the software deployment method of the graphical developer of an autonomous driving application provided in the embodiment of the present application can improve the efficiency of software deployment, further improve the development efficiency of autonomous driving applications, and also improve the safety and real-time performance of the use of autonomous driving applications.

[0045] The technical solution of the present application and how the technical solution of the present application solves the above-mentioned technical problems are described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of the present application will be described below in conjunction with the accompanying drawings.

[0046] Figure 1 Schematic diagram of the software deployment method of the autonomous driving application graphical developer provided in this application Figure 1 ,like Figure 1 As shown, the method includes:

[0047] Step S101: In response to a first instruction, determine a software deployment template corresponding to the target software indicated by the first instruction.

[0048] Specifically, in response to the first instruction, a software deployment template corresponding to the target software indicated by the first instruction may be determined.

[0049] The first instruction is used to indicate the target software to be deployed in the target vehicle.

[0050] Specifically, the target vehicle is the vehicle to which the software will be deployed, wherein this application does not limit the target vehicle, and any vehicle that can deploy autonomous driving software can be used as the target vehicle provided by this application. Among them, the target vehicle includes a target component, and specifically, the target component is a component in the target vehicle for deploying the target software, wherein this application does not limit the type of the target component, and any component that can be used to deploy the target software can be used as the type of the target component provided by this application, and optionally, the type of the target component includes but is not limited to the vehicle domain controller SOC, the vehicle microcontroller MCU and other types.

[0051] Specifically, the target software is the autonomous driving software that will be deployed in the target vehicle. This application does not limit the target software, and any autonomous driving software can be used as the target software provided by this application.

[0052] The software deployment template is a template obtained after abstractly defining the software package. The software package, i.e., the software deployment package, is an installation package for deploying autonomous driving software. The present application does not limit the process of abstractly defining the software package. Any process that can determine the deployment object corresponding to the software package can be used as the process of abstractly defining the software package provided by the present application.

[0053] Specifically, the software deployment template indicates a deployment object. The deployment object is an object determined after an abstract definition of the software package. The present application does not limit the deployment object indicated by the software deployment template. Optionally, the software deployment template indicates at least one deployment object. Optionally, the deployment object indicated by the software deployment template is related to the software type corresponding to the software deployment template. Optionally, the deployment object indicated by the software deployment template is also related to the development environment corresponding to the software deployment template.

[0054] Optionally, based on the above description of the target component, the deployment object indicated by the software deployment template can be deployed in the target component included in the target vehicle.

[0055] Among them, the present application does not limit the process of determining the software deployment template corresponding to the target software indicated by the first instruction in response to the first instruction. Optionally, in response to the first instruction, a software deployment template corresponding to both the software type and the software development environment can be extracted from a preset software deployment template set.

[0056] Step S102: In response to the second instruction, determine the association relationship between the deployment object and the target component.

[0057] Specifically, in response to the second instruction, the association relationship between the deployment object and the target component may be determined.

[0058] The second instruction is an instruction input by a user for indicating the association relationship between the deployment object and the target component.

[0059] The association relationship between the deployment object and the target component is that the deployment object and the target component are associated, or that the deployment object and the target component are not associated. Optionally, a target component can be associated with at least one deployment object. Optionally, the number of deployment components associated with the target component corresponds to the second instruction. Optionally, the number of deployment components associated with the target component also corresponds to the characteristics of the target component and the deployment object.

[0060] The second instruction is used to indicate an association relationship, wherein the association relationship refers to the association relationship between the deployment object and the target component described above.

[0061] Among them, the present application does not limit the process of determining the association relationship between the deployment object and the target component in response to the second instruction. Optionally, the initial association relationship indicated by the second instruction can be determined in response to the second instruction. If it is determined that the conditional verification process of the initial association relationship passes, the initial association relationship is determined to be the association relationship between the deployment object and the target component. Otherwise, a prompt message is generated and presented. Among them, the prompt message indicates that the deployment of the deployment object has failed.

[0062] Among them, in the process of software deployment applied to vehicles, in response to the second instruction, the association relationship between the deployment object and the target component is determined, so that the same software deployment template can be reused in multiple vehicles with different target components, thereby reducing the deployment cost of software deployment applied to vehicles and improving the flexibility of software deployment.

[0063] Step S103: deploy the deployment object to the target component associated with the deployment object according to the association relationship.

[0064] Specifically, according to the association relationship between the deployment object and the target component determined in step S102, the deployment object may be deployed to the target component associated with the deployment object.

[0065] Among them, this application does not limit the process of deploying the deployment object to the target component associated with the deployment object. Optionally, the software package can be obtained according to the source information; from the software package, the deployment file and deployment directory corresponding to the deployment object are determined; according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship, the deployment object is deployed to the target component associated with the deployment object.

[0066] The software deployment method of the graphical developer of an autonomous driving application provided in the embodiment of the present application determines, in response to a first instruction, a software deployment template corresponding to the target software indicated by the first instruction, and in response to a second instruction, determines the association relationship between the deployment object and the target component, and deploys the deployment object to the target component associated with the deployment object according to the association relationship, wherein the software deployment template is a template obtained after abstract definition of the software package, and software deployment through the software deployment template can reduce the complexity of software deployment, enhance the maintainability of software deployment, and thus improve the efficiency of software deployment, wherein the deployment object indicated by the software deployment is an object determined after abstract definition of the software package, and software deployment according to the deployment object can further improve the efficiency of software deployment. In summary, the software deployment method of the graphical developer of an autonomous driving application provided in the embodiment of the present application can improve the efficiency of software deployment, further improve the development efficiency of autonomous driving applications, and also improve the safety and real-time performance of the use of autonomous driving applications.

[0067] In a possible embodiment, the first instruction indicates the software type and the software development environment.

[0068] Among them, the software type indicated by the first instruction is the type of the target software described in step S101. Specifically, based on the description of the target software in step S101, if the target software is an autonomous driving software, the software type provided in this embodiment may be the type of autonomous driving software. Among them, this application does not limit the software type of autonomous driving software. Optionally, the type of autonomous driving software includes but is not limited to automatic parking type software, automatic road sign recognition type software, type software, automatic navigation type software, adaptive cruise control type software, automatic emergency braking type software, automatic steering type software, vehicle-to-vehicle communication type software, artificial intelligence voice assistant type software, vehicle status monitoring type software, environmentally friendly driving type software and other software types.

[0069] The software development environment indicated by the first instruction is a development environment for deploying the target software described in step S101. The present application does not limit the software development environment indicated by the first instruction. Optionally, any development environment capable of deploying the target software can be used as the software development environment provided by the present application.

[0070] Optionally, if the first instruction indicates the software type and the software development environment, then in response to the first instruction, the process of determining the software deployment template corresponding to the target software indicated by the first instruction may include: in response to the first instruction, extracting the software deployment template corresponding to both the software type and the software development environment from a preset software deployment template set.

[0071] The software deployment template set includes at least one software deployment template, and the software deployment templates in the software deployment template set are templates obtained by abstractly defining different software packages in different development environments.

[0072] Optionally, the process of constructing a software deployment template may include: creating an initial software deployment template; performing configuration processing according to the software type corresponding to the software deployment template; and performing abstract definition processing according to the software development environment corresponding to the software deployment template.

[0073] Optionally, the process of creating an initial software deployment template may include: creating a template table, and in response to a user input operation in a user interface, adding basic information of the template to the template creation table. Optionally, the basic information of the template includes, but is not limited to, information such as the name of the template, the logo of the template, the description of the template, the creator of the template, and the creation time of the template.

[0074] Optionally, the process of performing configuration processing according to the software type corresponding to the software deployment template may include but is not limited to: software package, that is, the configuration processing process of the software deployment package, and the configuration processing process of the source of the software package. Optionally, the content of the configuration processing of the software package includes but is not limited to: the software type of the software package, the name of the software package, the source type of the software package, the directory where the software package is located, the package type of the software package, the matching rule type of the software package, the logo of the software deployment template corresponding to the software package, and other information. Among them, the source type of the software package includes but is not limited to: one of the types of remote download type, local type, etc., and the matching rule type of the software package includes but is not limited to the regular expression type. Optionally, the content of the configuration processing of the source of the software package includes but is not limited to: the type of the source of the software package, the name of the source of the software package, the warehouse address of the source of the software package, the warehouse type of the source of the software package, the warehouse configuration of the source of the software package, the software name of the software package, the platform type of the source of the software package, the name of the software package, and other information. Among them, the warehouse type of the source of the software package includes but is not limited to: one of the types of FTP, OSS, SFTP, HTTP, etc.

[0075] Optionally, according to the software development environment corresponding to the software deployment template, the content of the abstract definition processing includes but is not limited to: abstract class name, abstract class name, abstract type, directory, matching rule, release type, parent ID, software package name, type of deployment object and other information. Among them, the abstract type includes but is not limited to: data type, configuration type, compressed package type, file type and other types. Among them, the matching rule includes but is not limited to the regular expression type. Among them, the release type includes but is not limited to: independent type and overall type and other types.

[0076] Among them, the software deployment template is a template obtained after abstract definition of different software packages in different development environments. Therefore, in the process of determining the software deployment template corresponding to the target software indicated by the first instruction, the software deployment template corresponding to the target software indicated by the first instruction can be accurately determined according to the software type and software development environment indicated by the first instruction, thereby improving the accuracy of software deployment. Among them, based on the software deployment template set, different types of software in different development environments can be deployed in the same way, thereby improving the versatility of software deployment. Based on the above description, the software deployment method of the graphical developer of autonomous driving applications provided in the embodiment of the present application can improve the accuracy and versatility of software deployment, further improve the reliability and versatility of the development of autonomous driving applications, and improve the safety and versatility of the use of autonomous driving applications.

[0077] In a possible embodiment, in response to the second instruction, the process of determining the association relationship between the deployment object and the target component may include: in response to the second instruction, determining the initial association relationship indicated by the second instruction. If it is determined that the conditional check processing of the initial association relationship passes, then the initial association relationship is determined to be the association relationship between the deployment object and the target component. Otherwise, generating and presenting prompt information.

[0078] The initial association relationship is the initial association relationship between the deployment object and the target component. Specifically, the initial association relationship is the initial association relationship between the deployment object and the target component indicated by the user through the second instruction. After determining the initial association relationship, if it is directly determined as the association relationship between the deployment object and the target component, the target component may fail to deploy the associated deployment object. Therefore, after determining the initial association relationship indicated by the second instruction, the initial association relationship may be subjected to conditional verification.

[0079] Among them, the conditional verification process is used to verify whether the target component associated with the deployment object meets the deployment requirements of the deployment object. Optionally, the conditional verification process includes but is not limited to: verification of memory capacity, verification of storage space, verification of supported runtime environment, verification of target component type and other processing processes. Among them, the process of verification of target component type means that if the type of target component to which the deployment package is deployed is limited in the process of determining the deployment object, then in the process of conditional verification, it is necessary to check whether the type of the associated target component meets the limitation. For example, deployment object A is limited to the type of the target component to which it is deployed as a vehicle domain controller type. In this case, if the type of the target component associated with the deployment object is determined to be a vehicle microcontroller type, it is determined that the target component associated with the deployment object has not passed the verification of the target component type.

[0080] Specifically, after the conditional verification process described above, if it is determined that the conditional verification process for the initial association relationship passes, that is, it is determined that each target component meets the deployment requirements of the associated deployment object, then the initial association relationship is determined to be the association relationship between the deployment object and the target component.

[0081] Specifically, after the conditional verification process described above, if it is determined that the conditional verification process of the initial association relationship has not passed, that is, it is determined that at least one target component does not meet the deployment requirements of the associated deployment object, then it is impossible to determine that the initial association relationship is the association relationship between the deployment object and the target component. At this time, a prompt message can be generated and presented. Among them, the prompt message represents the failure of deployment of the deployment object. Specifically, if it is determined that the conditional verification process of the initial association relationship has not passed, then the association relationship between the deployment object and the target component cannot be determined, and further, the process of deploying the deployment object to the target component associated with the deployment object according to the association relationship described in step S103 cannot be implemented. Optionally, the prompt message can also represent the reason for the failure of deployment of the deployment object, for example, because the target component A does not meet the deployment requirements of the associated deployment object. For example, because the target component A does not meet the memory capacity requirement in the deployment requirements of the associated deployment object.

[0082] Optionally, the conditional check processing process can be implemented by calling the conditional check processing method checkDependencies().

[0083] Among them, in the process of determining the association relationship between the deployment object and the target component in response to the second instruction, the accuracy of the association relationship determination can be improved by performing conditional verification on the initial association relationship, thereby improving the accuracy of software deployment, further improving the reliability of the development of autonomous driving applications, and improving the safety of the use of autonomous driving applications.

[0084] Optionally, the second instruction may also indicate information such as the deployment order of the deployment objects, the deployment method of the deployment objects, and the dependency relationship between the deployment objects. Optionally, the deployment order of the deployment objects, the deployment method of the deployment objects, and the dependency relationship between the deployment objects may be stored and processed. The stored and processed information may be used when the same target software is deployed on different vehicles.

[0085] Optionally, after determining the association relationship between the deployment object and the target component in response to the second instruction, the determined association relationship may be stored. The stored association relationship may be used when the same target software is deployed to the same vehicle. Optionally, the storage of the association relationship may be implemented by calling the association relationship storage method addMachine().

[0086] Figure 2 Schematic diagram of the software deployment method of the autonomous driving application graphical developer provided in this application Figure 2 ,like Figure 2 As shown, in this embodiment Figure 1Based on the embodiment, a process of deploying a deployment object to a target component associated with the deployment object according to an association relationship is described in detail. The method includes:

[0087] Step S201: Acquire a software package according to source information.

[0088] The software deployment template also indicates the source information of the software package.

[0089] Specifically, for the description of the source information of the software package, reference may be made to the description of the configuration processing of the source of the software package in the above embodiment, which will not be repeated here.

[0090] The present application does not limit the process of obtaining the software package according to the source information. Optionally, the source warehouse address of the software package may be determined according to the source information; and then the software package may be obtained from the source warehouse address of the software package.

[0091] Step S202: Determine the deployment file and deployment directory corresponding to the deployment object from the software package.

[0092] Specifically, after the software package is obtained according to the source information, the deployment file and deployment directory corresponding to the deployment object can be determined from the obtained software package.

[0093] After the software package is abstracted to obtain the deployment object, the corresponding relationship between the deployment object and the deployment file and deployment directory in the software package is also determined. Therefore, the deployment file and deployment directory corresponding to each deployment object can be determined from the software package according to the determined corresponding relationship. Each deployment object corresponds to at least one deployment file.

[0094] Step S203: deploy the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object and the association relationship.

[0095] Specifically, according to the deployment file and deployment directory corresponding to the deployment object and the association relationship determined in step S202, the deployment object can be deployed to the target component associated with the deployment object.

[0096] Among them, the present application does not limit the process of deploying the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship. Optionally, the target vehicle also includes a main vehicle domain controller. Among them, the main vehicle domain controller refers to the vehicle domain controller as the main control domain in the vehicle domain controller of the vehicle. Among them, the present application does not limit the number of main vehicle domain controllers included in the target vehicle. Optionally, the number of main vehicle domain controllers included in the target vehicle can correspond to the number of vehicle domains of the target vehicle, that is, each vehicle domain of the target vehicle includes a main vehicle domain controller. Among them, the main vehicle domain controller corresponds to at least one target component. Specifically, all target components included in the target vehicle correspond to the main vehicle domain controller included in the target vehicle. If the target vehicle includes a main vehicle domain controller, all target components included in the target vehicle correspond to the main vehicle domain controller. If the target vehicle includes two main vehicle domain controllers, some of the target components included in the target vehicle correspond to one of the main vehicle domain controllers, and the remaining target components included in the target vehicle correspond to the other main vehicle domain controller.

[0097] Optionally, if the target vehicle also includes a main vehicle domain controller, and the main vehicle domain controller corresponds to at least one target component, then the process of deploying the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship, may include: determining the deployment object set corresponding to the main vehicle domain controller according to the correspondence and association relationship between the main vehicle domain controller and the target component. Send the deployment file and deployment directory corresponding to the deployment object included in the deployment object set to the corresponding main vehicle domain controller, so that the main vehicle domain controller sends the deployment file and deployment directory corresponding to the deployment object to the target component associated with the deployment object.

[0098] Optionally, the process of determining the set of deployment objects corresponding to the main vehicle domain controller according to the correspondence and association relationship between the main vehicle domain controller and the target component may include:

[0099] Determine the target component corresponding to the main vehicle domain controller;

[0100] According to the association relationship, determine the deployment object associated with each target component;

[0101] A set of deployment objects associated with each target component is determined as a deployment object set corresponding to the vehicle domain controller.

[0102] The deployment object set includes at least one deployment object. Specifically, based on the process of determining the deployment object set described above, the deployment objects included in the deployment object set are related to the target components corresponding to the main vehicle domain controller. If the target vehicle includes only one main vehicle control domain, the target components corresponding to the main vehicle domain controller are all target components of the target vehicle, and the deployment objects included in the deployment object set are deployment objects associated with all target components, that is, all deployment objects indicated by the deployment template.

[0103] Optionally, in the process of sending the deployment files and deployment directories corresponding to the deployment objects included in the deployment object set to the corresponding main vehicle domain controller, so that the main vehicle domain controller sends the deployment files and deployment directories corresponding to the deployment objects to the target components associated with the deployment objects, it is possible to enable the main vehicle domain controller to send the deployment files and deployment directories corresponding to the deployment objects to the target components associated with the deployment objects in parallel based on Agent technology.

[0104] Specifically, before sending the deployment files and deployment directories corresponding to the deployment objects included in the deployment object set to the corresponding main vehicle domain controller, the Agent agent can be pre-set in the main vehicle domain controller of the target vehicle and the target component. The Agent agent technology can enable the main vehicle domain controller to send the deployment files and deployment directories corresponding to the deployment objects to the target components associated with the deployment objects in parallel, thereby improving the deployment efficiency of the deployment objects and thus improving the efficiency of software deployment. The Agent agent technology can make the deployment results between the deployment objects unaffected, thereby improving the flexibility and efficiency of software deployment.

[0105] Optionally, while sending the deployment files and deployment directories corresponding to the deployment objects included in the deployment object set to the corresponding main vehicle domain controller, the association relationship can also be sent to the main vehicle domain controller so that the main vehicle domain controller can send the deployment files and deployment directories corresponding to the deployment objects to the target component associated with the deployment objects based on the association relationship.

[0106] Optionally, after sending the deployment files and deployment directories corresponding to the deployment objects included in the deployment object set to the corresponding master vehicle domain controller, the master vehicle domain controller executes the deployment script to deploy the deployment objects included in the deployment object set to the master vehicle domain controller. Optionally, after sending the deployment files and deployment directories corresponding to the deployment objects to the target component associated with the deployment object, the target component executes the deployment script to deploy the deployment objects associated with the target component to the target component.

[0107] Among them, in the process of deploying the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object, as well as the association relationship, it is first deployed in the main vehicle domain controller, and then distributedly deployed to each target component based on Agent technology, which can improve the efficiency and flexibility of software deployment, further improve the efficiency of the development of autonomous driving applications, and improve the real-time use of autonomous driving applications.

[0108] The embodiment of the present application provides a process for deploying a deployment object to a target component associated with the deployment object based on an association relationship. The process comprises obtaining a software package based on source information, determining a deployment file and a deployment directory corresponding to the deployment object from the software package, and deploying the deployment object to the target component associated with the deployment object based on the deployment file and the deployment directory corresponding to the deployment object and the association relationship. The deployment object can be efficiently and accurately deployed to the associated target component through the deployment file and the deployment directory corresponding to the deployment object and the association relationship, thereby improving the accuracy and efficiency of software deployment, further improving the reliability and efficiency of the development of autonomous driving applications, and improving the safety and real-time performance of the use of autonomous driving applications.

[0109] In a possible embodiment, the software deployment method in the graphical developer of an autonomous driving application further includes: determining a first connection state and a second connection state. If it is determined that both the first connection state and the second connection state are connected normally, a process of deploying the deployment object to a target component associated with the deployment object is executed according to the deployment file and deployment directory corresponding to the deployment object and the association relationship. Otherwise, a prompt message is generated and presented.

[0110] The first connection state is the connection state between the main vehicle domain controller and the target component corresponding to the main vehicle domain controller.

[0111] Specifically, if the connection state between the execution subject and the main vehicle domain controller is a normal connection state, the first connection state is a normal connection state. If the connection state between the main vehicle domain controller and each target component corresponding to the main vehicle domain controller is a normal connection state, the second connection state is a normal connection state.

[0112] Optionally, the first connection state and the second connection state may be determined by connection test processing. Optionally, the connection test processing includes but is not limited to test processing processes such as SSH connection validity test processing and port response test processing. Optionally, the first connection state may be determined by SSH connection validity test processing. Optionally, the second connection state may be determined by port response test processing.

[0113] The prompt information indicates that the deployment of the deployment object has failed. Optionally, the prompt information may also include the reason for the deployment failure of the deployment object, for example, due to an abnormal connection state with the main vehicle domain controller, and / or an abnormal connection state between the main vehicle domain controller and a target component corresponding to at least one main vehicle domain controller.

[0114] Among them, before deploying the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship, the connection status between the main vehicle domain controller and the connection status between the target components corresponding to the main vehicle domain controller are confirmed, which can improve the deployment success rate of the deployment object, thereby improving the success rate and deployment efficiency of software deployment, further improving the success rate and efficiency of the development of autonomous driving applications, and improving the safety and real-time use of autonomous driving applications.

[0115] Optionally, the first connection and the second connection may be determined before receiving the second instruction, so that the user can determine the second instruction according to the prompt information.

[0116] In a possible embodiment, the software deployment method of the autonomous driving application graphical developer also includes: performing target machine management processing.

[0117] Among them, the target machine is the platform to which the software will be deployed. In the embodiment of the present application, the target machine is the vehicle to which the software described above will be deployed.

[0118] Optionally, the process of performing target machine management processing may include:

[0119] Constructing basic information of the target machine; wherein the basic information of the target machine includes but is not limited to the type of the target machine, the name of the target machine, the main vehicle domain controller and the target component included in the target machine, the correspondence between the main vehicle domain controller and the target component included in the target machine, etc. Optionally, the constructed basic information of the target machine can be stored in the management list of the target machine.

[0120] Create a connection between the execution subject and the main vehicle domain controller included in the target machine; optionally, the connection between the execution subject and the main vehicle domain controller included in the target machine can be an SSH connection, and optionally, a username and password for the SSH connection can be created.

[0121] A connection is created between a main vehicle domain controller included in the target machine and a target component included in the target machine. Optionally, the connection between the main vehicle domain controller included in the target machine and the target component included in the target machine can be created by setting an IP and a port of the corresponding connection.

[0122] Optionally, the target machine for target machine management processing may be a target vehicle to which the target software was deployed during a historical software deployment process, or may be a vehicle known to the user on which autonomous driving software can be deployed.

[0123] Optionally, in response to the first instruction, if it is determined that the target vehicle indicated by the first instruction is a vehicle that has been managed, the state of the target machine can be obtained and presented based on the connection information in the managed target machine, that is, the first connection state and the second connection state described in the above embodiment. This allows the user to determine the second instruction based on the presented state of the target machine. For example, when determining the initial association relationship, the target component in the target vehicle whose connection state of the main vehicle domain controller is normal and whose connection state with the main vehicle domain controller is normal is determined as a target component that can be associated with the deployment object.

[0124] Optionally, the target machine status acquisition may be implemented by calling the target machine status acquisition method validateTargetBeforeDeploy().

[0125] Optionally, in response to the first instruction, if it is determined that the target vehicle indicated by the first instruction is not a vehicle that has undergone target machine management processing, target machine management processing can be performed on the target vehicle indicated by the first instruction first, and then based on the connection information in the managed target machine, the status of the target machine can be obtained and presented.

[0126] Optionally, the target machine can be managed by calling the target machine management method addTargetInfo().

[0127] In a possible embodiment, the software deployment method of the autonomous driving application graphical developer further includes: obtaining a deployment status of a deployment object, and processing the deployment object according to the deployment status of the deployment object.

[0128] The deployment status indicates whether the deployment object is deployed or not, wherein the deployment status is a deployed state or an undeployed state.

[0129] Among them, the present application does not limit the process of obtaining the deployment status of the deployment object. Optionally, if the target vehicle includes a main vehicle domain controller, the deployment status of the deployment object fed back by the main vehicle domain controller can be received, wherein the deployment status of the deployment object fed back by the main vehicle domain controller is generated according to the information fed back by each target component. Optionally, if the deployment of the deployment object associated with the target component is completed, the information of successful deployment of the deployment object can be fed back to the main vehicle domain controller. At this time, the deployment status of the deployment object generated by the main controller is a deployed state. Optionally, if the main controller sends the deployment file and deployment directory corresponding to the deployment object to the target component associated with the deployment object within a preset time, and does not receive information on successful deployment of the deployment object fed back by the target component, at this time, the deployment status of the deployment object generated by the main controller is an undeployed state.

[0130] Among them, the present application does not limit the process of processing the deployment object according to the deployment status of the deployment object. Optionally, it can be at least one of the processing processes such as breakpoint resumption processing and rollback processing.

[0131] Among them, during the software deployment process, by obtaining the deployment status of the deployment object, the progress of the software deployment can be effectively monitored, the intuitiveness and reliability of the software deployment can be improved, and the efficiency and accuracy of the software deployment can be further improved. Among them, processing the deployment object according to the deployment status of the deployment object can effectively solve the problems in the software deployment process and improve the efficiency and success rate of software deployment. Based on the above description, the software deployment method provided in the embodiment of the present application improves the efficiency, accuracy, and success rate of software deployment, further improves the reliability and efficiency of the development of autonomous driving applications, and improves the safety and real-time use of autonomous driving applications.

[0132] In a possible embodiment, the process of processing the deployment object according to the deployment status of the deployment object may include: when it is determined that the deployment processing of the deployment object is interrupted, the deployment object whose deployment status is characterized as an incomplete deployment state is subjected to breakpoint resumption processing. When it is determined that the deployment processing of the deployment object fails, the deployment object whose deployment status is characterized as a completed deployment state and the deployment object whose deployment status is characterized as an incomplete deployment state but has transmitted some deployment files and deployment directories are subjected to rollback processing.

[0133] Specifically, breakpoint-resume processing is of great significance in complex deployment and transmission scenarios. In emergencies such as network interruption, power failure, or target machine unavailability, breakpoint-resume ensures that the task can be continued from the interrupted location without having to start over, thereby improving task efficiency.

[0134] Optionally, when it is determined that the deployment process of the deployment object is interrupted, the process of performing breakpoint-resume processing on the deployment object whose deployment status is characterized as an incomplete deployment state may include:

[0135] When it is determined that the deployment process of the deployment object is interrupted, a breakpoint record table may be generated, wherein the breakpoint record table is a table consisting of the deployment files and deployment directories that have not been transferred for the deployment object whose deployment status is characterized as the deployment incomplete state. The deployment files and deployment directories that have not been transferred for the deployment object whose deployment status is characterized as the deployment incomplete state may be all or part of the deployment files and deployment directories corresponding to the deployment object.

[0136] When it is determined that the deployment processing of the deployment object is restored, the deployment object whose deployment status is characterized as an incomplete deployment state is resumed according to the breakpoint record table, that is, the deployment files and deployment directories that have not been transferred in the breakpoint record table are continued to be transferred to continue the deployment processing of the deployment object whose deployment status is characterized as an incomplete deployment state.

[0137] Optionally, before performing breakpoint resuming processing on the deployment object whose deployment status is characterized as an incomplete deployment state according to the breakpoint record table, in order to prevent the interruption processing from affecting the deployed files and directories that have been transmitted, the deployment files and directories that have been transmitted can also be subjected to integrity verification processing, wherein the deployed files and directories that have been transmitted include the deployment files and directories corresponding to the deployed objects in the completed deployment state, and also include the deployed files and directories that have been transmitted corresponding to the deployed objects in the incomplete deployment state. After the integrity verification processing described above, if there are deployed files and directories that have been transmitted and fail to be verified, they can be retransmitted to ensure the accuracy of software deployment.

[0138] Optionally, after the breakpoint-resume processing described above, if the deployment status of each deployment object is characterized as a deployed complete state, a software deployment report can be generated and presented. Optionally, the software deployment report can represent the completion time of the software deployment, the data size of the software deployment, and the error conditions of the software deployment, for example, the deployment processing of the deployment object is interrupted, etc.

[0139] Specifically, during the software deployment process, errors may occur (such as file loss, configuration errors, or network interruptions). Rollback processing can ensure that the system, that is, the target vehicle, can be quickly recovered when problems occur, thereby avoiding downtime or functional failure. Through rollback processing, users can safely try to deploy new software versions or test new software functions without worrying about the serious consequences of software deployment failure. Rollback processing also increases the robustness and safety of the system, that is, the target vehicle.

[0140] Optionally, when it is determined that the deployment process of the deployment object fails, the process of rolling back the deployment object whose deployment status is characterized as a deployed completed state and the deployment object whose deployment status is characterized as an undeployed completed state but some deployment files and deployment directories have been transferred may include:

[0141] Determine rollback information according to a deployment object whose deployment status is characterized as a deployed state, and a deployment object whose deployment status is characterized as an undeployed state but in which part of the deployment files and deployment directories have been transferred; wherein the rollback information includes the transferred deployment files and deployment directories corresponding to the deployment object whose deployment status is characterized as a deployed state, and the transferred deployment files and deployment directories corresponding to the deployment object whose deployment status is characterized as an undeployed state;

[0142] Perform rollback processing according to the rollback information, wherein the rollback processing refers to deleting the deployed files and deployment directories that have been transferred and included in the rollback information.

[0143] Optionally, it can also be determined whether the current software deployment process is the first software deployment process of the target machine, that is, no other software has been deployed before the current software deployment. If it is determined that the current software deployment process is the first software deployment process of the target machine, the rollback process described above can be directly executed. If it is determined that the current software deployment process is not the first software deployment process of the target machine, after directly executing the rollback process described above, the backup file of the software last deployed on the target machine can be obtained, and the target machine can be redeployed according to the backup file to ensure that the target machine recovers the state before the current software deployment. Optionally, the backup file of the software last deployed on the target machine is obtained by backing up the software package of the software deployed in the target machine before the software deployment process starts, when it is determined that the current software deployment process is not the first software deployment process of the target machine.

[0144] Optionally, when it is determined that the deployment process of the deployment object is successful but the software fails to run, or in response to a rollback instruction from the user, a rollback process may also be performed. If a rollback operation is performed when it is determined that the deployment process of the deployment object is successful but the software fails to run, the rollback information determined may be the deployment files and deployment directories of all deployment objects. If a rollback operation is performed in response to a rollback instruction from the user, the rollback information may be extracted from the rollback instruction from the user. For example, the customer's instruction information may indicate that a rollback process is performed on some deployment objects, so that the indicated part of the deployment objects may be redeployed.

[0145] Optionally, the status of the rollback process described above can be monitored, and prompt information can be generated and presented. If the status of the rollback process is a rollback success state, the prompt information indicates that the rollback process is successful, so as to prompt the user to redo the software deployment process. If the status of the rollback process is a rollback failure state, the prompt information indicates that the rollback process failed, and the prompt information can also indicate the reasons why the rollback process did not fail, such as the specific error information and error log of the failure, so as to prompt the user to perform manual operations. Optionally, the information of the rollback process with a rollback success state and the information of the rollback process with a rollback failure state can be stored in the rollback record table.

[0146] Among them, through the breakpoint resumption processing, after determining that the deployment processing of the deployment object is interrupted, the deployment process can be quickly resumed, thereby improving the deployment efficiency of the deployment object and further improving the efficiency of software deployment. Among them, through the rollback processing, when it is determined that the deployment processing of the deployment object has failed, it can be restored to the state before deployment to improve the efficiency of redeployment and reduce the impact and consequences of deployment failure, thereby improving the security and robustness of software deployment. In summary, the software deployment method provided in the embodiment of the present application improves the efficiency, security, and robustness of software deployment, further improves the reliability and efficiency of the development of autonomous driving applications, and improves the security and real-time nature of the use of autonomous driving applications.

[0147] In a possible embodiment, the first instruction may further indicate a software deployment type; wherein the software deployment type is an incremental deployment type or a full deployment type.

[0148] Among them, if the first instruction indicates to deploy a target software in the target vehicle, the full deployment type can be to deploy the target software in the target machine when the target software is not deployed in the target machine; the incremental deployment type can be to increase the deployment files and directories corresponding to the target software when the target software has been deployed in the target machine, and perform software deployment in the target machine based on the increased deployment files and deployment directories.

[0149] Among them, if the first instruction instructs to deploy multiple target software in the target vehicle, the full deployment type can be to deploy the above-described multiple target software in the target machine when the above-described multiple target software are not deployed in the target machine; in addition to the scenario corresponding to the incremental deployment type described above, the incremental deployment type can also be to deploy the remaining undeployed target software in the target machine when some of the above-described multiple target software have been deployed in the target machine.

[0150] Optionally, if the first instruction indicates that the software deployment type is an incremental deployment type, the software deployment process may be completed through the following process:

[0151] Traverse all files in the target machine's corresponding installation package, calculate the checkSum value and import it into Table 1 in the database;

[0152] Get the source deployment package file, that is, the target software package, and traverse all files in the source deployment package file, calculate the checkSum value and import it into Table 2 in the database;

[0153] Compare Table 1 and Table 2 to generate an incremental deployment list; wherein the incremental deployment list includes deployment files and deployment directories to be deployed; optionally, this step can be implemented by calling the algorithm generateDeployPlan(); wherein the deployment files and deployment directories to be deployed can be part of the deployment files and deployment directories corresponding to a certain target software, or all of the deployment files and deployment directories corresponding to part of the target software;

[0154] Incremental software deployment is performed based on the incremental deployment list, that is, deployment processing is performed only on the deployment files and deployment directories to be deployed included in the incremental deployment list.

[0155] Optionally, if the first instruction indicates that the software deployment type is a full deployment type, the software deployment can be performed according to the software deployment process described in the above embodiment. Optionally, before performing full software deployment, the source deployment package file, that is, the target software package, can be obtained, and all files in the source deployment package file can be traversed, and the checkSum value can be calculated and imported into Table 2 in the database.

[0156] Among them, by distinguishing the types of software deployment, when deploying the software, only the files that need to be deployed can be deployed, thereby improving deployment efficiency.

[0157] In a possible embodiment, in response to a third instruction, a software deployment template corresponding to multiple target software indicated by the third instruction can be determined; wherein the third instruction is used to indicate the target software to be deployed in multiple target vehicles; the software deployment template is a template obtained after abstractly defining the software package; the software deployment template indicates the deployment object; the deployment object is an object determined after abstractly defining the software package; the target vehicle includes a target component; in response to a fourth instruction, the association relationship between the deployment object and the target component is determined; wherein the second instruction is used to indicate the association relationship; according to the association relationship, the deployment object is deployed to the target component associated with the deployment object.

[0158] Among them, the third instruction is a parallel deployment instruction. The parallel deployment instruction can execute deployment tasks on multiple target machines at the same time. Compared with serial deployment executed one by one, it significantly shortens the deployment time, can quickly complete version upgrades and function expansions, improves the standardization of the deployment process, and reduces the human error rate, thereby reducing operation and maintenance costs.

[0159] In which, in response to the parallel deployment instruction, the corresponding target software can be deployed in multiple target vehicles in parallel. Optionally, the target components included in each target vehicle can be the same or different. Optionally, the target software deployed in each target vehicle can be the same software or different software.

[0160] In the above parallel deployment process, the process of deploying software to each target machine can refer to the software deployment method described in the above embodiment, which will not be described in detail here.

[0161] Among them, the software deployment method of the graphical developer of the autonomous driving application provided in the embodiment of the present application can be implemented based on the graphical development platform of the autonomous driving application, such as the GAASD platform. Optionally, a software deployment template management module, a target machine management module, a deployment design management module, a deployment execution management module, an Agent agent module and other modules can be set in the graphical development platform to implement the software deployment method of the graphical developer of the autonomous driving application provided in the embodiment of the present application.

[0162] Specifically, the software deployment template management module is mainly for the management of software deployment templates, and improves the software deployment customization capability through standardized software deployment templates. The software deployment template management module mainly describes the relationship between deployment templates, deployment packages, and deployment objects.

[0163] Specifically, the target machine management module is mainly used to manage the remote domain controller to be deployed, that is, the target vehicle. It can configure the SSH connection information of the SOC and MCU inside the management domain controller and provide the necessary information of the SSH connection for software deployment execution.

[0164] Specifically, the deployment design management module is mainly used to complete the deployment plan of the object to be deployed, mainly to complete the binding relationship between the deployment object and the specific SOC and MCU. And through the deployment execution management module and the AGENT agent module, the parallel deployment of the deployment object and the distributed deployment of multiple SOCs and MCUs are completed.

[0165] Specifically, deployment execution management mainly includes concurrent deployment scheduling, breakpoint continuation, deployment rollback, etc. It is responsible for issuing control instructions to the deployment objects and the deployment files in the objects, and completing the status update management of the deployment objects and deployment files.

[0166] Specifically, the Agent module, which is mainly composed of tools and scripts, is responsible for completing the status update of deployment files, backup and rollback of overwritten files, and routing distribution capabilities of distributed deployment.

[0167] Figure 3A schematic diagram of the structure of the software deployment device of the autonomous driving application graphical developer provided in this application, such as Figure 3 As shown, the software deployment device 30 of the autonomous driving application graphical developer provided in this embodiment includes:

[0168] The first determination module 301 is used to determine, in response to the first instruction, a software deployment template corresponding to the target software indicated by the first instruction; wherein the first instruction is used to indicate the target software to be deployed in the target vehicle; the software deployment template is a template obtained after abstractly defining the software package; the software deployment template indicates a deployment object; the deployment object is an object determined after abstractly defining the software package; the target vehicle includes a target component;

[0169] A second determination module 302, configured to determine an association relationship between the deployment object and the target component in response to a second instruction; wherein the second instruction is configured to indicate the association relationship;

[0170] The deployment module 303 is used to deploy the deployment object to the target component associated with the deployment object according to the association relationship.

[0171] In a possible embodiment, the first instruction indicates the software type and the software development environment; the first determination module 301 is specifically used to extract, in response to the first instruction, a software deployment template corresponding to both the software type and the software development environment from a preset software deployment template set; wherein the software deployment template set includes at least one software deployment template, and the software deployment templates in the software deployment template set are templates obtained after abstract definition of different software packages under different development environments.

[0172] In a possible embodiment, the second determination module 302 is specifically used to determine the initial association relationship indicated by the second instruction in response to the second instruction; wherein the initial association relationship is the initial association relationship between the deployment object and the target component; if it is determined that the conditional verification process of the initial association relationship passes, then the initial association relationship is determined to be the association relationship between the deployment object and the target component; otherwise, a prompt message is generated and presented; wherein the prompt message indicates that the deployment of the deployment object has failed.

[0173] In a possible embodiment, the software deployment template also indicates the source information of the software package; the deployment module 303 includes: an acquisition unit, which is used to acquire the software package according to the source information; a determination unit, which is used to determine the deployment file and deployment directory corresponding to the deployment object from the software package; and a deployment unit, which is used to deploy the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object and the association relationship.

[0174] In a possible embodiment, the target vehicle also includes a main vehicle domain controller; the main vehicle domain controller corresponds to at least one target component; a deployment unit is specifically used to determine a deployment object set corresponding to the main vehicle domain controller based on the correspondence and association relationship between the main vehicle domain controller and the target component; the deployment object set includes at least one deployment object; the deployment files and deployment directories corresponding to the deployment objects included in the deployment object set are sent to the corresponding main vehicle domain controller, so that the main vehicle domain controller sends the deployment files and deployment directories corresponding to the deployment objects to the target component associated with the deployment object.

[0175] In a possible embodiment, the deployment unit is also used to determine a first connection state and a second connection state; the first connection state is the connection state between the main vehicle domain controller; the second connection state is the connection state between the main vehicle domain controller and the target component corresponding to the main vehicle domain controller; if it is determined that the first connection state and the second connection state are both normal connections, then a process of deploying the deployment object to the target component associated with the deployment object according to the deployment file and deployment directory corresponding to the deployment object, and the association relationship is executed; otherwise, a prompt message is generated and presented; wherein the prompt message indicates that the deployment of the deployment object has failed.

[0176] In a possible embodiment, the deployment unit is further used to obtain a deployment status of the deployment object; wherein the deployment status is a deployment completed state or an incomplete deployment state; and the deployment object is processed according to the deployment status of the deployment object.

[0177] In a possible embodiment, the deployment unit is further specifically used to, when it is determined that the deployment process of the deployment object is interrupted, perform breakpoint resume processing on the deployment object whose deployment status is characterized as an undeployed state; when it is determined that the deployment process of the deployment object fails, perform rollback processing on the deployment object whose deployment status is characterized as a deployed completed state, and the deployment object whose deployment status is characterized as an undeployed state but some deployment files and deployment directories have been transmitted. The software deployment device of the graphical developer of the autonomous driving application provided in this embodiment can execute the method provided in the above method embodiment, and its implementation principle and technical effect are similar, so this embodiment will not be repeated here.

[0178] Figure 4 This is a schematic diagram of the structure of the electronic device provided in this application. Figure 4 As shown, the electronic device 40 provided in this embodiment includes: at least one processor 401 and a memory 402. Optionally, the device 40 also includes a communication component 403. The processor 401, the memory 402 and the communication component 403 are connected via a bus 404.

[0179] In a specific implementation process, at least one processor 401 executes the computer-executable instructions stored in the memory 402, so that at least one processor 401 executes the above method.

[0180] The specific implementation process of the processor 401 can be found in the above method embodiment, and its implementation principle and technical effect are similar, so this embodiment will not be repeated here.

[0181] In the above embodiments, it should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), etc. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the invention may be directly implemented as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.

[0182] The memory may include a high-speed memory (Random Access Memory, RAM), and may also include a non-volatile memory (Non-volatile Memory, NVM), such as at least one disk storage.

[0183] The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, the bus in the drawings of the present application is not limited to only one bus or one type of bus.

[0184] The present application also provides a computer program product, including a computer program, which implements the above method when executed by a processor.

[0185] The present application also provides a computer-readable storage medium, in which computer-executable instructions are stored. When a processor executes the computer-executable instructions, the above method is implemented.

[0186] The above-mentioned readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk. The readable storage medium can be any available medium that can be accessed by a general or special-purpose computer.

[0187] An exemplary readable storage medium is coupled to a processor so that the processor can read information from the readable storage medium and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can be located in an application specific integrated circuit (Application Specific Integrated Circuits, referred to as: ASIC). Of course, the processor and the readable storage medium can also exist in the device as discrete components.

[0188] The division of units is only a logical function division, and there may be other divisions in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interface, device or unit, which can be electrical, mechanical or other forms.

[0189] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0190] In addition, each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0191] If the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium, including several instructions for a computer device (which can be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods of each embodiment of the present invention. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), disk or optical disk, etc. Various media that can store program codes.

[0192] Those skilled in the art can understand that all or part of the steps of implementing the above-mentioned method embodiments can be completed by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the steps of the above-mentioned method embodiments are executed; and the aforementioned storage medium includes: ROM, RAM, disk or optical disk and other media that can store program codes.

[0193] Finally, it should be noted that those skilled in the art will readily conceive of other embodiments of the present invention after considering the specification and practicing the invention disclosed herein. The present invention is intended to cover any variations, uses or adaptations of the present invention, which follow the general principles of the present invention and include common knowledge or customary technical means in the art not disclosed by the present invention, are not limited to the precise structure described above and shown in the drawings, and may be modified and changed in various ways without departing from the scope thereof. The scope of the present invention is limited only by the appended claims.

Claims

1. A software deployment method for an autonomous driving application graphical developer, characterized in that: include: In response to a first instruction, a software deployment template corresponding to the target software indicated by the first instruction is determined; wherein the first instruction is used to indicate the target software to be deployed in the target vehicle; the software deployment template is a template obtained after abstractly defining the software package; the software deployment template indicates a deployment object; the deployment object is an object determined after abstractly defining the software package; the target vehicle includes a target component; In response to a second instruction, determining an association relationship between the deployment object and the target component; wherein the second instruction is used to indicate the association relationship; According to the association relationship, the deployment object is deployed to the target component associated with the deployment object.

2. The method according to claim 1, characterized in that The first instruction indicates the software type and the software development environment; In response to a first instruction, determining a software deployment template corresponding to the target software indicated by the first instruction includes: In response to the first instruction, a software deployment template corresponding to both the software type and the software development environment is extracted from a preset software deployment template set; wherein the software deployment template set includes at least one software deployment template, and the software deployment templates in the software deployment template set are templates obtained after abstract definition of different software packages under different development environments.

3. The method according to claim 1, characterized in that In response to the second instruction, determining an association relationship between the deployment object and the target component includes: In response to the second instruction, determining an initial association relationship indicated by the second instruction; wherein the initial association relationship is an initial association relationship between a deployment object and a target component; If it is determined that the conditional verification process of the initial association relationship passes, then determining that the initial association relationship is an association relationship between the deployment object and the target component; Otherwise, a prompt message is generated and presented; wherein the prompt message indicates that the deployment of the deployment object has failed.

4. The method according to claim 1, characterized in that The software deployment template also indicates the source information of the software package; Deploying the deployment object to a target component associated with the deployment object according to the association relationship includes: Acquire the software package according to the source information; Determine, from the software package, a deployment file and a deployment directory corresponding to the deployment object; According to the deployment file and deployment directory corresponding to the deployment object and the association relationship, the deployment object is deployed to the target component associated with the deployment object.

5. The method according to claim 4, characterized in that The target vehicle further comprises a main vehicle domain controller; the main vehicle domain controller corresponds to at least one target component; Deploying the deployment object to a target component associated with the deployment object according to the deployment file and the deployment directory corresponding to the deployment object and the association relationship includes: Determine a deployment object set corresponding to the master vehicle domain controller according to the correspondence between the master vehicle domain controller and the target component, and the association relationship; the deployment object set includes at least one deployment object; The deployment files and deployment directories corresponding to the deployment objects included in the deployment object set are sent to the corresponding main vehicle domain controller, so that the main vehicle domain controller sends the deployment files and deployment directories corresponding to the deployment objects to the target component associated with the deployment objects.

6. The method according to claim 5, characterized in that The method further comprises: Determine a first connection state and a second connection state; the first connection state is a connection state with the main vehicle domain controller; the second connection state is a connection state between the main vehicle domain controller and a target component corresponding to the main vehicle domain controller; If it is determined that both the first connection state and the second connection state are connected normally, executing a process of deploying the deployment object to a target component associated with the deployment object according to the deployment file and the deployment directory corresponding to the deployment object and the association relationship; Otherwise, a prompt message is generated and presented; wherein the prompt message indicates that the deployment of the deployment object has failed.

7. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: Obtaining the deployment status of the deployment object; wherein the deployment status is a deployment completed state or an undeployed state; The deployment object is processed according to the deployment status of the deployment object.

8. The method according to claim 7, characterized in that Processing the deployment object according to the deployment state of the deployment object includes: When it is determined that the deployment process of the deployment object is interrupted, performing breakpoint resume processing on the deployment object whose deployment status is characterized as an undeployed state; When it is determined that the deployment process of the deployment object fails, a rollback process is performed on the deployment object whose deployment status is characterized as a deployed state and the deployment object whose deployment status is characterized as an incomplete deployment state but part of the deployment files and deployment directories have been transferred.

9. A software deployment device for an autonomous driving application graphical developer, characterized in that: include: A first determination module is used to determine, in response to a first instruction, a software deployment template corresponding to the target software indicated by the first instruction; wherein the first instruction is used to indicate the target software to be deployed in the target vehicle; the software deployment template is a template obtained after abstractly defining the software package; the software deployment template indicates a deployment object; the deployment object is an object determined after abstractly defining the software package; the target vehicle includes a target component; A second determining module, configured to determine, in response to a second instruction, an association relationship between the deployment object and the target component; wherein the second instruction is configured to indicate the association relationship; A deployment module is used to deploy the deployment object to a target component associated with the deployment object according to the association relationship.

10. An electronic device, characterized in that: include: Memory, processor; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory, so that the processor performs the method according to any one of claims 1 to 8.