CN116301886A - Data processing method, device, electronic device, and computer-readable storage medium - Google Patents
Data processing method, device, electronic device, and computer-readable storage medium Download PDFInfo
- Publication number
- CN116301886A CN116301886A CN202310176713.2A CN202310176713A CN116301886A CN 116301886 A CN116301886 A CN 116301886A CN 202310176713 A CN202310176713 A CN 202310176713A CN 116301886 A CN116301886 A CN 116301886A
- Authority
- CN
- China
- Prior art keywords
- target
- list
- item
- module
- project
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
技术领域technical field
本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置、电子设备及计算机可读存储介质。The present application relates to the field of computer technology, and in particular, to a data processing method, device, electronic equipment, and computer-readable storage medium.
背景技术Background technique
现有的软件开发过程中,需要对一个项目的代码进行编译、验证、版本管理等操作,目前通常是通过工作人员输入各种命令来实现相应的功能。也即每执行一次操作,都需要输入对应的命令来完成,而软件开发过程中往往需要对多个项目进行多次编译、验证、版本管理等反复操作,使得软件开发的过程较为繁琐,且掌握输入命令实现编译、验证、版本管理等操作对一般开发人员来说较为困难,费时又容易出错。In the existing software development process, it is necessary to perform operations such as compilation, verification, and version management on the code of a project. At present, the corresponding functions are usually realized through the input of various commands by the staff. That is to say, every time an operation is performed, it is necessary to enter the corresponding command to complete it. In the process of software development, it is often necessary to perform repeated operations such as compilation, verification, and version management on multiple projects, which makes the process of software development cumbersome and difficult to master. Inputting commands to implement operations such as compilation, verification, and version management is difficult for ordinary developers, time-consuming and error-prone.
发明内容Contents of the invention
本申请提供一种数据处理方法、装置、电子设备及计算机可读存储介质,以解决现有技术中需要通过工作人员输入各种命令来实现编译、验证、版本管理等操作,导致软件开发的过程较为繁琐,且掌握输入命令实现编译、验证、版本管理等操作对一般开发人员来说较为困难,费时又容易出错的问题。The present application provides a data processing method, device, electronic equipment, and computer-readable storage medium to solve the problem in the prior art that requires staff to input various commands to implement operations such as compiling, verification, and version management, resulting in the process of software development. It is cumbersome, and it is difficult for ordinary developers to master the input commands to realize compilation, verification, version management and other operations, which is time-consuming and error-prone.
第一方面,本申请提供一种数据处理方法,包括:响应用户基于功能列表的第一操作命令,获取所述第一操作命令选中的目标功能对应的命令脚本;响应用户基于对象列表的第二操作命令,获取所述第二操作命令选中的目标对象对应的目标代码;运行所述命令脚本,以对所述目标代码进行所述目标功能对应的处理,得到处理结果。In the first aspect, the present application provides a data processing method, including: responding to the user's first operation command based on the function list, obtaining the command script corresponding to the target function selected by the first operation command; responding to the user's second operation command based on the object list The operation command is used to obtain the target code corresponding to the target object selected by the second operation command; to run the command script to perform processing corresponding to the target function on the target code to obtain a processing result.
本申请实施例中,用户通过选择对象列表和功能列表中的目标对象和目标功能,即可对目标对象对应的目标代码执行目标功能对应的命令脚本,无需再手动输入命令,简化了用户的操作过程,降低了用户操作的难度。In the embodiment of this application, by selecting the target object and target function in the object list and function list, the user can execute the command script corresponding to the target function for the target code corresponding to the target object, and no need to manually input commands, which simplifies the user's operation The process reduces the difficulty of user operation.
结合上述第一方面提供的技术方案,在一些可能的实施方式中,若所述目标功能为第一类功能,所述对象列表包括项目列表,所述项目列表包含一个或多个项目,每个所述项目对应一个项目代码,每个所述项目包括至少一个模块;同一项目下的所有模块共用同一份项目代码,每个模块对应一组参数,若所述目标对象为目标项目,所述获取所述第二操作命令选中的目标对象对应的目标代码,包括:获取所述目标项目的项目代码,所述目标项目的项目代码为所述目标代码。In combination with the technical solution provided in the first aspect above, in some possible implementation manners, if the target function is a first-type function, the object list includes an item list, and the item list includes one or more items, each The project corresponds to a project code, and each project includes at least one module; all modules under the same project share the same project code, and each module corresponds to a set of parameters. If the target object is a target project, the acquisition The target code corresponding to the target object selected by the second operation command includes: acquiring an item code of the target item, where the item code of the target item is the target code.
本申请实施例中,由于不同类型的功能需要的目标代码不同,在获取该目标项目对应的目标代码时,根据目标功能的类型,确定获取目标代码的方式,从而可以提高本方案的灵活性。In the embodiment of the present application, since different types of functions require different target codes, when obtaining the target code corresponding to the target item, the method of obtaining the target code is determined according to the type of the target function, thereby improving the flexibility of the solution.
结合上述第一方面提供的技术方案,在一些可能的实施方式中,若所述目标功能为第二类功能,所述对象列表包括项目列表和模块列表,所述项目列表中的每个项目对应一个模块列表,每个项目对应一个项目代码,同一模块列表中每个模块共用该模块列表对应的项目对应的项目代码,每个模块对应一组参数,若所述目标对象包括目标项目和目标模块,所述获取所述第二操作命令选中的目标对象对应的目标代码,包括:获取所述目标项目对应的项目代码,以及获取所述目标模块对应的目标参数;根据所述目标参数和所述目标项目对应的项目代码,得到所述目标对象对应的目标代码。In combination with the technical solution provided in the first aspect above, in some possible implementation manners, if the target function is the second type of function, the object list includes an item list and a module list, and each item in the item list corresponds to A module list, each project corresponds to a project code, each module in the same module list shares the project code corresponding to the project corresponding to the module list, and each module corresponds to a set of parameters, if the target object includes the target project and the target module , the acquiring the target code corresponding to the target object selected by the second operation command includes: acquiring the item code corresponding to the target item, and acquiring the target parameter corresponding to the target module; according to the target parameter and the The item code corresponding to the target item is used to obtain the target code corresponding to the target object.
本申请实施例中,由于不同类型的功能需要的目标代码不同,在获取该目标项目对应的目标代码时,根据目标功能的类型,确定获取目标代码的方式,从而可以提高本方案的灵活性。In the embodiment of the present application, since different types of functions require different target codes, when obtaining the target code corresponding to the target item, the method of obtaining the target code is determined according to the type of the target function, thereby improving the flexibility of the solution.
结合上述第一方面提供的技术方案,在一些可能的实施方式中,获取所述第一操作命令选中的目标功能对应的命令脚本,包括:获取操作系统中自带的与所述第一操作命令选中的目标功能对应的命令脚本,或者,获取所述目标对象对应的项目中自带的与所述第一操作命令选中的目标功能对应的脚本。In combination with the technical solution provided in the first aspect above, in some possible implementation manners, obtaining the command script corresponding to the target function selected by the first operation command includes: obtaining the script that comes with the operating system and the first operation command The command script corresponding to the selected target function, or acquire the script corresponding to the target function selected by the first operation command included in the project corresponding to the target object.
结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述响应用户基于功能列表的第一操作命令,包括:响应用户基于可视化界面中显示的功能列表的第一操作命令。In combination with the technical solution provided in the first aspect above, in some possible implementation manners, the responding to the user's first operation command based on the function list includes: responding to the user's first operation command based on the function list displayed on the visual interface.
本申请实施例中,通过设置可视化界面,使得用户选择目标对象和目标功能时能更加直观,进一步提高用户体验。In the embodiment of the present application, by setting a visual interface, the user can be more intuitive when selecting the target object and the target function, and further improve the user experience.
结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述对象列表包括项目列表、模块列表和平台列表,所述方法还包括:响应用户选择目标功能和目标平台的操作,在所述可视化界面中显示所述目标平台对应的项目列表;响应用户选择目标项目的操作,判断所述目标功能的执行对象是否是项目;若否,在所述可视化界面中显示所述目标项目对应的模块列表。In combination with the technical solution provided in the first aspect above, in some possible implementations, the object list includes a project list, a module list, and a platform list, and the method further includes: responding to the user's operation of selecting a target function and a target platform, in The project list corresponding to the target platform is displayed in the visual interface; in response to the operation of selecting the target project by the user, it is judged whether the execution object of the target function is a project; if not, the target project corresponding to the project is displayed in the visual interface. list of modules.
结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述可视化界面中还包括确定选项,所述响应用户基于功能列表的第一操作命令,获取所述第一操作命令选中的目标功能对应的命令脚本;响应用户基于对象列表的第二操作命令,获取所述第二操作命令选中的目标对象对应的目标代码,包括:响应用户选择所述目标功能的第一操作指令、选择所述目标对象的第二操作指令并选择所述确定选项的操作,保存用户选择的所述目标对象和所述目标功能,并获取所述目标对象对应的目标代码以及所述目标功能对应的命令脚本。In combination with the technical solution provided by the first aspect above, in some possible implementation manners, the visual interface further includes a determination option, and in response to the user's first operation command based on the function list, the user selects the first operation command to obtain the The command script corresponding to the target function; responding to the user's second operation command based on the object list, obtaining the target code corresponding to the target object selected by the second operation command, including: responding to the user's first operation instruction selecting the target function, selecting The second operation instruction of the target object and the operation of selecting the determination option, saving the target object and the target function selected by the user, and obtaining the target code corresponding to the target object and the command corresponding to the target function script.
结合上述第一方面提供的技术方案,在一些可能的实施方式中,所述功能列表包括下载、更新、提交、查询、编译、调试、发布中的至少一种功能。In combination with the technical solution provided in the first aspect above, in some possible implementation manners, the function list includes at least one function of downloading, updating, submitting, querying, compiling, debugging and publishing.
第二方面,本申请提供一种项目操作系统,包括:获取模块、处理模块。获取模块,用于响应用户基于功能列表的第一操作命令,获取所述第一操作命令选中的目标功能对应的命令脚本;所述获取模块,还用于响应用户基于对象列表的第二操作命令,获取所述第二操作命令选中的目标对象对应的目标代码;处理模块用于运行所述命令脚本,以对所述目标代码进行所述目标功能对应的处理,得到处理结果。In a second aspect, the present application provides a project operating system, including: an acquisition module and a processing module. The acquisition module is used to respond to the user's first operation command based on the function list, and acquire the command script corresponding to the target function selected by the first operation command; the acquisition module is also used to respond to the user's second operation command based on the object list Obtaining the target code corresponding to the target object selected by the second operation command; the processing module is configured to run the command script to process the target code corresponding to the target function to obtain a processing result.
第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行如上述第一方面实施例和/或结合上述第一方面实施例的任一种可能的实施方式提供的方法。In the third aspect, the embodiment of the present application also provides an electronic device, including: a memory and a processor, the memory is connected to the processor; the memory is used to store programs; the processor is used to call The program stored in the memory is used to execute the method provided in the above embodiment of the first aspect and/or in combination with any possible implementation manner of the embodiment of the above first aspect.
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机运行时,执行如上述第一方面实施例和/或结合上述第一方面实施例的任一种可能的实施方式提供的方法。In the fourth aspect, the embodiment of the present application also provides a computer-readable storage medium, on which a computer program is stored. When the computer program is run by a computer, it executes the above-mentioned embodiment of the first aspect and/or combines the above-mentioned first The method provided by any possible implementation manner of the aspect embodiment.
附图说明Description of drawings
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。In order to more clearly illustrate the technical solutions of the embodiments of the present application, the accompanying drawings that are required in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present application, and thus It should be regarded as a limitation on the scope, and those skilled in the art can also obtain other related drawings based on these drawings without creative work.
图1为本申请实施例示出的一种数据处理方法的流程示意图;FIG. 1 is a schematic flow diagram of a data processing method shown in an embodiment of the present application;
图2为本申请实施例示出的一种可视化界面的结构示意图;FIG. 2 is a schematic structural diagram of a visual interface shown in an embodiment of the present application;
图3为本申请实施例示出的一种项目操作系统的流结构框图;Fig. 3 is a flow structure block diagram of a project operating system shown in the embodiment of the present application;
图4为本申请实施例示出的一种电子设备的结构框图。Fig. 4 is a structural block diagram of an electronic device shown in an embodiment of the present application.
具体实施方式Detailed ways
术语“第一”、“第二”、“第三”等仅用于区分描述,并不表示排列序号,也不能理解为指示或暗示相对重要性。The terms "first", "second", "third" and so on are only used for distinguishing descriptions, and do not represent sequence numbers, nor can they be understood as indicating or implying relative importance.
此外,术语“水平”、“竖直”、“悬垂”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。In addition, the terms "horizontal", "vertical", "overhanging" and the like do not mean that the components are absolutely horizontal or overhanging, but may be slightly inclined. For example, "horizontal" only means that its direction is more horizontal than "vertical", and it does not mean that the structure must be completely horizontal, but can be slightly inclined.
在本申请的描述中,需要说明的是,术语“内”、“外”、“左”、“右”、“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。In the description of the present application, it should be noted that the orientation or positional relationship indicated by the terms "inner", "outer", "left", "right", "upper", "lower" etc. are based on the Orientation or positional relationship, or the orientation or positional relationship that the application product is usually placed in use, is only for the convenience of describing the application and simplifying the description, rather than indicating or implying that the referred device or element must have a specific orientation, in order to Specific orientation configurations and operations, therefore, are not to be construed as limitations on the application.
在本申请的描述中,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。In the description of this application, unless otherwise clearly stipulated and limited, the terms "installation", "installation", "connection" and "connection" should be understood in a broad sense, for example, it can be a fixed connection or a detachable connection , or integrally connected; it may be mechanically connected or electrically connected; it may be directly connected or indirectly connected through an intermediary, and it may be the internal communication of two components.
下面将结合附图对本申请的技术方案进行详细地描述。The technical solutions of the present application will be described in detail below in conjunction with the accompanying drawings.
请参阅图1,图1为本申请实施例提供的一种数据处理方法的流程示意图,下面将结合图1对其包含的步骤进行说明。Please refer to FIG. 1 . FIG. 1 is a schematic flowchart of a data processing method provided by an embodiment of the present application. The steps included in it will be described below in conjunction with FIG. 1 .
S100:响应用户基于功能列表的第一操作命令,获取第一操作命令选中的目标功能对应的命令脚本。S100: In response to a user's first operation command based on the function list, acquire a command script corresponding to a target function selected by the first operation command.
一种实施方式下,获取第一操作命令选中的目标功能对应的命令脚本的过程可以是,获取操作系统中自带的与第一操作命令选中的目标功能对应的命令脚本,或者,获取目标对象对应的项目中自带的与第一操作命令选中的目标功能对应的脚本。In one embodiment, the process of obtaining the command script corresponding to the target function selected by the first operation command may be to obtain the command script corresponding to the target function selected by the first operation command in the operating system, or to obtain the target object The script corresponding to the target function selected by the first operation command is included in the corresponding project.
其中,可以先根据目标功能确定对应的命令脚本的位置,然后根据确定从操作系统中获取命令脚本,或者从目标对象对应的项目中获取命令脚本。Wherein, the location of the corresponding command script may be determined first according to the target function, and then the command script may be obtained from the operating system or from the project corresponding to the target object according to the determination.
S200:响应用户基于对象列表的第二操作命令,获取第二操作命令选中的目标对象对应的目标代码。S200: In response to a user's second operation command based on the object list, acquire a target code corresponding to a target object selected by the second operation command.
其中,目标对象可以是平台、项目、模块中的任意一种。一个平台下可以存在多个项目,一个项目可以对应多个模块。同一平台对应一种编译器,每个项目对应一个项目代码,每个模块对应一组参数。Among them, the target object can be any one of platform, project, and module. There can be multiple projects under one platform, and one project can correspond to multiple modules. The same platform corresponds to a compiler, each project corresponds to a project code, and each module corresponds to a set of parameters.
具体的,同一个平台下的项目对应的编译器和基本编译选项(这里所说的基本编译选项就是主控厂家要求源码编译必需传入的选项)相同。Specifically, the compilers and basic compilation options corresponding to projects under the same platform (the basic compilation options mentioned here are the options that must be passed in for source code compilation required by the master control manufacturer) are the same.
例如,当同一主控的产品涉及的项目所用的编译器和基本编译选项相同时,应属于一个平台。另外,一些主控的设计厂家设计的芯片形成一个系列,该系列芯片所用的核相同,只是外围设备稍有不同,但该系列芯片所用的编译器和基本编译选项相同,也属于同一个平台。平台相同,主控不同,在具体的代码实现中,经常需要根据主控进行区别,因此主控型号这一信息经常也要用到。一个平台可能对应多个主控,因此,主控列表和平台对应关系的配置文件可以存放在项目操作系统中,从而可以用脚本传到各个项目中。For example, when the compilers and basic compilation options used by the projects involved in the products of the same master control are the same, they should belong to one platform. In addition, chips designed by some master design manufacturers form a series. The cores used in this series of chips are the same, but the peripheral devices are slightly different, but the compilers and basic compilation options used in this series of chips are the same, and they also belong to the same platform. The platform is the same, but the main control is different. In the specific code implementation, it is often necessary to distinguish according to the main control, so the information of the main control model is often used. A platform may correspond to multiple masters. Therefore, the master list and the configuration file corresponding to the platform can be stored in the project operating system, so that they can be transferred to each project by script.
需要注意的是,一个项目可以用不同的编译器或基本编译选项编译,因此,一个项目不一定仅供一个平台使用,也即,同一个项目可以同时存在多个平台下。It should be noted that a project can be compiled with different compilers or basic compilation options, so a project is not necessarily only for one platform, that is, the same project can exist under multiple platforms at the same time.
项目可以按照表1进行分类。Items can be classified according to Table 1.
表1Table 1
如表1所示,第1类项目常见于一些开源的项目,如uboot,linux kernel,busybox等,它们都自带配置命令,配置后,会生成一个.config文件,不同产品的差异都在这个.config中。As shown in Table 1, type 1 projects are common in some open source projects, such as uboot, linux kernel, busybox, etc., all of which have their own configuration commands. After configuration, a .config file will be generated. The differences between different products are in this .config.
第2类项目,常见于一些第三方提供的开源项目,无需修改代码,只需针对不同产品采用其主控对应的编译器和编译选项进行重新编译。Type 2 projects are commonly found in open source projects provided by some third parties. There is no need to modify the code, and only need to recompile with the corresponding compiler and compilation options for different products.
第3类项目,常见于自己开发的项目,由于公司的产品一般都是按系列规划的,同一个系列,甚至不同系列的代码,都可能大部分相同,只是个别功能需要区分或增删。要是在代码和编译脚本中加预编译宏,不同的产品使用不同的编译宏,也能做到共用一个项目。这里根据产品来判断哪些编译宏显然是没有问题,但会给项目管理带来很大不便,因为产品涉及面太广,因此需要细分一下。实际中,可以折中一下,使用产品所用的主控来区分编译宏,而一些跟实际产品有关的,放在项目代码中,在程序运行时,根据产品型号动态适配。The third category of projects is common in self-developed projects. Since the company's products are generally planned by series, the codes of the same series or even different series may be mostly the same, but individual functions need to be distinguished or added or deleted. If precompiled macros are added to the code and compiled scripts, and different products use different compiled macros, it is also possible to share a project. It is obviously no problem to judge which compiled macros based on the product here, but it will bring great inconvenience to project management, because the product involves too much, so it needs to be subdivided. In practice, a compromise can be made, using the main control used by the product to distinguish compiled macros, and some related to the actual product, placed in the project code, and dynamically adapted according to the product model when the program is running.
第4类项目,常见于自己开发的项目,如驱动程序项目、工具集等。特点是一个项目里面包含了形形色色的驱动模块或工具源码,它们都是独立的,只是为了方便管理,才把它们放到一个项目中。The fourth type of project is common in self-developed projects, such as driver projects, tool sets, etc. The feature is that a project contains all kinds of driver modules or tool source codes. They are all independent, and they are put into a project only for the convenience of management.
模块是进行编译的最小单元,每个模块都能单独编译、调试和发布编译结果。A module is the smallest unit for compilation, and each module can be compiled, debugged, and compiled independently.
针对不同类型的项目,将其分解为模块的方式也不同。For different types of projects, the way of decomposing them into modules is also different.
针对上述第1类项目,将该项目对应的每一个产品分别对应一个模块。For the above category 1 project, each product corresponding to the project corresponds to a module.
其中,为了方便后续列举模块名,可以创建一个独立的目录(例如Configs),用于放置各种以不同模块名命名的配置文件。模块名可以使用产品名或其缩略名,也可以是能体现模块特点的名词。例如,主控名、内存特征(类型、频率、大小等)、存储芯片特征(类型、大小等)等。Among them, in order to facilitate subsequent enumeration of module names, an independent directory (such as Configs) can be created to place various configuration files named after different module names. The module name can use the product name or its abbreviation, or a noun that can reflect the characteristics of the module. For example, master control name, memory characteristics (type, frequency, size, etc.), memory chip characteristics (type, size, etc.), etc.
针对第2类项目,由于只是编译器和基本编译选项不同,而编译器和编译选项通过编译系统下发,从而实现一个项目(一个模块)可被不同的平台共用,因此,可以为项目名定一个个性化别名,然后将该别名作为模块名保存到项目的配置文件中,供后续列举模块使用。针对一个平台,该项目对应的模块列表仅可包括一个模块。For the second type of project, because only the compiler and the basic compilation options are different, and the compiler and compilation options are issued through the compilation system, so that a project (a module) can be shared by different platforms, so the project name can be specified A personalized alias, and then save the alias as the module name in the project's configuration file for subsequent enumeration of modules. For a platform, the module list corresponding to this project can only include one module.
针对第3类项目,该项目对应的模块列表中包括的模块的数量与该项目对应的多个产品运行需求的主控的类型数量相同,模块对应的参数中包括主控芯片的类型。For the third type of project, the number of modules included in the module list corresponding to the project is the same as the number of types of masters corresponding to the operation requirements of multiple products corresponding to the project, and the parameters corresponding to the modules include the type of the master chip.
可选的,由于不同模块的大部分代码相同,只有部分功能块,因不同的主控有差异,因此,可以把差异的部分组织成各个功能块用编译宏控制,然后改造项目的编译脚本,根据编译系统传入的主控决定是否定义这些编译宏。这样就可以和前面第2类项目相同,为项目名定一个个性化别名,把该别名保存到项目的配置文件中,供后续列举模块使用。列举模块时,把各个主控名和项目的别名组合起来作为模块名。Optionally, because most of the codes of different modules are the same, only some function blocks are different due to different main controls, so the different parts can be organized into each function block and controlled by compiling macros, and then modify the compiling script of the project, Whether to define these compilation macros is determined according to the master passed in by the compilation system. In this way, you can set a personalized alias for the project name in the same way as the previous category 2 projects, and save the alias to the configuration file of the project for use by subsequent enumeration modules. When enumerating modules, combine each master name and the alias of the project as the module name.
针对第4类项目,将该项目对应得到每个子项目作为一个模块,该项目对应的模块的数量与该项目包括的子项目的数量相同。For the fourth type of project, each sub-project is corresponding to the project as a module, and the number of modules corresponding to the project is the same as the number of sub-projects included in the project.
可选的,每个子项目都可以单独编译,因此每个子项目可对应一个模块。模块名使用各个子项目所在的目录名即可。Optionally, each subproject can be compiled separately, so each subproject can correspond to a module. The module name can use the directory name of each sub-project.
由于当目标功能不同时,对应的目标对象也不同,获取第二操作命令选中的目标对象对应的目标代码的实施方式也不同,具体的,可以有如下两种实施方式。Because when the target functions are different, the corresponding target objects are also different, and the implementation manners of acquiring the target code corresponding to the target object selected by the second operation command are also different. Specifically, the following two implementation manners are possible.
第一种实施方式下,若目标功能为第一类功能,对象列表包括项目列表,项目列表包含一个或多个项目,每个项目对应一个项目代码,每个项目包括至少一个模块;同一项目下的所有模块共用同一份项目代码,每个模块对应一组参数,若目标对象为目标项目,获取第二操作命令选中的目标对象对应的目标代码的具体过程为,获取目标项目的项目代码,目标项目的项目代码为目标代码。In the first implementation mode, if the target function is the first type of function, the object list includes a list of items, and the list of items includes one or more items, each item corresponds to an item code, and each item includes at least one module; All the modules in share the same project code, and each module corresponds to a set of parameters. If the target object is the target project, the specific process of obtaining the target code corresponding to the target object selected by the second operation command is to obtain the project code of the target project, and the target The item code of the item is the object code.
其中,第一类功能为只需要应用到项目代码的功能,例如下载、更新、提交、查询等功能。Among them, the first type of functions are functions that only need to be applied to the project code, such as downloading, updating, submitting, querying and other functions.
第二种实施方式下,若目标功能为第二类功能,对象列表包括项目列表和模块列表,项目列表中的每个项目对应一个模块列表,每个项目对应一个项目代码,同一模块列表中每个模块共用该模块列表对应的项目对应的项目代码,每个模块对应一组参数,若目标对象包括目标项目和目标模块,获取第二操作命令选中的目标对象对应的目标代码的具体过程可以是:首先获取目标项目对应的项目代码,以及获取目标模块对应的目标参数;然后根据目标参数和目标项目对应的项目代码,得到目标对象对应的目标代码。In the second implementation mode, if the target function is the second type of function, the object list includes a project list and a module list, each item in the project list corresponds to a module list, each item corresponds to a project code, and each item in the same module list Each module shares the project code corresponding to the project corresponding to the module list, and each module corresponds to a group of parameters. If the target object includes the target project and the target module, the specific process of obtaining the target code corresponding to the target object selected by the second operation command can be as follows : First obtain the project code corresponding to the target project and the target parameter corresponding to the target module; then obtain the target code corresponding to the target object according to the target parameter and the project code corresponding to the target project.
其中,第二类功能为需要应用到模块对应的参数的功能,例如编译、调试、发布等功能。Among them, the second type of functions are functions that need to be applied to parameters corresponding to the modules, such as functions such as compilation, debugging, and release.
例如,当目标对象为项目A下的模块1时,首先获取项目A的项目代码,以及模块1对应的参数。然后基于模块1对应的参数和项目A的项目代码,即可得到目标代码。For example, when the target object is module 1 under project A, first obtain the project code of project A and the parameters corresponding to module 1. Then based on the parameters corresponding to module 1 and the project code of project A, the target code can be obtained.
一种实施方式下,对象列表还可以包括平台列表,平台列表中的每个平台包括至少一个项目,每个项目包括至少一个模块,同一平台对应一种编译器,每个项目对应一个项目代码,每个模块对应一组参数。目标对象包括目标平台,获取第二操作命令选中的目标对象对应的目标代码的具体过程可以分以下两种情况。In one embodiment, the object list may also include a platform list, each platform in the platform list includes at least one project, each project includes at least one module, the same platform corresponds to a compiler, and each project corresponds to a project code, Each module corresponds to a set of parameters. The target object includes the target platform, and the specific process of obtaining the target code corresponding to the target object selected by the second operation command can be divided into the following two cases.
第一种情况,若目标功能为第一类功能,针对目标平台包括的每个项目,获取该项目对应的项目代码,每个项目对应的项目代码为目标代码。In the first case, if the target function is the first type of function, for each item included in the target platform, the item code corresponding to the item is obtained, and the item code corresponding to each item is the target code.
第二种情况,若目标功能为第二类功能,针对目标平台包括的每个项目,获取该项目对应的项目代码,以及该项目包括的每一个模块对应的参数;根据目标平台包括的每个项目对应的项目代码,以及每个项目包括的每一个模块对应的参数,得到目标对象对应的目标代码。In the second case, if the target function is the second type of function, for each project included in the target platform, obtain the project code corresponding to the project, and the parameters corresponding to each module included in the project; The project code corresponding to the project, and the parameters corresponding to each module included in each project, obtain the target code corresponding to the target object.
例如,当目标对象为平台甲,平台甲包括项目A、项目B两个项目,且项目A包括模块1、模块2、模块3这三个模块,项目B包括模块4、模块5这两个模块时。For example, when the target object is platform A, platform A includes two projects: project A and project B, and project A includes three modules: module 1, module 2, and module 3, and project B includes two modules: module 4 and module 5 hour.
若目标功能为第一类功能,分别获取项目A、项目B各自对应的项目代码,目标代码包括项目A、项目B各自对应的项目代码。If the target function is the first type of function, respectively obtain the item codes corresponding to item A and item B respectively, and the target codes include the item codes corresponding to item A and item B respectively.
若目标功能为第二类功能,针对项目A,首先获取项目A的项目代码,以及模块1、模块2、模块3各自对应的参数。然后根据模块1对应的参数和项目A的项目代码,得到第一目标代码;根据模块2对应的参数和项目A的项目代码,得到第二目标代码;根据模块3对应的参数和项目A的项目代码,得到第三目标代码。针对项目B,首先获取项目B的项目代码,以及模块4、模块5各自对应的参数。然后根据模块4对应的参数和项目B的项目代码,得到第四目标代码;根据模块5对应的参数和项目B的项目代码,得到第五目标代码。其中,目标代码包括第一目标代码、第二目标代码、第三目标代码、第四目标代码、第五目标代码。If the target function is the second type of function, for project A, first obtain the project code of project A, and the corresponding parameters of module 1, module 2, and module 3 respectively. Then according to the parameters corresponding to module 1 and the project code of project A, the first target code is obtained; according to the parameters corresponding to module 2 and the project code of project A, the second target code is obtained; according to the parameters corresponding to module 3 and the project of project A code to get the third object code. For project B, first obtain the project code of project B, and the corresponding parameters of module 4 and module 5 respectively. Then according to the parameters corresponding to module 4 and the project code of project B, the fourth target code is obtained; according to the parameters corresponding to module 5 and the project code of project B, the fifth target code is obtained. Wherein, the object code includes a first object code, a second object code, a third object code, a fourth object code, and a fifth object code.
S300:运行命令脚本,以对目标代码进行目标功能对应的处理,得到处理结果。S300: Run the command script to process the target code corresponding to the target function, and obtain a processing result.
在得到命令脚本和目标代码后,运行命令脚本即可实现对目标代码进行目标功能对应的处理,得到处理结果。After the command script and the target code are obtained, the target code can be processed corresponding to the target function by running the command script, and the processing result can be obtained.
对项目的处理,一般都要先进入该项目的本地目录。部分功能,例如更新、提交、查询等都不需要项目自带脚本的参与,因为这些操作跟项目托管到代码服务器所用的工具(如git或svn)有关,因此,这些操作只需要调用编译服务器安装的相应工具即可。不过有些功能如编译、调试、发布等都需要项目自带命令脚本的参与,并且需要把功能和需要操作的模块列表传给命令脚本。To process a project, you generally have to first enter the local directory of the project. Some functions, such as updating, submitting, querying, etc., do not require the participation of the project's own scripts, because these operations are related to the tools (such as git or svn) used by the project to host the code server. Therefore, these operations only need to call the compilation server installation corresponding tools. However, some functions such as compilation, debugging, release, etc. require the participation of the command script that comes with the project, and the function and the list of modules that need to be operated need to be passed to the command script.
不需要项目自带脚本的参与的功能,如更新、提交以及常见的查询(如项目版本和提交日志、状态(本地有没有修改)、本地修改的内容等)都可以使用git或svn工具中的单个或多个命令组合来实现。复杂一点查询(例如托管服务器上还有几笔提交没有更新下来、具体修改内容、查看项目的各个模块编译结果有没有发布过等),可以通过脚本结合git或svn工具中的命令来完成。Functions that do not require the participation of the project's own scripts, such as update, submission, and common queries (such as project version and submission log, status (whether there are local modifications), local modified content, etc.) can be used in git or svn tools Single or a combination of multiple commands to achieve. More complex queries (such as how many commits have not been updated on the hosting server, specific modification content, checking whether the compilation results of each module of the project have been published, etc.), can be completed through scripts combined with commands in git or svn tools.
前述的四种项目类型,都可以用一个通用的脚本来完成编译、调试、发布。也即,后面增加项目时,只要设置一个简单脚本用于下载并执行通用脚本,即可实现对每一个项目的编译、调试、发布,简化了项目维护工作。由于这个通用的脚本要支持编译、调试、发布三种功能,因此,在调用该通用脚本时,需要传入各个参数,具体如表2所示:For the aforementioned four project types, a common script can be used to complete compilation, debugging, and release. That is to say, when adding projects later, you only need to set a simple script to download and execute the general script, and then you can realize the compilation, debugging, and release of each project, which simplifies the project maintenance work. Since this general script needs to support the three functions of compiling, debugging, and publishing, when calling this general script, you need to pass in various parameters, as shown in Table 2:
表2Table 2
三个命令所传参数都有命令本身、平台名、项目名、模块列表。命令本身用于告知通用脚本进入哪个处理分支进行操作。平台名、项目名、模块三者组合可确保是唯一的,也即只要按“平台名/项目名/模块”这样的目录结构保存以“模块”命名的文件,就可以保证把某个平台所有模块放到“平台名”目录下,而不会冲突。The parameters passed by the three commands have the command itself, platform name, project name, and module list. The command itself is used to tell the generic script which branch of processing to enter to operate on. The combination of platform name, project name, and module can be guaranteed to be unique, that is, as long as the file named "module" is saved according to the directory structure of "platform name/project name/module", all the files of a certain platform can be guaranteed. Modules are placed under the "platform name" directory without conflicts.
具体编译的处理流程与表1中项目类型有关。The specific compilation process is related to the project type in Table 1.
针对第1种类型的项目,首先复制模块对应的配置文件为项目编译依赖的配置文件,然后,运行编译命令进行编译。For the first type of project, first copy the configuration file corresponding to the module to compile the dependent configuration file for the project, and then run the compile command to compile.
针对第2种类型的项目,把编译器和编译选项传给编译命令,进行编译即可。For the second type of project, pass the compiler and compilation options to the compilation command to compile.
针对第3种类型的项目,把主控名,编译器和编译选项传给编译命令,进行编译即可。项目编译脚本中可通过主控名区分哪些功能块编译进去。由于这种类型的模块名的前缀是主控名,因此主控名可从模块名中提取出来。For the third type of project, pass the master control name, compiler and compilation options to the compilation command and compile. In the project compilation script, the master control name can be used to distinguish which function blocks are compiled into it. Since this type of module name is prefixed with the master name, the master name can be extracted from the module name.
针对第4种类型的项目,进入各个模块同名的子目录,运行编译命令进行编译即可。For the fourth type of project, enter the subdirectory with the same name of each module, and run the compile command to compile.
通用脚本很难判断某个项目属于前面4类中哪一类,可以在项目的配置文件中配置一下项目类型,通用脚本从配置文件中获取即可。It is difficult for general scripts to determine which of the previous four categories a project belongs to. You can configure the project type in the project configuration file, and the general script can be obtained from the configuration file.
在编译成功后,通用脚本可把编译结果复制到“<指定的目录>/<平台名>/<项目名>/<模块>”,如果编译结果是库的话,还需要把头文件一同复制过去。其中“<指定的目录>”用于把编译产生的库和工具分享给其它项目的编译,让它们从该“<指定的目录>”下按照“<平台名>/<项目名>/<模块>”规则,找到依赖的库和头文件。After the compilation is successful, the general script can copy the compilation result to "<specified directory>/<platform name>/<project name>/<module>". If the compilation result is a library, you also need to copy the header file. Among them, "<specified directory>" is used to share the compiled libraries and tools with other projects, so that they can follow the "<platform name>/<project name>/<module>" from the "<specified directory>". >" rule to find dependent libraries and header files.
调试的功能是验证前面编译的结果是否能如预期正常运行。调试的处理流程是:首先进入到本地项目所在目录,运行通用脚本,将编译产生的编译结果按模块列表逐个复制到“<调试目录>/<平台名>/<项目名>/<模块>”。“<调试目录>”即为产品程序制作的临时目录,一般由程序打包环境规定,制作产品程序的脚本从该目录下获取资源,把它们编译进应用程序中,或者打包进镜像文件中。The function of debugging is to verify whether the result of the previous compilation works as expected. The process of debugging is: first enter the directory where the local project is located, run the general script, and copy the compilation results generated by the compilation to "<debugging directory>/<platform name>/<project name>/<module>" one by one according to the module list . "<debug directory>" is the temporary directory created by the product program, which is generally stipulated by the program packaging environment. The script for making the product program obtains resources from this directory, compiles them into the application program, or packs them into the image file.
发布的功能是把前面经过验证的编译结果提交到发布服务器上,供其他开发者使用。编译结果可能是库、工具或其他一些文件(如uboot,kernel这类编译后就可执行的文件)。如果编译结果是库,还需要将头文件也提交上去,供其他开发者包含。库分为静态库和动态库,静态库供编译应用程序时链接,动态库需要和应用程序一起发布,供应用程序动态加载。The function of publishing is to submit the previously verified compilation results to the publishing server for use by other developers. The compilation result may be a library, a tool, or some other files (such as uboot, kernel, etc., which are executable after compilation). If the compiled result is a library, you also need to submit the header file for inclusion by other developers. Libraries are divided into static libraries and dynamic libraries. Static libraries are used for linking when compiling applications. Dynamic libraries need to be released together with applications for dynamic loading by applications.
发布的处理流程是,首先从“项目编译结果对应于发布服务器上的URL”上下载以往提交的版本到本地指定的目录,然后,进入到本地项目所在目录,把前面编译产生的结果根据模块列表逐个复制到本地指定的目录下,具体路径可为“<指定目录>/<平台名>/<项目名>/<模块>”,如果编译产生的结果是库,还需要把头文件也复制到“<模块>”所在的目录下。最后,到“<指定目录>”下,把修改的文件提交到发布服务器上。前述的发布处理流程,都可以使用脚本完成。The publishing process is to first download the previously submitted version from the "project compilation result corresponds to the URL on the publishing server" to the directory specified locally, and then enter the directory where the local project is located, and compile the result according to the module list Copy them to the local specified directory one by one, the specific path can be "<specified directory>/<platform name>/<project name>/<module>", if the result of compilation is a library, you also need to copy the header file to " <module>" directory. Finally, go to "<specified directory>" and submit the modified files to the publishing server. The aforementioned publishing process can be completed using scripts.
可选的,如果需要增加一个主控,首先判断这个主控的编译器和基本编译选项是否和已有的某个平台相同,如果是,无需添加新的平台,将该主控添加到“主控列表和平台对应配置文件”中。如果该新加的主控有新项目需要添加,则按照规则添加项目。如果新增加的主控属于一个新平台,则在平台配置目录下创建一个新平台目录(可以用这个主控命名),其下添加相应的项目配置文件。Optionally, if you need to add a master control, first determine whether the compiler and basic compilation options of the master control are the same as those of an existing platform. If so, add the master control to the "Master Control List and Platform Corresponding Configuration File". If the newly added master control has new items to be added, the items are added according to the rules. If the newly added master control belongs to a new platform, create a new platform directory (which can be named after this master control) under the platform configuration directory, and add the corresponding project configuration file under it.
一种实施方式下,还可以包括有可视化界面,通过设置可视化界面,使得用户选择目标对象和目标功能时能更加直观,进一步提高用户体验。相应地,响应用户基于功能列表的第一操作命令,包括:响应用户基于可视化界面中显示的功能列表的第一操作命令。同理,响应用户基于对象列表的第二操作命令,包括:响应用户基于可视化界面中显示的对象列表的第二操作命令。In one embodiment, a visual interface may also be included. By setting the visual interface, the user can select the target object and the target function more intuitively, and further improve the user experience. Correspondingly, responding to the user's first operation command based on the function list includes: responding to the user's first operation command based on the function list displayed on the visual interface. Similarly, responding to the user's second operation command based on the object list includes: responding to the user's second operation command based on the object list displayed in the visual interface.
其中,可视化界面中可以包括平台列表、项目列表、功能列表,此外,还可以包括模块列表。Wherein, the visual interface may include a platform list, a project list, a function list, and in addition, a module list.
功能列表可以包括下载、更新、提交、查询、编译、调试、发布中的至少一种功能。The function list may include at least one function of downloading, updating, submitting, querying, compiling, debugging and publishing.
为了便于理解,以可视化界面包括平台列表、项目列表、模块列表、功能列表为例进行说明,请参阅图2。为了后续操作方便,可在项目操作系统中建立一个目录(例如Platforms),专门存放平台相关的配置。在该目录下为每个平台创建目录,以平台名为目录名,然后在平台目录下,创建一个配置文件,记录该平台所包含的所有项目名称(考虑到有些项目名比较长,可以用缩略名,方便记忆),以及项目在代码服务器上的URL(UniformResource Locator,统一资源定位器)。For ease of understanding, the visual interface includes a platform list, a project list, a module list, and a function list as an example for illustration, please refer to FIG. 2 . For the convenience of subsequent operations, a directory (such as Platforms) can be created in the project operating system to store platform-related configurations. Create a directory for each platform under this directory, name the directory with the platform name, and then create a configuration file under the platform directory to record the names of all projects contained in the platform (considering that some project names are relatively long, you can use abbreviated abbreviated name, easy to remember), and the URL (UniformResource Locator, Uniform Resource Locator) of the project on the code server.
菜单中的平台名列表可以通过列举前面创建的以平台名命名的目录名获得。假如所有平台配置放在Platforms目录下,只要遍历这个目录下所有目录,获取目录名,每个目录名就是一个平台名。The list of platform names in the menu can be obtained by enumerating the directory names named after the platform names created earlier. If all platform configurations are placed in the Platforms directory, just traverse all the directories in this directory to obtain the directory name, and each directory name is a platform name.
项目列表中包括被选中的平台对应的所有项目的项目名。其中,项目名可以通过解析选中的平台的目录下的配置文件获得。The project list includes project names of all projects corresponding to the selected platform. Wherein, the project name can be obtained by analyzing the configuration file under the directory of the selected platform.
模块列表中包括被选中的项目包含的所有模块对应的模块名。The module list includes the module names corresponding to all the modules contained in the selected project.
模块名可以通过进入选中的项目的本地所在目录,然后运行预设的“列举模块”脚本获得。The module name can be obtained by going to the local directory of the selected project, and then running the default "list modules" script.
具体的,针对第1类项目,若该项目对应的所有产品相关或能体现模块特点的配置放在各自项目的Configs目录下,则遍历Configs目录下的所有文件,获取Configs目录下的每一个文件名,每个文件名就是一个模块名。Specifically, for category 1 projects, if all product-related or module-specific configurations corresponding to the project are placed in the Configs directory of their respective projects, then traverse all the files in the Configs directory to obtain each file in the Configs directory name, each file name is a module name.
针对第2类项目,从项目的配置文件中获取模块名即可。For type 2 projects, just get the module name from the project configuration file.
针对第3类项目,从项目的配置文件中获取项目别名,再把平台对应的各个主控名分别加到别名前作为模块名。其中,主控的数量和模块的数量相同。For the third type of project, the project alias is obtained from the project configuration file, and then each master control name corresponding to the platform is added to the alias as the module name. Wherein, the quantity of the main control is the same as the quantity of the modules.
针对第4类项目,遍历项目目录下所有目录,获取目录名,每个目录名就是一个模块名。For the fourth type of project, traverse all directories under the project directory to obtain the directory name, and each directory name is a module name.
具体的,对象列表包括项目列表、模块列表和平台列表时,可以是响应用户选择目标功能和目标平台的操作,在可视化界面中显示目标平台对应的项目列表。然后响应用户选择目标项目的操作,判断目标功能的执行对象是否是项目;若否,在可视化界面中显示目标项目对应的模块列表。Specifically, when the object list includes a project list, a module list and a platform list, the project list corresponding to the target platform may be displayed on the visual interface in response to the user's operation of selecting the target function and the target platform. Then, in response to the user's operation of selecting the target item, it is judged whether the object of execution of the target function is the item; if not, a list of modules corresponding to the target item is displayed in the visual interface.
其中,在目标对象和目标功能都选择完成后,用户可以点击“确认”菜单,即可执行S100、S200。若用户选中“取消”,则响应用户的操作,退出菜单界面。Wherein, after the selection of the target object and the target function is completed, the user can click the "Confirm" menu to execute S100 and S200. If the user selects "Cancel", the menu interface will be exited in response to the user's operation.
可选的,由于可视化界面中还包括确定选项,响应用户基于功能列表的第一操作命令,获取第一操作命令选中的目标功能对应的命令脚本;以及响应用户基于对象列表的第二操作命令,获取第二操作命令选中的目标对象对应的目标代码的过程可以是:响应用户选择目标功能的第一操作指令、选择目标对象的第二操作指令并选择确定选项的操作,保存用户选择的目标对象和目标功能,并获取目标对象对应的目标代码以及目标功能对应的命令脚本。Optionally, since the visual interface also includes a determination option, in response to the user's first operation command based on the function list, obtain the command script corresponding to the target function selected by the first operation command; and in response to the user's second operation command based on the object list, The process of obtaining the target code corresponding to the target object selected by the second operation command may be: in response to the user's operation of selecting the first operation instruction of the target function, the second operation instruction of selecting the target object, and selecting the confirmation option, saving the target object selected by the user and the target function, and obtain the target code corresponding to the target object and the command script corresponding to the target function.
一种实施方式下,可视化界面的实现方式可以是,首先使用脚本获取构建可视化界面所需的信息,得到填写好的json文件(记为:MenuFile.json)。In one embodiment, the implementation of the visual interface may be as follows: firstly, the script is used to obtain the information required for building the visual interface, and a filled json file (marked as: MenuFile.json) is obtained.
由于需要的功能是预先就可以确定的,因此"命令列表"的内容可以直接设置,也即每一种功能对应一个名称。Since the required functions can be determined in advance, the content of the "command list" can be directly set, that is, each function corresponds to a name.
可视化界面中的“<平台名i>”这一字段值,通过遍历Platforms目录(所有平台配置放在Platforms目录下)下所有目录,获取目录名得到。The field value of "<platform name i>" in the visual interface is obtained by traversing all directories under the Platforms directory (all platform configurations are placed under the Platforms directory) to obtain the directory name.
可视化界面中的“<项目名j>”这一字段值,通过解析Platforms目录下各个平台目录下的配置文件获得,需要注意的是,“<项目名j>”和“<平台名i>”的对应关系。The value of the field "<project name j>" in the visual interface is obtained by analyzing the configuration files in each platform directory under the Platforms directory. It should be noted that "<project name j>" and "<platform name i>" corresponding relationship.
可视化界面中的“<模块k>”通过对应项目的脚本获得。在首次操作时,需要先把对应项目下载到本地特定目录下,然后,调用该项目中的脚本获取模块列表。之后,若项目的模块出现变化,都要调用脚本重新获取模块列表,并更新到json文件。其中,本地特定目录可以根据实际需求选择,此处不对其进行限制。"<module k>" in the visual interface is obtained through the script of the corresponding project. When operating for the first time, you need to download the corresponding project to a specific local directory, and then call the script in the project to obtain the module list. After that, if the module of the project changes, the script must be called to reacquire the module list and update to the json file. Among them, the local specific directory can be selected according to actual needs, and it is not limited here.
前面通过脚本获取构建可视化界面所需的信息后,就可以使用脚本填写到MenuFile.json文件。在MenuFile.json填写完成后,通过修改文件中各个选项的状态码,即可实现菜单项的初始选中状态。例如,状态码1可以表征被选中,状态码0可以表征未选中。修改文件中各个选项及其状态码可以通过文本编辑器或专门开发一个Linux或Windows工具实现。After obtaining the information required to build the visual interface through the script, you can use the script to fill in the MenuFile.json file. After the MenuFile.json is filled in, the initial selected state of the menu item can be realized by modifying the status code of each option in the file. For example, a status code of 1 may indicate that it is selected, and a status code of 0 may indicate that it is not selected. Modifying each option and its status code in the file can be realized through a text editor or a specially developed Linux or Windows tool.
由于json文件简单易用,且其应用广泛,存在多个开源的解析json文件的项目可利用,因此,把json文件作为构建可视化界面的配置文件非常合适。Because json files are easy to use and widely used, there are many open source projects that can analyze json files. Therefore, it is very appropriate to use json files as configuration files for building visual interfaces.
json文件保存的是一系列对象,每个对象都以键值对的方式存在,键一般是字符串,而值可以是简单的字符串或数值,也可以是对象或数组。由于值有多种形式,对于同一个事物的描述,json文件的写法也会出现多样化。例如,json文件内容可以是:The json file saves a series of objects, and each object exists as a key-value pair. The key is generally a string, and the value can be a simple string or a value, or an object or an array. Since there are many forms of values, the description of the same thing, the way of writing the json file will also be diversified. For example, the json file content can be:
其中,“…”是省略号。where "..." is an ellipsis.
冒号(:)左边是键,右边是值,组成键值对。The left side of the colon (:) is the key, and the right side is the value, forming a key-value pair.
用{}括起来的都是一个对象,有些情况下{}可以省略。每个键值对不管有没有用{}括起来都是一个对象。Everything enclosed by {} is an object, and {} can be omitted in some cases. Each key-value pair is an object whether it is enclosed in {} or not.
用[]括起来的是数组。数组中的成员可以是数字、字符串或对象等,成员之间用逗号隔开。Arrays are enclosed in []. The members in the array can be numbers, strings or objects, etc., and the members are separated by commas.
用<>括起来的字段都是要用实际值替换的。Fields enclosed by <> are to be replaced with actual values.
状态码是一个数字(如0,1,2),表示对应的菜单被选中的状态:没有选中(如用数字0表示)、选中但不高亮(如用数字1表示)、选中并高亮(如用数字2表示)。The status code is a number (such as 0,1,2), indicating the state of the corresponding menu being selected: not selected (such as represented by the number 0), selected but not highlighted (such as represented by the number 1), selected and highlighted (as indicated by the number 2).
上述举例的json文件仅为便于理解,不因作为对本申请的限制。The above exemplified json files are for ease of understanding only, and are not intended to limit this application.
前面描述了如何生成可视化界面的配置文件,下面举例说明如何在Linux操作系统下通过配置文件MenuFile.json实现可视化界面。The previous section describes how to generate the configuration file of the visual interface. The following example illustrates how to implement the visual interface through the configuration file MenuFile.json under the Linux operating system.
根据json文件特点,可将其解析为结构体数组,通过嵌套来保留层次。例如,解析json文件MenuFile.json,其第一级结构体(记为stMenuFile)包含命令结构体数组(记为astCommands[i],i取值为0到命令数减1)和各平台结构体数组(记为astPlatforms[i],i取值为0到平台数减1)。命令结构体包含状态码和具体命令字符串。而平台结构体包含状态码和项目结构体数组(记为astProjects[j],j取值为0到项目数减1),而项目结构体数组中包含状态码和模块结构体数组(记为astModules[k],k取值为0到模块数减1);模块结构体包含状态码和具体模块名字符串。通过这种嵌套方式,就可以做到既包含了json文件中所有键值对,又保留了层次。首次解析json文件为结构体数组时,可把每个列表的第一项状态码设置为选中并高亮。According to the characteristics of the json file, it can be parsed into a structure array, and the hierarchy is preserved through nesting. For example, to parse the json file MenuFile.json, its first-level structure (denoted as stMenuFile) contains an array of command structures (denoted as astCommands[i], where the value of i ranges from 0 to the number of commands minus 1) and each platform structure array (Denoted as astPlatforms[i], i ranges from 0 to the number of platforms minus 1). The command structure contains status codes and specific command strings. The platform structure contains a status code and an array of project structures (denoted as astProjects[j], j takes a value from 0 to the number of projects minus 1), while the project structure array contains a status code and an array of module structures (denoted as astModules [k], k ranges from 0 to the number of modules minus 1); the module structure contains the status code and the specific module name string. Through this nesting method, it can not only include all the key-value pairs in the json file, but also retain the hierarchy. When parsing a json file into a structure array for the first time, you can set the status code of the first item in each list to be selected and highlighted.
若服务器是基于Linux操作系统(嵌入式开发环境普遍如此)的服务器,开发者可以通过终端模拟软件(如Xshell、Putty、SecureCRT等)远程登入到服务器开发,所以设计可视化界面时,还需要考虑自己使用的终端模拟软件是否支持界面显示。经发明人实践验证,开源的ncurses库和比较流行的Python都可支持界面显示,此处举例仅为便于理解,不应作为对本申请的限制。If the server is based on the Linux operating system (this is generally the case in embedded development environments), developers can remotely log in to the server for development through terminal simulation software (such as Xshell, Putty, SecureCRT, etc.), so when designing a visual interface, you also need to consider your own Whether the terminal emulation software used supports interface display. It has been verified by the inventors that both the open-source ncurses library and the popular Python can support interface display, and the example here is only for easy understanding, and should not be used as a limitation to this application.
由于开源的ncurses库既支持键盘操作,又支持鼠标操作,便于编写出满足要求的程序,下面将基于ncurses库说明可视化界面的设计方式。由于ncurses库是C语言编写,则需要将解析json文件MenuFile.json得到的结构体转换成C语言支持的格式。可以使用C语言开发一个解析json文件和实现菜单操作的工具,使用shell脚本调用该工具,把可视化界面呈现给项目开发者,并响应用户对可视化界面的操作。Since the open-source ncurses library supports both keyboard and mouse operations, it is easy to write programs that meet the requirements. The following will illustrate the design of the visual interface based on the ncurses library. Since the ncurses library is written in C language, it is necessary to convert the structure obtained by parsing the json file MenuFile.json into a format supported by C language. You can use C language to develop a tool for parsing json files and implementing menu operations, use shell scripts to call the tool, present the visual interface to project developers, and respond to user operations on the visual interface.
同一列表的菜单项可以多选,上下级列表存在依赖关系(例如平台列表和项目列表),导致菜单操作变得复杂。“命令列表”仅需支持单选。“平台列表”、“项目列表”和“模块列表”都可以支持多选。“项目列表”依赖于当前选中的“平台名”,而“模块列表”依赖于当前选中的“项目名”,也即当前的“项目列表”中包括当前被选择的平台包括的所有项目,当前的“模块列表”中包括当前被选择的项目包括的所有模块。The menu items in the same list can be selected multiple times, and there are dependencies between the upper and lower lists (such as platform list and project list), which makes menu operations complicated. The "command list" only needs to support single selection. "Platform List", "Project List" and "Module List" can all support multi-selection. The "Project List" depends on the currently selected "Platform Name", while the "Module List" depends on the currently selected "Project Name", that is, the current "Project List" includes all the projects included in the currently selected platform. The "Module List" of the "Module List" includes all the modules included in the currently selected project.
为了提高用户体验,一种实施方式下,菜单项被选中和没有选中的显示应有所区别,例如,可以通过字体颜色来区别,设置被选中的选项显示红色,没有选中的选项显示黑色。此处举例仅为便于理解,不因作为对本申请的限制。In order to improve user experience, in one embodiment, the display of selected and unselected menu items should be differentiated, for example, it can be distinguished by font color, and the selected option is set to display red, and the unselected option is displayed black. The examples here are only for ease of understanding, and are not intended to limit the application.
由于“平台列表”、“项目列表”和“模块列表”都可以支持多选,因此,对于支持多选的菜单项,同一列表的菜单项可能有多个被选中,下一级的菜单列表和其中某一项有关联的,这一项的显示应有所区别,例如字体显示选中时所用的颜色,同时背景色也设置为某种不同的颜色(比如蓝色)。当可视化界面设计完成后,用户可以使用方向键或鼠标选择菜单。使用方向键和鼠标操作的区别在于:使用方向键只能上下左右逐个移动到不同的菜单项上,不会移到菜单项外;而使用鼠标,可移动到屏幕的任意位置,鼠标可能会落在菜单项外。鼠标光标具体落在哪个菜单项,是通过判断鼠标光标在屏幕上的坐标是否落在菜单项目所在的范围内来决定的。Since the "platform list", "project list" and "module list" can all support multi-selection, for menu items that support multi-selection, multiple menu items in the same list may be selected, and the menu list of the next level and One of the items is related, and the display of this item should be different. For example, the color used when the font is displayed is selected, and the background color is also set to a different color (such as blue). After the visual interface design is completed, the user can use the arrow keys or the mouse to select the menu. The difference between using the arrow keys and the mouse operation is: using the arrow keys can only move up, down, left, and right to different menu items one by one, and will not move out of the menu items; while using the mouse, you can move to any position on the screen, and the mouse may fall. outside the menu item. Which menu item the mouse cursor falls on is determined by judging whether the coordinates of the mouse cursor on the screen fall within the range of the menu item.
在使用键盘进行操作时,为了便于用户使用,当使用方向键将光标移到某个菜单项时,可给菜单项的背景加上颜色(例如绿色)加以区别,需要注意的是,此处的背景颜色需要与前述的:下一级的菜单列表和当前被选中选项有关联的这一项显示的背景颜色有所区分。When using the keyboard to operate, for the convenience of the user, when using the arrow keys to move the cursor to a menu item, you can add a color (such as green) to the background of the menu item to distinguish it. It should be noted that the The background color needs to be different from the aforementioned: the background color displayed on the item associated with the lower menu list and the currently selected option.
使用键盘进行操作,可以设置回车键确认,也即在用户点击回车键时,即认为要对当前选中的菜单项操作。此处举例仅为便于理解,不因作为对本申请的限制。Use the keyboard to operate, and you can set the Enter key to confirm, that is, when the user clicks the Enter key, it is considered that the currently selected menu item is to be operated. The examples here are only for ease of understanding, and are not intended to limit the application.
在使用鼠标进行操作时,由于鼠标光标本身就是一个可用于提醒用户的符号,因此,使用鼠标进行操作时,将鼠标移到菜单项上时,可以不用给菜单项的背景加上颜色。When using the mouse to operate, since the mouse cursor itself is a symbol that can be used to remind the user, when using the mouse to operate, when the mouse is moved to the menu item, it is not necessary to add color to the background of the menu item.
使用鼠标进行操作,可以设置点击鼠标左键确认,也即在用户点击鼠标左键时,即认为要对当前选中的菜单项操作。此处举例仅为便于理解,不因作为对本申请的限制。Use the mouse to operate, and you can set the left button of the mouse to confirm, that is, when the user clicks the left button of the mouse, it is considered that the currently selected menu item is to be operated. The examples here are only for ease of understanding, and are not intended to limit the application.
在用户进行确认操作时,改变被选择的菜单项的显示状态,若该菜单项此前没有选中,则该菜单项呈现选中状态,并可以设置该菜单项高亮(如显示被选中时的背景色)。同时,下一级菜单随之改变,例如,当用户选择项目列表中的项目A时,将项目A呈现选中状态,并高亮项目A,同时在模块列表中显示项目A对应的所有模块。When the user performs a confirmation operation, change the display state of the selected menu item. If the menu item has not been selected before, the menu item will appear in the selected state, and the menu item can be highlighted (such as the background color when it is selected) ). At the same time, the next-level menu changes accordingly. For example, when the user selects item A in the item list, item A will be presented as selected, item A will be highlighted, and all modules corresponding to item A will be displayed in the module list.
若该菜单项此前被选中,但并没有处于高亮状态,则该菜单项呈现高亮状态,且下一级菜单随之改变。If the menu item has been selected before but not in the highlighted state, the menu item will be highlighted, and the next level menu will change accordingly.
若该菜单项此前已被选中并高亮,则该菜单项呈现没有被选中的状态,同一列表的前或后相邻选中的菜单项高亮,下一级菜单随之改变。如果没有其它选中的菜单项,则下一级菜单隐藏。If the menu item has been selected and highlighted before, the menu item will appear as unselected, and the selected menu item before or after the same list will be highlighted, and the next level menu will change accordingly. If there are no other selected menu items, the lower level menu is hidden.
总之,下一级菜单项显示的内容和上一级菜单项的选中并高亮的菜单项关联。In short, the displayed content of the lower-level menu item is associated with the selected and highlighted menu item of the upper-level menu item.
同一个列表各个菜单项是单选的,选中另一个,以前选中的那个菜单的状态应自动变为未选中,下一级菜单随之改变。Each menu item in the same list is single-selected. If another one is selected, the state of the previously selected menu should automatically become unselected, and the next-level menu will change accordingly.
需要说明的是,可多选的选项列表中,都有“<全部>”选项。只要选中“<全部>”选项,就表明该列表中的所有选项都选中了。此时,原有的已高亮的菜单项保持不变。当选中“<全部>”后,再取消选中“<全部>”,就表明后面的所有项都没有选中,相应地,下一级菜单项随之隐藏。无论选中“<全部>”,还是取消选中“<全部>”,都可以继续对后面的所有项单独选中或取消选中。当后面不是所有项都处于选中状态时,“<全部>”项就设置为没有选中状态。It should be noted that in the list of options that can be selected multiple times, there is an option of "<all>". Simply checking the "<all>" option means that all options in that list are checked. At this point, the original highlighted menu item remains unchanged. When "<All>" is selected, and then "<All>" is unselected, it means that all subsequent items are not selected, and correspondingly, the lower menu items are hidden accordingly. Whether you check "<all>" or uncheck "<all>", you can continue to check or uncheck all subsequent items individually. When not all the following items are selected, the "<all>" item is set as unselected.
其中,菜单项“全部”是个虚拟的菜单项,将其显示高亮没有意义,因此,可以不显示高亮。在用户每次选中菜单时,都可以判断用户当前选中的菜单项是否为“确认”或“取消”菜单项。如果是“确认”菜单项,则把各个菜单项状态修改保存到MenuFile.json文件中,如果是“取消”菜单项,则直接退出。Wherein, the menu item "all" is a virtual menu item, and it is meaningless to display and highlight it, so the highlight may not be displayed. When the user selects a menu each time, it can be judged whether the menu item currently selected by the user is a "confirm" or "cancel" menu item. If it is the "Confirm" menu item, save the status modification of each menu item to the MenuFile.json file, and if it is the "Cancel" menu item, exit directly.
基于同样的发明构思,本申请还提供一种项目操作系统,如图3所示,该项目操作系统100包括获取模块110和处理模块120。Based on the same inventive concept, the present application also provides an item operating system. As shown in FIG. 3 , the
获取模块110,用于响应用户基于功能列表的第一操作命令,获取所述第一操作命令选中的目标功能对应的命令脚本。The obtaining
获取模块110,还用于响应用户基于对象列表的第二操作命令,获取所述第二操作命令选中的目标对象对应的目标代码。The
处理模块120,用于运行所述命令脚本,以对所述目标代码进行所述目标功能对应的处理,得到处理结果。The
获取模块110,具体用于若所述目标功能为第一类功能,所述对象列表包括项目列表,所述项目列表包含一个或多个项目,每个所述项目对应一个项目代码,每个所述项目包括至少一个模块;同一项目下的所有模块共用同一份项目代码,每个模块对应一组参数,若所述目标对象为目标项目,获取所述目标项目的项目代码,所述目标项目的项目代码为所述目标代码。The
获取模块110,具体用于若所述目标功能为第二类功能,所述对象列表包括项目列表和模块列表,所述项目列表中的每个项目对应一个模块列表,每个项目对应一个项目代码,同一模块列表中每个模块共用该模块列表对应的项目对应的项目代码,每个模块对应一组参数,若所述目标对象包括目标项目和目标模块,获取所述目标项目对应的项目代码,以及获取所述目标模块对应的目标参数;根据所述目标参数和所述目标项目对应的项目代码,得到所述目标对象对应的目标代码。The
获取模块110,具体用于获取操作系统中自带的与所述第一操作命令选中的目标功能对应的命令脚本,或者,获取所述目标对象对应的项目中自带的与所述第一操作命令选中的目标功能对应的脚本。The acquiring
获取模块110,具体用于响应用户基于可视化界面中显示的功能列表的第一操作命令。The obtaining
获取模块110,还用于响应用户选择目标功能和目标平台的操作,在所述可视化界面中显示所述目标平台对应的项目列表;响应用户选择目标项目的操作,判断所述目标功能的执行对象是否是项目;若否,在所述可视化界面中显示所述目标项目对应的模块列表。The
获取模块110,还用于在所述可视化界面中还包括确定选项,响应用户选择所述目标功能的第一操作指令、选择所述目标对象的第二操作指令并选择所述确定选项的操作,保存用户选择的所述目标对象和所述目标功能,并获取所述目标对象对应的目标代码以及所述目标功能对应的命令脚本。The obtaining
一种实施方式下,所述功能列表包括下载、更新、提交、查询、编译、调试、发布中的至少一种功能。In one embodiment, the function list includes at least one function of downloading, updating, submitting, querying, compiling, debugging and publishing.
本申请实施例所提供的项目操作系统100,其实现原理及产生的技术效果和前述数据处理方法实施例相同,为简要描述,项目操作系统实施例部分未提及之处,可参考前述数据处理方法实施例中相应内容。The
请参阅图4,其为本申请实施例提供的一种电子设备200。所述电子设备200包括:收发器210、存储器220、通讯总线230、处理器240。Please refer to FIG. 4 , which is an
所述收发器210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,收发器210用于收发数据。存储器220用于存储计算机程序,如存储有图3中所示的软件功能模块,即项目操作系统100。其中,项目操作系统100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(operating system,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的可执行模块,例如项目操作系统100包括的软件功能模块或计算机程序。此时,处理器240,用于响应用户基于功能列表的第一操作命令,获取所述第一操作命令选中的目标功能对应的命令脚本;响应用户基于对象列表的第二操作命令,获取所述第二操作命令选中的目标对象对应的目标代码;运行所述命令脚本,以对所述目标代码进行所述目标功能对应的处理,得到处理结果。The components of the
其中,存储器220可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)、或非型闪存(NOR Flash)、与非型闪存(NAND Flash)、嵌入式多媒体卡(Embedded MultiMedia Card,eMMC)等。Wherein,
处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。The
其中,上述的电子设备200,包括但不限于个人电脑、服务器等。Wherein, the above-mentioned
本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备200运行时,执行上述所示的数据处理方法。该计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The embodiment of the present application also provides a non-volatile computer-readable storage medium (hereinafter referred to as storage medium), on which a computer program is stored, and when the computer program is run by a computer such as the above-mentioned
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。The above descriptions are only preferred embodiments of the present application, and are not intended to limit the present application. For those skilled in the art, there may be various modifications and changes in the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of this application shall be included within the protection scope of this application.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310176713.2A CN116301886A (en) | 2023-02-22 | 2023-02-22 | Data processing method, device, electronic device, and computer-readable storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310176713.2A CN116301886A (en) | 2023-02-22 | 2023-02-22 | Data processing method, device, electronic device, and computer-readable storage medium |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN116301886A true CN116301886A (en) | 2023-06-23 |
Family
ID=86780906
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310176713.2A Pending CN116301886A (en) | 2023-02-22 | 2023-02-22 | Data processing method, device, electronic device, and computer-readable storage medium |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116301886A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116756196A (en) * | 2023-08-16 | 2023-09-15 | 麒麟软件有限公司 | A method and plug-in for quickly editing Makefile files |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101198137A (en) * | 2007-12-25 | 2008-06-11 | 中兴通讯股份有限公司 | Background order processing apparatus and method |
| US20170083292A1 (en) * | 2015-09-18 | 2017-03-23 | Amazon Technologies, Inc. | Visual content development |
| CN108647316A (en) * | 2018-05-10 | 2018-10-12 | 北京中电普华信息技术有限公司 | Data processing method and device |
| CN112052167A (en) * | 2020-08-25 | 2020-12-08 | 北京梧桐车联科技有限责任公司 | Method and apparatus for generating test script code |
| CN114064510A (en) * | 2021-11-30 | 2022-02-18 | 中国建设银行股份有限公司 | Function testing method and device, electronic equipment and storage medium |
-
2023
- 2023-02-22 CN CN202310176713.2A patent/CN116301886A/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101198137A (en) * | 2007-12-25 | 2008-06-11 | 中兴通讯股份有限公司 | Background order processing apparatus and method |
| US20170083292A1 (en) * | 2015-09-18 | 2017-03-23 | Amazon Technologies, Inc. | Visual content development |
| CN108647316A (en) * | 2018-05-10 | 2018-10-12 | 北京中电普华信息技术有限公司 | Data processing method and device |
| CN112052167A (en) * | 2020-08-25 | 2020-12-08 | 北京梧桐车联科技有限责任公司 | Method and apparatus for generating test script code |
| CN114064510A (en) * | 2021-11-30 | 2022-02-18 | 中国建设银行股份有限公司 | Function testing method and device, electronic equipment and storage medium |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116756196A (en) * | 2023-08-16 | 2023-09-15 | 麒麟软件有限公司 | A method and plug-in for quickly editing Makefile files |
| CN116756196B (en) * | 2023-08-16 | 2023-12-26 | 麒麟软件有限公司 | Method and plug-in for rapidly editing Makefile |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112270149B (en) | Verification platform automatic integration method and system, electronic equipment and storage medium | |
| US20240045850A1 (en) | Systems and methods for database orientation transformation | |
| US20230244465A1 (en) | Systems and methods for automated retrofitting of customized code objects | |
| US6173438B1 (en) | Embedded graphical programming system | |
| KR102889294B1 (en) | Integrated Circuits as a Service | |
| Wolfson et al. | Android developer tools essentials: Android Studio to Zipalign | |
| CN108319575B (en) | Page component checking method, device, server and storage medium | |
| US20050240917A1 (en) | Software configuration program for software applications | |
| JPH08512152A (en) | Incremental generation system | |
| US20120227028A1 (en) | Graphical programming object population user interface autogeneration | |
| CN109408354B (en) | Data processing method and device for application component | |
| US9965257B2 (en) | Automatic configuration of project system from project capabilities | |
| Rischpater | Application development with qt creator | |
| US20160321055A1 (en) | Mapping between local and remote for seamless build and design time experience | |
| US20140033123A1 (en) | User interface and method for comparing a local version of a profile to an online update | |
| CN115407977A (en) | Information compiling method, device, equipment and computer readable storage medium | |
| EP4260175A1 (en) | System and method for developing user interface applications | |
| CN108287720B (en) | Software compiling method, device, equipment and storage medium | |
| WO2022127263A1 (en) | Code processing method and related device | |
| CN113238739A (en) | Plug-in development and data acquisition method, device, electronic equipment and medium | |
| CN116301886A (en) | Data processing method, device, electronic device, and computer-readable storage medium | |
| CN114691096A (en) | Intelligent contract development method, device, equipment and storage medium | |
| JP4851107B2 (en) | Computer implementation method | |
| US10545729B2 (en) | Computer program interface | |
| Eng et al. | Application Development with Qt Creator: Build cross-platform applications and GUIs using Qt 5 and C++ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |