一种嵌入式设备的WEB网管应用程序生成方法及系统与流程

文档序号:15615030发布日期:2018-10-09 21:09阅读:203来源:国知局
本发明涉及嵌入式设备
技术领域
:,具体涉及一种嵌入式设备的web网管应用程序生成方法及系统。
背景技术
::在现有的嵌入式设备web网管的开发过程,一般是选择好一个嵌入式web服务器,熟悉其框架后,使用其接口和相应的编程语言分别独立开发出各个web应用功能,并集成到web服务器中,形成一整套完成的web网管应用。在嵌入式设备web网管应用中,绝大多数是动态网页,开发人员既需要熟悉web前台的开发技术,也需要熟悉web后台的开发技术,还需要熟悉前台与后台的配套机制。当web网管应用的数量很大时,需要花费大量的人力开发各个web应用的后台程序,并与前台逐一进行调测,进而导致web开发调试效率较低,并且对web开发质量也有很大影响。技术实现要素:针对现有技术中存在的缺陷,本发明的目的在于提供一种嵌入式设备的web网管应用程序生成方法,不仅提高了web网管应用功能程序的开发效率,而且提高了web网管应用功能程序的质量和可读性。为达到以上目的,本发明采取的技术方案是:一种嵌入式设备的web网管应用程序生成方法,包括步骤:对嵌入式设备的web网管应用进行分类;根据同一类别的web网管应用对应开发出一个web后台应用程序代码模板,所述web后台应用程序代码模板中包含有若干代码自动生成标识,并根据该类别web网管应用的每个web应用功能分别对应预定义一个web应用功能特征文件,所述web应用功能特征文件包含有与所有代码自动生成标识相关的参数信息;预先编写web后台应用程序代码自动生成程序,所述web后台应用程序代码自动生成程序根据所述web后台应用程序代码模板和web应用功能特征文件自动生成与所述web应用功能特征文件对应的web应用功能程序。在上述技术方案的基础上,所述web后台应用程序代码自动生成程序根据所述web后台应用程序代码模板和web应用功能特征文件自动生成与所述web应用功能特征文件对应的web应用功能程序的具体步骤包括:加载并解析所述web应用功能特征文件,得到与所有代码自动生成标识相关的参数信息;加载所述web后台应用程序代码模板,读取所述web后台应用程序代码模板,并识别出所有代码自动生成标识,进行代码自动生成,最终得到与所述web应用功能特征文件对应的web应用功能程序。在上述技术方案的基础上,所述代码自动生成标识包括两种类型,其中一类为静态替换标识,另一类为动态生成标识,且预先编写的web后台应用程序代码自动生成程序包括一个特定代码动态生成子程序与一个动态生成标识相对应,所述特定代码动态生成子程序用于基于web应用功能特征文件中的相关信息,动态输出一段逻辑代码;在读取所述web后台应用程序代码模板时,当读取到所述静态替换标识,则将与所述静态替换标识对应的参数信息直接替换所述静态替换标识;当读取到所述动态生成标识时,则使用所述特定代码动态生成子程序动态输出一段逻辑代码,并用所述逻辑代码替换对应的所述动态生成标识。在上述技术方案的基础上,所述web应用功能特征文件为使用xml语言编写的web功能表数据模型文件。在上述技术方案的基础上,所述web后台应用程序代码模板中包含若干结构体声明和定义。在上述技术方案的基础上,所述web应用功能特征文件的文档结构包括一个根元素,所述根元素下级包含四个子元素,四个子元素分别用于说明web应用功能的名称、说明表数据模型和结构体的对应关系、说明结构体的信息、以及说明表数据模型的最大行数。在上述技术方案的基础上,所述web后台应用程序代码模板由若干区块组成,若干区块包括头文件区、宏定义区、结构体定义区、全局变量定义区、函数定义区。在上述技术方案的基础上,所述区块分为不变的代码区块和可变的代码区块,所述可变的代码区块分别使用不同的代码自动生成标识进行标识。本发明还提供了一种上述嵌入式设备的web网管应用程序生成方法的系统,包括生成框架子系统和应用子系统;所述生成框架子系统包括针对一个类别的web网管应用对应开发的web后台应用程序代码模板、web后台应用程序代码自动生成程序,所述web后台应用程序代码模板中包含有若干代码自动生成标识;所述应用子系统包括该类别web网管应用的若干web应用功能分别对应的web应用功能特征文件,所述web应用功能特征文件包含有与所有所述代码自动生成标识相关的参数信息;所述web后台应用程序代码自动生成程序用于根据所述web后台应用程序代码模板和web应用功能特征文件自动生成与所述web应用功能特征文件对应的web应用功能程序。在上述技术方案的基础上,所述web后台应用程序代码自动生成程序包括解析单元和代码生成单元;所述解析单元用于加载并解析所述web应用功能特征文件,得到与所有代码自动生成标识相关的参数信息;所述代码生成单元用于加载所述web后台应用程序代码模板,读取所述web后台应用程序代码模板,并识别出每一个代码自动生成标识,进行代码自动生成,最终得到与所述web应用功能特征文件对应的web应用功能程序。与现有技术相比,本发明的优点在于:本发明实施例中嵌入式设备的web网管应用程序生成方法,一方面,根据实际需求,当需要自动生成web网管应用中某一web应用功能程序时,只需选取该类别预设web后台应用程序代码模板和web后台应用程序代码自动生成程序,开发人员只需预定义该web应用功能对应的web应用功能特征文件即可,web后台应用程序代码可以根据web后台应用程序代码模板和web应用功能特征文件自动生成web应用功能程序,大量的编程过程由程序自动完成,大大提高了web网管应用程序的开发效率,缩短开发时间。另一方面,由于web后台应用程序代码模板和web后台应用程序代码自动生成程序是根据统一制定的规则来预设的,只要预定义的web应用功能特征文件相同,自动生成web网管应用程序的结果就是相同的,从而可以避免人为的失误或人因差异,使得web网管应用程序的质量得以保证,且在这一过程中,便于控制编程规范,从而保证代码的可读性。附图说明图1为本发明实施例中嵌入式设备的web网管应用程序生成方法的流程图;图2为本发明实施例中自动生成web网管应用程序具体步骤的流程图;图3为本发明实施例中嵌入式设备的web网管应用程序生成系统的结构框图。具体实施方式以下结合附图及实施例对本发明作进一步详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。参见图1所示,本发明实施例提供一种嵌入式设备的web网管应用程序生成方法,包括步骤:s1:对嵌入式设备的web网管应用进行分类;s2:根据同一类别的web网管应用对应开发出一个web后台应用程序代码模板,所述web后台应用程序代码模板中包含有若干代码自动生成标识,并根据该类别web网管应用的每个web应用功能分别对应预定义一个web应用功能特征文件,所述web应用功能特征文件包含有与与所有代码自动生成标识相关的参数信息;s3:预先编写web后台应用程序代码自动生成程序;s4:所述web后台应用程序代码自动生成程序根据所述web后台应用程序代码模板和web应用功能特征文件自动生成与所述web应用功能特征文件对应的web应用功能程序。本发明实施例中嵌入式设备的web网管应用程序生成方法,一方面,根据实际需求,当需要自动生成web网管应用中某一web应用功能程序时,只需选取该类别预设web后台应用程序代码模板和web后台应用程序代码自动生成程序,开发人员只需预定义该web应用功能对应的web应用功能特征文件即可,web后台应用程序代码可以根据web后台应用程序代码模板和web应用功能特征文件自动生成web应用功能程序,大量的编程过程由程序自动完成,大大提高了web网管应用程序的开发效率,缩短开发时间。另一方面,由于web后台应用程序代码模板和web后台应用程序代码自动生成程序是根据统一制定的规则来预设的,只要预定义的web应用功能特征文件相同,自动生成web网管应用程序的结果就是相同的,从而可以避免人为的失误或人因差异,使得web网管应用程序的质量得以保证,且在这一过程中,便于控制编程规范,从而保证代码的可读性。作为一种较好的可选的实施方式,由于在大多数嵌入式设备web网管应用中,带索引的表数据模型及表数据模型的增删改查操作,占据了整个web网管应用中非常大一部分的比例,因此,在本实施例中,所述web应用功能特征文件为使用xml语言编写的带索引的web功能表数据模型文件。在本发明实施例中,由于xml语言是通用语言,且有通用的解析工具,使用xml语言通用性更强,应用范围更广。作为一种较好的可选的实施方式,所述web后台应用程序代码模板中包含若干结构体声明和定义。由于通常后台程序采用c语言开发较多,在本实施例中,具体以c语言开发的web后台应用程序代码模板为例。所述web应用功能特征文件的文档结构包括一个根元素,所述根元素下级包含四个子元素,四个子元素分别用于说明web应用功能的名称、说明表数据模型和结构体的对应关系、说明结构体的信息、以及说明表数据模型的最大行数。在本实施例中,所述web应用功能特征文件的文档结构特征如下:根元素为<web_function>,所述根元素下级包含四个子元素,分别为<function>元素、<table_entry>元素、<table_info>元素和<table_size>元素。分别对每个子元素进行介绍如下:<function>元素:用于说明web应用功能的名称,包含属性name,该属性name表示web应用功能的名称;<table_entry>元素:用于说明表数据模型的表中的一行和结构体的对应关系,此处的对应关系也可理解为映射关系,在表数据模型中的一行内容对应映射web后台应用程序代码模板中的一个结构体的实例,该<table_entry>元素包含两个属性,分别为struct_name和instace,属性struct_name表示结构体的名称,属性instace表示结构体的实例名;在<table_entry>元素下级包含有1到多个member子元素,此处的member子元素为成员子元素,每个member元素均包含下列属性:name,表示结构体成员的名称;data_type,表示结构体成员的数据类型;length,表示结构体成员的数据长度;statement,表示对结构体成员的注释说明;<table_info>元素:用于说明表数据模型与后台对应结构体的关联信息,包含两个属性,分别为struct_name和instace,属性struct_name表示结构体的名称,在c语言中,该结构体的一个成员是<table_entry>元素所映射的结构体的数组,属性instace表示结构体的实例名;<table_size>元素:用于说明表数据模型的最大行数,即为前台表格的最大行数,此处表数据模型的最大行数对应web后台应用程序代码模板中结构体数组的最大元素个数,包含如下两个属性:macro_name,表示<table_entry>元素所映射的结构体的数组的大小的宏名;macro_value,表示<table_entry>元素所映射的结构体的数组的大小的宏值。在本发明实施例中,web应用功能特征文件用表格显示所有嵌入式设备配件的基本信息,并可创建一条新的配件信息,并可对每条配件信息进行修改或删除操作。在嵌入式设备的应用中,配件信息的属性可以包括:配件名称、配件描述、配件种类、配件重量和配件数量等,可以根据实际需求,相应设置嵌入式设备的配件信息。在嵌入式设备的应用中的web应用功能特征文件示例如下:上述示例中,web应用功能的名称由function元素的属性名name表示,为配件管理part_management,<table_entry>元素对应显示的设备配件的所有属性信息,每个member子元素即对应为一个属性信息,该member子元素的name属性对应配件名称,该member子元素的statement属性对应配件描述,也可以相应设置member子元素的多个其他属性,分别对应配件种类、配件重量和配件数量等。<table_entry>元素的属性struct_name即结构体名称为part_management_item,该结构体的实例名为part_management_table_entry,该结构体第一个成员的名称为part_name,数据类型为字符型,数据长度为20字节,注释说明为配件名称,该结构体第二个成员的名称part_description,数据类型为字符型,数据长度为40,注释说明为配件描述,该结构体第三个成员的名称为part_type,数据类型为无符号整型,数据长度为该数据类型默认值,注释说明为配件类型,该结构体第四个成员的名称partweight,数据类型为无符号整型,数据长度为该数据类型默认值,注释说明为配件重量,该结构体第五个成员的名称partnumber,数据类型为无符号整型,数据长度为该数据类型默认值,注释说明为配件数量。作为一种较好的可选的实施方式,由于通常后台程序采用c语言开发较多,在本实施例中,具体以c语言开发的web后台应用程序代码模板为例,所述web后台应用程序代码模板的结构特征如下:所述web后台应用程序代码模板由若干区块组成,若干区块包括头文件区、宏定义区、结构体定义区、全局变量定义区、函数定义区。所述区块分为不变的代码区块和可变的代码区块,不变的代码区块从模板中直接拷贝到新生成的代码文件中,所述的可变的代码区块在代码生成处理时,被新生成的代码替换输出到新生成的代码文件中。在可变的代码区块中,代码生成标识包括两种类型,在所述web后台应用程序代码模板中分别用不同标签进行标识,其中一种类型为静态替换标识,用标签<@@>进行标识,另一种类型动态生成标识,用标签<$$>进行标识,且每一个动态生成标识在预先编写的web后台应用程序代码自动生成程序中有一个特定代码动态生成子程序与之相对应,所述特定代码动态生成子程序使用web应用功能特征文件中的相关信息,动态输出一段逻辑代码。所述web后台应用程序代码模板中不同区块的示例如下:作为一种较好的可选的实施方式,参见图2所示,所述web后台应用程序代码自动生成程序根据所述web后台应用程序代码模板和web应用功能特征文件自动生成该类别的web网管应用程序的具体步骤包括:s401:加载并解析所述web应用功能特征文件,得到与所有代码自动生成标识相关的参数信息,即每个xml元素的属性值;s402:生成一个web网管应用程序的空文件,名字为function元素name属性的值;s403:加载所述web后台应用程序代码模板;s404:逐行读取所述web后台应用程序代码模板中的每一行代码;当读取到标签<@@>标识的代码时,即认为读取到静态替换标识,则将与所述静态替换标识对应的参数信息直接替换所述静态替换标识,具体地,如<@table_sizemacro_name@>,则以tablesizemacro_name作为xml文档的搜索路径,查询到table_size元素的macro_name属性的值,并以该值替换<@table_sizemacro_name@>;当读取到标签<$$>标识的代码时,即认为读取到动态生成标识,如<$table_entry_member$>,则会进入table_entry_member对应的特定代码动态生成子程序,使用所述特定代码动态生成子程序动态输出一段逻辑代码,并用所述逻辑代码替换对应的所述动态生成标识<$table_entry_member$>;s405:将所述web后台应用程序代码模板中的每一行代码中的代码自动生成标识进行相应替换后,输出到上述空文件中,形成与所述web应用功能特征文件对应的web应用功能程序。在本实施例步骤s404中,<$table_entry_member$>对应的特定代码动态生成子程序动态输出一段逻辑代码的过程如下:在xml文件(即web功能表数据模型文件)中的table_entry元素下面,查找到每一个member元素,为每一个member生成一行代码,以第一个member成员part_name为例:在该行代码中,首先输出data_type属性值,代码行为“char”,接着输出name属性值,代码行为“charpart_name”,接着输出length属性值,代码行为“charpart_name[20]”,接着输出statement属性值,代码行为“charpart_name[20]/*thenameofthepart*/”。最终上述结构体定义区中<$table_entry_member$>动态生成标识所对应的动态生成的代码示例如下:参见图3所示,本发明另一实施例提供了一种嵌入式设备的web网管应用程序生成系统,包括生成框架子系统和应用子系统。所述生成框架子系统包括针对一个类别的web网管应用对应开发的web后台应用程序代码模板、web后台应用程序代码自动生成程序,所述web后台应用程序代码模板中包含有若干代码自动生成标识;所述应用子系统包括该类别web网管应用的若干web应用功能分别对应的web应用功能特征文件,所述web应用功能特征文件包含有与所有所述代码自动生成标识相关的参数信息;所述web后台应用程序代码自动生成程序用于根据所述web后台应用程序代码模板和web应用功能特征文件自动生成与所述web应用功能特征文件对应的web应用功能程序。具体地,所述web后台应用程序代码自动生成程序包括解析单元和代码生成单元;所述解析单元用于加载并解析所述web应用功能特征文件,得到与所有代码自动生成标识相关的参数信息;所述代码生成单元用于加载所述web后台应用程序代码模板,读取所述web后台应用程序代码模板,并识别出所有代码自动生成标识,进行代码自动生成,最终得到与所述web应用功能特征文件对应的web应用功能程序。本发明实施例中嵌入式设备的web网管应用程序生成系统,一方面,根据实际需求,当需要自动生成web网管应用中某一web应用功能程序时,只需选取该类别预设web后台应用程序代码模板和web后台应用程序代码自动生成程序,开发人员只需预定义该web应用功能对应的web应用功能特征文件即可,web后台应用程序代码可以根据web后台应用程序代码模板和web应用功能特征文件自动生成web应用功能程序,大量的编程过程由程序自动完成,大大提高了web网管应用程序的开发效率,缩短开发时间。另一方面,由于web后台应用程序代码模板和web后台应用程序代码自动生成程序是根据统一制定的规则来预设的,只要预定义的web应用功能特征文件相同,自动生成web网管应用程序的结果就是相同的,从而可以避免人为的失误或人因差异,使得web网管应用程序的质量得以保证,且在这一过程中,便于控制编程规范,从而保证代码的可读性。本发明不局限于上述实施方式,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1