CN113312084A - At框架代码自动生成方法、装置、电子设备及存储介质 - Google Patents
At框架代码自动生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113312084A CN113312084A CN202110582192.1A CN202110582192A CN113312084A CN 113312084 A CN113312084 A CN 113312084A CN 202110582192 A CN202110582192 A CN 202110582192A CN 113312084 A CN113312084 A CN 113312084A
- Authority
- CN
- China
- Prior art keywords
- code
- template
- strategy
- preset
- file
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及一种AT框架代码自动生成方法、装置、电子设备及存储介质,属于计算机技术领域。该方法应用于电子设备,所述方法包括:获取用户制定的代码生成策略、模板策略;根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码;输出包含所述AT代码的代码文件。本申请实施例中,通过事先预置适配于通讯模组平台的AT框架代码模板,使得后续在生成代码时,可以根据需要制定对应的模板策略,从而选择所需的AT框架代码模板,从而生成适配于所选择的代码模板的AT框架的AT代码,减少了人为编码中因变量定义或名称替换时出错的风险,减少人工成本以及提高了效率。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种AT框架代码自动生成方法、装置、电子设备及存储介质。
背景技术
随着网络的发展,窄带物联网(Narrow Band Internet of Things,NB-IoT)因其具备低功耗、广覆盖、大连接等特点被广泛应用。而NB-IoT通讯模组作为窄带物联网组网中的重要模块,为保证其高效率的通信,需要对NB-IoT通讯模组中的AT(Attention)命令进行配置。随着NB-IoT通讯模组AT(Attention)命令的增加,会产生越来越多重复业务逻辑的代码,若针对这些AT命令进行编码,会增加很多的重复劳动,且这些代码的风格不统一,导致后续代码移植到不同通讯模组平台间AT框架,增加了成倍的工作量。同时在模组行业,会针对跨芯片平台存在AT命令兼容性需求,而现有的不同通讯模组平台间AT框架相关的代码移植难度复杂,无法快速适配。
发明内容
鉴于此,本申请的目的在于提供一种AT框架代码自动生成方法、装置、电子设备及存储介质,以改善人为编码中因变量定义或名称替换时出错的风险以及效率低下的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种AT框架代码自动生成方法,应用于电子设备,所述方法包括:获取用户制定的代码生成策略、模板策略;根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码;输出包含所述AT代码的代码文件。本申请实施例中,通过事先预置适配于通讯模组平台的AT框架代码模板,使得后续在生成代码时,可以根据需要制定对应的模板策略,从而选择所需的AT框架代码模板,从而生成适配于所选择的代码模板的AT框架的AT代码,减少了人为编码中因变量定义或名称替换时出错的风险,减少人工成本以及提高了效率。
结合第一方面实施例的一种可能的实施方式,根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,包括:根据编码规范,将所述代码生成策略中的参数内容进行大小写转换预处理;根据预处理后的代码生成策略中的文件名称配置,创建对应的所述代码文件;确定所述模板策略对应的预设代码模板;根据所述预处理后的代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,并将生成的所述AT代码保存在创建的所述代码文件中。本申请实施例中,通过代码生成策略中的参数内容进行大小写转换预处理,以符合编码规范,这样可以保证编码的风格统一,避免人为编码中因变量定义或名称替换时出错的风险;同时通过确定模板策略对应的预设代码模板,以便生成适配于预设代码模板的AT框架的AT代码,通过建立对应的代码文件,以便将生成的AT代码保存在该代码文件中输出,可以提高处理的效率和保证其正确性。
结合第一方面实施例的一种可能的实施方式,根据预处理后的代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,并将生成的所述AT代码保存在创建的所述代码文件中,包括:根据预处理后的所述代码生成策略中的文件名称配置,生成以所述文件名称配置中的文件名为前缀的.h文件和.c文件;在所述.h文件和所述.c文件下,根据预处理后的所述代码生成策略中的宏定义配置,生成对应的宏定义代码,并按照预处理后的所述代码生成策略中的AT指令顺序,基于所述模板策略对应的预设代码模板,对应生成适配于所述预设代码模板的AT框架的AT代码,直到完成最后一个AT指令的代码生成;将包含AT代码的所述.h文件和所述.c文件保存在所述代码文件中。本申请实施例中,以名称配置中的文件名为前缀生成.h文件和.c文件,以便于后续分类查找;同时在生成AT指令对应的代码时,按照预处理后的代码生成策略中的AT指令顺序,基于模板策略对应的预设代码模板,对应生成适配于预设代码模板的AT框架的AT代码,以避免出现遗漏而造成代码错误。
结合第一方面实施例的一种可能的实施方式,针对所述代码生成策略中的每一条AT指令,基于所述模板策略对应的预设代码模板,对应生成适配于所述预设代码模板的AT框架的AT代码,包括:基于所述预设代码模板,以及预处理后的所述代码生成策略中该AT指令的AT名称、AT描述和注释类设置,生成对应的函数名、函数声明以及函数注释信息;基于所述预设代码模板,以及该AT指令的AT框架业务逻辑配置,生成对应的AT框架代码;基于所述预设代码模板,以及该AT指令的AT参数信息,生成对应的参数校验逻辑代码、常量定义代码及数据结构体代码。本申请实施例中,针对每条AT指令,会严格按照代码生成策略中AT指令的AT名称、AT描述和注释类设置、AT框架业务逻辑配置、AT参数信息等配置来生成对应的AT代码,从而实现了自动生成对应的AT代码,并保证了其准确性。
结合第一方面实施例的一种可能的实施方式,所述模板策略对应的预设代码模板包括多个,根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,包括:针对每一个预设代码模板,根据所述代码生成策略以及该预设代码模板,自动生成适配于该预设代码模板的AT框架的AT代码。本申请实施例中,可以同时选择多个预设代码模板,使得在生成代码时,可以基于同一份代码生成策略生成适配于不同通讯模组平台的AT框架代码模板的AT代码,进一步提高了处理效率。
结合第一方面实施例的一种可能的实施方式,获取用户制定的代码生成策略、模板策略,包括:响应用户在工具界面中针对代码生成策略以及模板策略的配置操作,获得与所述配置操作对应的代码生成策略以及模板策略。本申请实施例中,通过在工具界面中针对代码生成策略以及模板策略进行按需配置,使得可以实现按需配置,且通过界面交互的方式,提高了用户的可操作性。
结合第一方面实施例的一种可能的实施方式,获取用户制定的代码生成策略、模板策略,包括:响应用户在CMD命令执行窗口中输入的文件路径以及存储于该文件路径下的事先配置的代码生成策略文件名以及模板策略文件名,从该文件路径下获取与所述代码生成策略文件名以及模板策略文件名对应的代码生成策略、模板策略。本申请实施例中,可以事先通过在文档中对代码生成策略、模板策略进行设定,后续可以通过在CMD命令执行窗口中输入的文件路径以及存储于该文件路径下的事先配置的代码生成策略文件名以及模板策略文件名,即可快速获得对应的用户制定的代码生成策略、模板策略,节约了现场配置策略的时间,提高了效率。
第二方面,本申请实施例还提供了一种AT框架代码自动生成装置,应用于电子设备,所述装置包括:获取模块、生成模块以及输出模块;获取模块,用于获取用户制定的代码生成策略、模板策略;生成模块,用于根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码;输出模块,用于输出包含所述AT代码的代码文件。
第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种AT框架代码自动生成方法的流程示意图。
图2示出了本申请实施例提供的一种应用图1所示的方法生成AT代码的操作示意图。
图3示出了本申请实施例提供的又一种应用图1所示的方法生成AT代码的操作示意图。
图4示出了本申请实施例提供的一种AT框架代码自动生成装置的结构框图。
图5示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
为了减少人为编码中因变量定义或名称替换时出错的风险,减少人工成本以及提高效率。本申请实施例提供了一种AT框架代码自动生成方法,基于Python语言,根据用户制定的代码生成策略、AT框架模板策略,来自动生成1个或多个与AT框架代码模板对应的AT命令的代码框架,能够减少代码重复劳动。其中,Python语言是一种跨平台的计算机程序设计语言,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
下面将结合图1,对本申请实施例提供的AT框架代码自动生成方法进行说明。
步骤S101:获取用户制定的代码生成策略、模板策略。
代码生成策略用于约束生成的代码,使得代码按照制定的代码生成策略进行生成。其中,代码生成策略包括注释类设置策略、宏控或全局变量名称设置策略、AT属性设置策略。AT属性设置策略包括AT名称、AT描述、AT框架业务逻辑配置(包含必选项/可选项参数个数等)、AT参数定义(包括位置、可选/可选、名称、类型(int/string)、范围、最大长度等)。
一种实施方式下,代码生成策略的示例如下:
上述示例的代码生成策略的格式为json格式的代码生成策略,其还可以是其他格式,如类json格式。上述代码生成策略仅示出了包含一个AT指令的代码生成策略,若需要制定更多的AT指令,则可以在代码生成策略中的“{....}”部分中增加类似于上述的AT指令即可。
模板策略用于选择对应的预设AT框架代码模板,不同的模板对应的AT框架不同,对应生成的代码也不同。本申请实施例中,通过事先预置多个不同通讯模组平台的AT框架代码模板,使得后续在生成代码时,可以根据需要选择对应的AT框架代码模板,从而生成适配于所选择的代码模板的AT框架的AT代码。例如,该模板可以是EIGEN平台内置模板、RDA平台内置模板。EIGEN、RDA均为通讯模组的芯片型号。例如,模板策略为ALL,则默认为选择所有的预设代码模板,若模板策略为RDA,则对应的模板为RDA平台内置模板,若模板策略为EIGEN,则对应的模板为EIGEN平台内置模板。
在使用本申请实施例提供的AT框架代码自动生成方法时,需要在电子设备上安装对应的Python工具。
一种实施方式下,获取用户制定的代码生成策略、模板策略的过程可以是:响应用户在CMD命令执行窗口中输入的文件路径以及存储于该文件路径下的事先配置的代码生成策略文件名以及模板策略文件名,从该文件路径下获取与所述代码生成策略文件名以及模板策略文件名对应的代码生成策略、模板策略。在该种实施方式下,用户可以在AT文档中进行代码生成策略制定以及进行模板策略制定并保存,当需要实施本申请所示的方法时,在工具目录下打开CMD命令执行窗口,在CMD命令执行窗口中输入的文件路径以及存储于该文件路径下的事先配置的代码生成策略文件名以及模板策略文件名,然后运行如敲击回车键,该工具便会响应用户在CMD命令执行窗口中输入的文件路径以及存储于该文件路径下的事先配置的代码生成策略文件名以及模板策略文件名,从该文件路径下获取与代码生成策略文件名以及模板策略文件名对应的代码生成策略、模板策略。
一种实施方式下,获取用户制定的代码生成策略、模板策略的过程可以是:响应用户在工具界面中针对代码生成策略以及模板策略的配置操作,获得与配置操作对应的代码生成策略以及模板策略。在该种实施方式下,当用户想要制定代码生成策略、模板策略时,打开Python工具,在该工具的显示界面中进行代码生成策略以及模板策略的配置操作,工具响应用户在工具界面中针对代码生成策略以及模板策略的配置操作,获得与配置操作对应的代码生成策略以及模板策略。
步骤S102:根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码。
工具在获取到用户制定的代码生成策略、模板策略后,通过解析代码生成策略、模板策略后,然后便可根据代码生成策略、模板策略对应的预设代码模板,自动生成适配于预设代码模板的AT框架的AT代码。
可选地,步骤S102的实现过程可以是:根据编码规范,将代码生成策略中的参数内容进行大小写转换预处理,根据预处理后的代码生成策略中的文件名称配置,创建对应的代码文件,确定模板策略对应的预设代码模板,最后根据预处理后的代码生成策略、模板策略对应的预设代码模板,自动生成适配于预设代码模板的AT框架的AT代码,并将生成的AT代码保存在创建的代码文件中。在“根据预处理后的代码生成策略、模板策略对应的预设代码模板,自动生成适配于预设代码模板的AT框架的AT代码,并将生成的AT代码保存在创建的代码文件中”之前,可以先进行脚本预处理,根据编码规范,将代码生成策略中的参数内容进行大小写转换预处理,以符合编码规范,以及根据预处理后的代码生成策略中的文件名称配置,创建对应的代码文件,例如,根据代码生成策略中的'Filename':'quectel_tcpip'创建quectel_tcpip的代码文件名称。此外,还根据模板策略,确定模板策略对应的预设代码模板,例如,若模板策略为RDA,则确定模板为RDA平台内置模板。
其中,在生成代码时,工具的代码生成引擎会根据预处理后的代码生成策略、以及模板策略对应的预设代码模板来生成对应的AT代码。其生成过程可以是:根据预处理后的代码生成策略中的文件名称配置,生成以文件名称配置中的文件名为前缀的.h文件和.c文件;在.h文件和.c文件下,根据预处理后的代码生成策略中的宏定义配置,生成对应的宏定义代码,并按照预处理后的代码生成策略中的AT指令顺序,基于模板策略对应的预设代码模板,对应生成适配于预设代码模板的AT框架的AT代码,直到完成最后一个AT指令的代码生成;将包含AT代码的.h文件和.c文件保存在代码文件中。例如,根据代码生成策略中的'Filename':'quectel_tcpip'生成以quectel_tcpip为前缀的.h文件和.c文件,也即quectel_tcpip.h文件和quectel_tcpip.c文件。根据预处理后的代码生成策略中的宏定义配置,如'Macro'、'MacroHeader'在.h文件和.c文件下,生成对应的宏定义代码,并按照预处理后的代码生成策略中的AT指令顺序,结合预设代码模板中的for、if、变量以及循环、条件判断等逻辑,顺序生成对应的AT代码,直到完成最后一个AT指令的代码生成,并将包含AT代码的.h文件和.c文件保存在代码文件中。例如,假设该代码生成策略中包括5条AT指令,例如,按照AT指令顺序,分别针对每一条生成对应的AT代码。
其中,针对代码生成策略中的每一条AT指令,基于模板策略对应的预设代码模板,对应生成适配于预设代码模板的AT框架的AT代码的过程可以是:基于预设代码模板,以及预处理后的代码生成策略中该AT指令的AT名称、AT描述和注释类设置,生成对应的函数名、函数声明以及函数注释信息;基于预设代码模板,以及该AT指令的AT框架业务逻辑配置,生成对应的AT框架代码;基于预设代码模板,以及该AT指令的AT参数信息,生成对应的参数校验逻辑代码、常量定义代码及数据结构体代码。
针对每一条AT指令,根据该AT指令的AT名称(如上述的'Name')、AT描述(如上述的'Desc')和注释类设置(如上述的'Author'、'Date')生成对应的函数名、函数声明以及函数注释信息。其中,AT名称用于生成对应的函数名、函数声明;AT描述和注释类设置用于生成函数注释信息。基于预设代码模板以及该AT指令的AT框架业务逻辑配置(如上述的'TEST'、'MUST_NUM'、'SUM'、'READ_FLAG'、'URC_MODE'、'URC_MAX_LEN')生成对应的AT框架代码。基于预设代码模板,以及该AT指令的AT参数信息(如上述的'pos'、'option'、'name'、'uppercase'、'type'、'min'、'max'、'def'、'max_length'),生成对应的参数校验逻辑代码、常量定义代码及数据结构体代码。通过上述的方式便会自动生成适配于预设代码模板的AT框架的AT代码的.h文件和.c文件,最后将包含AT代码.h文件和.c文件保存在创建的代码文件中输出即可。
其中,模板策略对应的预设代码模板可以为多个,即同时选择了多个不同通讯模组平台的AT框架代码模板,则在生成AT代码时,会针对每一个预设代码模板,根据代码生成策略以及该预设代码模板,自动生成适配于该预设代码模板的AT框架的AT代码,从而实现基于同一份代码生成策略,生成多个适配于不同通讯模组平台的AT框架代码模板的AT代码。若用户在制定模板策略时,选择了多个预设代码模板,则通过上述的方式便会自动生成适配于各个预设代码模板的AT框架的AT代码的.h文件和.c文件,最后将包含AT代码的.h文件和.c文件保存在创建的代码文件中输出即可。
步骤S103:输出包含所述AT代码的代码文件。
在自动生成适配于预设代码模板的AT框架的AT代码后,将包含AT代码的.h文件和.c文件保存在创建的代码文件中输出即可。
为了便于理解本申请的AT框架代码自动生成方法,下面将结合具体图示,对工具执行本方法的过程进行说明。以Window系统,已安装了python3环境为例,在工具目录下打开CMD命令执行窗口,执行如python autoCode.py-h的文件即可查看帮助手册,该帮助手册用于指引如何操作该工具。需要说明的是,查看帮助手册的步骤并不是必须的,若用户已熟悉操作流程,则可以省略该步骤。然后在CMD命令执行窗口中输入执行python autoCode.pytcpip.json ALL文件,即可针对同一份配置生成适配于2个不同平台(EIGEN平台内置模板、RDA平台内置模板)的AT框架代码,其示例如图2所示。需要说明的是,此处仅以包含2个AT框架代码模板进行示例说明的,也即ALL相当于全选,也即同时选择了2个AT框架代码模板。
当然,也可以仅选择一个代码模板,例如,在CMD命令执行窗口中输入执行pythonautoCode.py tcpip.json RDA文件,即可生成针对指定配置生成指定平台(RDA平台内置模板的AT框架代码,其示例如图3所示。
本申请实施例还提供了一种应用于电子设备的AT框架代码自动生成装置100,如图4所示。该AT框架代码自动生成装置100包括:获取模块110、生成模块120以及输出模块130。
获取模块110,用于获取用户制定的代码生成策略、模板策略。
可选地,获取模块110具体用于:响应用户在工具界面中针对代码生成策略以及模板策略的配置操作,获得与所述配置操作对应的代码生成策略以及模板策略。或者,具体用于:响应用户在CMD命令执行窗口中输入的文件路径以及存储于该文件路径下的事先配置的代码生成策略文件名以及模板策略文件名,从该文件路径下获取与所述代码生成策略文件名以及模板策略文件名对应的代码生成策略、模板策略。
生成模块120,用于根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码。
可选地,生成模块120,具体用于:根据编码规范,将所述代码生成策略中的参数内容进行大小写转换预处理;根据预处理后的代码生成策略中的文件名称配置,创建对应的所述代码文件;确定所述模板策略对应的预设代码模板;根据所述预处理后的代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,并将生成的所述AT代码保存在创建的所述代码文件中。
可选地,生成模块120,具体用于:根据预处理后的所述代码生成策略中的文件名称配置,生成以所述文件名称配置中的文件名为前缀的.h文件和.c文件;在所述.h文件和所述.c文件下,根据预处理后的所述代码生成策略中的宏定义配置,生成对应的宏定义代码,并按照预处理后的所述代码生成策略中的AT指令顺序,基于所述模板策略对应的预设代码模板,对应生成适配于所述预设代码模板的AT框架的AT代码,直到完成最后一个AT指令的代码生成;将包含AT代码的所述.h文件和所述.c文件保存在所述代码文件中。
可选地,生成模块120,具体用于:针对所述代码生成策略中的每一条AT指令,基于所述预设代码模板,以及预处理后的所述代码生成策略中该AT指令的AT名称、AT描述和注释类设置,生成对应的函数名、函数声明以及函数注释信息;基于所述预设代码模板,以及该AT指令的AT框架业务逻辑配置,生成对应的AT框架代码;基于所述预设代码模板,以及该AT指令的AT参数信息,生成对应的参数校验逻辑代码、常量定义代码及数据结构体代码。
所述模板策略对应的预设代码模板包括多个,可选地,生成模块120,具体用于:针对每一个预设代码模板,根据所述代码生成策略以及该预设代码模板,自动生成适配于该预设代码模板的AT框架的AT代码。
输出模块130,用于输出包含所述AT代码的代码文件。
本申请实施例所提供的AT框架代码自动生成装置100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
如图5所示,图5示出了本申请实施例提供的一种电子设备200的结构框图。所述电子设备200包括:收发器210、存储器220、通讯总线230以及处理器240。
所述收发器210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,收发器210用于收发数据。存储器220用于存储计算机程序,如存储有图4中所示的软件功能模块,即AT框架代码自动生成装置100。其中,AT框架代码自动生成装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(operating system,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的可执行模块,例如AT框架代码自动生成装置100包括的软件功能模块或计算机程序。例如,处理器240,用于获取用户制定的代码生成策略、模板策略;根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码;输出包含所述AT代码的代码文件。
其中,存储器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)等。
处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。
其中,上述的电子设备200,包括但不限于交换机、路由器等。
本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),该存储介质上存储有计算机程序,该计算机程序被计算机如上述的电子设备200运行时,执行上述所示的AT框架代码自动生成方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种AT框架代码自动生成方法,其特征在于,应用于电子设备,所述方法包括:
获取用户制定的代码生成策略、模板策略;
根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码;
输出包含所述AT代码的代码文件。
2.根据权利要求1所述的方法,其特征在于,根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,包括:
根据编码规范,将所述代码生成策略中的参数内容进行大小写转换预处理;
根据预处理后的代码生成策略中的文件名称配置,创建对应的所述代码文件;
确定所述模板策略对应的预设代码模板;
根据所述预处理后的代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,并将生成的所述AT代码保存在创建的所述代码文件中。
3.根据权利要求2所述的方法,其特征在于,根据预处理后的代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,并将生成的所述AT代码保存在创建的所述代码文件中,包括:
根据预处理后的所述代码生成策略中的文件名称配置,生成以所述文件名称配置中的文件名为前缀的.h文件和.c文件;
在所述.h文件和所述.c文件下,根据预处理后的所述代码生成策略中的宏定义配置,生成对应的宏定义代码,并按照预处理后的所述代码生成策略中的AT指令顺序,基于所述模板策略对应的预设代码模板,对应生成适配于所述预设代码模板的AT框架的AT代码,直到完成最后一个AT指令的代码生成;
将包含AT代码的所述.h文件和所述.c文件保存在所述代码文件中。
4.根据权利要求3所述的方法,其特征在于,针对所述代码生成策略中的每一条AT指令,基于所述模板策略对应的预设代码模板,对应生成适配于所述预设代码模板的AT框架的AT代码,包括:
基于所述预设代码模板,以及预处理后的所述代码生成策略中该AT指令的AT名称、AT描述和注释类设置,生成对应的函数名、函数声明以及函数注释信息;
基于所述预设代码模板,以及该AT指令的AT框架业务逻辑配置,生成对应的AT框架代码;
基于所述预设代码模板,以及该AT指令的AT参数信息,生成对应的参数校验逻辑代码、常量定义代码及数据结构体代码。
5.根据权利要求1所述的方法,其特征在于,所述模板策略对应的预设代码模板包括多个,根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码,包括:
针对每一个预设代码模板,根据所述代码生成策略以及该预设代码模板,自动生成适配于该预设代码模板的AT框架的AT代码。
6.根据权利要求1所述的方法,其特征在于,获取用户制定的代码生成策略、模板策略,包括:
响应用户在工具界面中针对代码生成策略以及模板策略的配置操作,获得与所述配置操作对应的代码生成策略以及模板策略。
7.根据权利要求1所述的方法,其特征在于,获取用户制定的代码生成策略、模板策略,包括:
响应用户在CMD命令执行窗口中输入的文件路径以及存储于该文件路径下的事先配置的代码生成策略文件名以及模板策略文件名,从该文件路径下获取与所述代码生成策略文件名以及模板策略文件名对应的代码生成策略、模板策略。
8.一种AT框架代码自动生成装置,其特征在于,应用于电子设备,所述装置包括:
获取模块,用于获取用户制定的代码生成策略、模板策略;
生成模块,用于根据所述代码生成策略、所述模板策略对应的预设代码模板,自动生成适配于所述预设代码模板的AT框架的AT代码;
输出模块,用于输出包含所述AT代码的代码文件。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述处理器与所述存储器连接;
所述存储器,用于存储程序;
所述处理器,用于调用存储于所述存储器中的程序,以执行如权利要求1-7中任一项所述的方法。
10.一种存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器运行时,执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110582192.1A CN113312084B (zh) | 2021-05-26 | 2021-05-26 | At框架代码自动生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110582192.1A CN113312084B (zh) | 2021-05-26 | 2021-05-26 | At框架代码自动生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113312084A true CN113312084A (zh) | 2021-08-27 |
CN113312084B CN113312084B (zh) | 2023-03-28 |
Family
ID=77375313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110582192.1A Active CN113312084B (zh) | 2021-05-26 | 2021-05-26 | At框架代码自动生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113312084B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114201229A (zh) * | 2021-11-04 | 2022-03-18 | 智新控制系统有限公司 | Lin配置代码自动生成方法、系统及计算机可读存储介质 |
CN114430300A (zh) * | 2021-12-28 | 2022-05-03 | 重庆芯讯通无线科技有限公司 | 无线通信模块的测试方法、系统、设备和介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173276B1 (en) * | 1997-08-21 | 2001-01-09 | Scicomp, Inc. | System and method for financial instrument modeling and valuation |
US20070067421A1 (en) * | 2005-09-21 | 2007-03-22 | Angelov Dimitar V | System and method for dynamic web services descriptor generation using templates |
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
CN106874019A (zh) * | 2017-03-17 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 一种骨架代码的生成方法和骨架代码生成器 |
CN108345457A (zh) * | 2018-01-24 | 2018-07-31 | 上海交通大学 | 一种对程序源代码自动生成功能描述性注释的方法 |
CN110688145A (zh) * | 2019-09-10 | 2020-01-14 | 中国平安财产保险股份有限公司 | Android MVP代码自动生成方法、装置、介质、电子设备 |
CN110825369A (zh) * | 2019-11-07 | 2020-02-21 | 四川长虹电器股份有限公司 | 一种基于java语言的代码自动生成的方法 |
CN111443904A (zh) * | 2020-03-12 | 2020-07-24 | 清华大学深圳国际研究生院 | 一种生成可执行代码的方法及计算机可读存储介质 |
CN111739274A (zh) * | 2020-08-20 | 2020-10-02 | 北京康斯特仪表科技股份有限公司 | 仪表管理系统、管理平台、工业仪表以及方法 |
-
2021
- 2021-05-26 CN CN202110582192.1A patent/CN113312084B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173276B1 (en) * | 1997-08-21 | 2001-01-09 | Scicomp, Inc. | System and method for financial instrument modeling and valuation |
US20070067421A1 (en) * | 2005-09-21 | 2007-03-22 | Angelov Dimitar V | System and method for dynamic web services descriptor generation using templates |
CN102117202A (zh) * | 2009-12-30 | 2011-07-06 | 北大方正集团有限公司 | 基于j2ee架构的代码生成装置 |
CN106874019A (zh) * | 2017-03-17 | 2017-06-20 | 微梦创科网络科技(中国)有限公司 | 一种骨架代码的生成方法和骨架代码生成器 |
CN108345457A (zh) * | 2018-01-24 | 2018-07-31 | 上海交通大学 | 一种对程序源代码自动生成功能描述性注释的方法 |
CN110688145A (zh) * | 2019-09-10 | 2020-01-14 | 中国平安财产保险股份有限公司 | Android MVP代码自动生成方法、装置、介质、电子设备 |
CN110825369A (zh) * | 2019-11-07 | 2020-02-21 | 四川长虹电器股份有限公司 | 一种基于java语言的代码自动生成的方法 |
CN111443904A (zh) * | 2020-03-12 | 2020-07-24 | 清华大学深圳国际研究生院 | 一种生成可执行代码的方法及计算机可读存储介质 |
CN111739274A (zh) * | 2020-08-20 | 2020-10-02 | 北京康斯特仪表科技股份有限公司 | 仪表管理系统、管理平台、工业仪表以及方法 |
Non-Patent Citations (2)
Title |
---|
BUCHER M ET AL.: "The binned bispectrum estimator: template-based and non-parametric CMB non-Gaussianity searches", 《JOURNAL OF COSMOLOGY & ASTROPARTICLE PHYSICS》 * |
王博 等: "一种基于模型和模板融合的自动代码生成方法", 《现代电子技术》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114201229A (zh) * | 2021-11-04 | 2022-03-18 | 智新控制系统有限公司 | Lin配置代码自动生成方法、系统及计算机可读存储介质 |
CN114201229B (zh) * | 2021-11-04 | 2024-04-05 | 智新控制系统有限公司 | Lin配置代码自动生成方法、系统及计算机可读存储介质 |
CN114430300A (zh) * | 2021-12-28 | 2022-05-03 | 重庆芯讯通无线科技有限公司 | 无线通信模块的测试方法、系统、设备和介质 |
CN114430300B (zh) * | 2021-12-28 | 2023-05-16 | 重庆芯讯通无线科技有限公司 | 无线通信模块的测试方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113312084B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5197688B2 (ja) | 統合環境生成器 | |
CN113312084B (zh) | At框架代码自动生成方法、装置、电子设备及存储介质 | |
KR101645052B1 (ko) | 디버깅 파이프라인 | |
US20170357927A1 (en) | Process management for documentation-driven solution development and automated testing | |
US11314503B2 (en) | Software development documentation using machine learning | |
US20060230393A1 (en) | Universal string analyzer and method thereof | |
CN107329765B (zh) | 程序文件处理方法及装置 | |
CN111158687B (zh) | Java插件的界面生成方法、装置、计算机设备和存储介质 | |
EP3640817A1 (en) | System and method to convert a webpage built on a legacy framework to a webpage compatible with a target framework | |
CN111581920A (zh) | 文档转换方法、装置、设备及计算机存储介质 | |
WO2023065629A1 (zh) | 一种对话管理方法、系统、终端及存储介质 | |
CN107229503B (zh) | Visio文件转换方法及系统 | |
CN103136100B (zh) | 一种Android测试的方法和系统 | |
CN111078217A (zh) | 脑图生成方法、装置和计算机可读存储介质 | |
US9298480B2 (en) | Programmatic editing of text files | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
US10180931B2 (en) | Using a template processor to determine context nodes | |
CN117873486A (zh) | 一种前后端代码自动生成方法、装置、设备及存储介质 | |
US9990343B2 (en) | System and method for in-browser editing | |
JP6516343B2 (ja) | アプリケーションユーザーインターフェース自動テスト方法、電子装置、システム及び記憶媒体 | |
US11669307B2 (en) | Code injection from natural language derived intent | |
US20190114691A1 (en) | Systems and methods for document to order conversion | |
Masciadri et al. | Frameworks for the development of adaptive systems: Evaluation of their adaptability feature through software metrics | |
CN112540755A (zh) | 一种基于前端的组件处理方法、装置、设备及存储介质 | |
CN115378996B (zh) | 一种系统间数据传输的方法、装置、设备和存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |