[发明专利]一种结构体定义和结构输出的方法及装置无效
申请号: | 201310075693.6 | 申请日: | 2013-03-11 |
公开(公告)号: | CN103116500A | 公开(公告)日: | 2013-05-22 |
发明(设计)人: | 高雷;刘维兆;郭立伟;陈丹;李书昌;王彦辉;赵强;龚彩军;李亮举 | 申请(专利权)人: | 北京首钢自动化信息技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京华谊知识产权代理有限公司 11207 | 代理人: | 刘建民 |
地址: | 100041*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结构 定义 输出 方法 装置 | ||
技术领域
本发明涉及自动代码生成技术,更具体说利用配置文件模板方法快捷的自动生成用户自定义结构体文件和结构体内容打印文件的一种方法以及实现这种方法的一种代码自动生成装置。
背景技术
在冶金过程控制系统开发过程中,多个系统间进行数据交换,常通过以太网以TCP/IP协议按照二进制字节流方式传递数据。对于大量的二进制数据,为了便于解析和管理,通常将这数据以某些结构集合在一起,形成用户自定义结构体。对于小型系统设计来说,整个系统中定义的数据结构并不是很多,在开发阶段可以用人工输入方式生产这些结构体。但随着系统越来越复杂,定义结构体也随着变的复杂,往往是多层结构嵌套等。这对开发人员来说,定义这些结构体变得异常复杂和繁琐,而且维护管理也很不方便。尤其当系统接口数据发生变化时,修改接口数据结构不但繁琐而且容易出错。同时,在程序调试和测试阶段,结构体存储的内容是二进制,想要查看和跟踪数据非常困难,如果能够实时将结构体中的内容打印出来,这样将大大调高程序调试和测试的效率。所以为了提高程序开发,调试,测试效率,简化维护管理步骤,发明了一种基于文本模板配置的用户自定义结构体定义和内容打印方法。并提供一种采用了应用代码生成技术实现上述方法的装置。
应用代码生成技术是使用程序生成代码的一种技术,它最初的用途是把高级语言编译成汇编代码,机器指令,是语言转换,编译不可缺少的工具,尤其是在XML语言出现时代码生成器越来越多的应用到高级语言程序代码的生产中。代码生成所包含的面非常之广,有文本模板,正则表达式,XML以及命令行等。但是对于目前最普遍的层生成器,所使用的技术有很多是共通的。本代码生成装置就采用了文本模板技术来实现。文本模板代码生成通常借助一些文本模板工具来产生和维护一个具有复杂结构类型的文件,而应用程序只关注产生代码格式,这样可以把逻辑的定义和逻辑的代码格式相分离,形成符合程序执生成器的简单性和完整性。
发明内容
本发明提供了一种基于文本配置模板,快速自动产生用户自定义结构体定义以及结构体内容输出的方法,同时也提供了实现此方法的代码自动产生的装置。该方法的特点在于:
根据使用者需求在Excel模板文件中配置用户自定义结构的各种属性。所述配置文档其特征在于,每个sheet页中配置一个唯一结构体的属性,不同结构体属性配置在不同的sheet页面中。Sheet页面的名称定义为结构体名称。
对于结构体属性的设计,其特征在于,结构体属性中包括结构名称,标识类型(标识类型名称和结构体名称定义相同,它用来在别的结构体成员类型名称),数据成员个数,数据成员属性以及结构体描述信息。这些信息大部分作为结构体功能的描述信息最终输出到结构体定义文件以及内容输出文件中。
对于结构体数据成员属性的设计,其特征在于,所述数据成员属性包括数据成员名称,数据成员类型,长度,数组标识,数组维数,维数大小,单位,上下限条件及描述信息。上述这些信息大部分作为结构体数据成员功能描述信息在结构体定义文件以及内容输出文件中体现。
结构体属性转换为配置数据库中的结构体表和结构体类型表。其特征在于,结构体名称、标识类型和描述映射到结构体表中,主键为结构体名称。所以在配置文件中不能出现相同名称的结构体。每个结构体本身可能作为其他结构体数据成员的类型,所以结构体的标识类型映射到结构体类型表中。
结构数据成员体属性转换为配置数据库中的结构体数据成员表,其特征在于,结构体数据成员表用数据成员在结构体中的序列号作为主键和结构体表中结构体名称作为外部键。数据成员的其他属性映射为数据成员表中的其他数据列。
配置数据库映射表产生出符合程序规范(本发明用C/C++规范)的结构体定义文件及内容打印文件的方法,其特征在于:配置数据库中结构体表,找到结构体名称,再从结构体数据成员表中查询到结构体名称所属的所有数据成员值,类型等,按照C/C++规范输出到以结构体名称命名的文件中,形成结构体定义文件(*.h)。
结构体定义文件,如果结构体数据成员类型为其他数据结构体,则要先迭代产生数据成员类型中结构体的定义文件,并在所述结构体定义文件中包含数据成员结构体类型文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京首钢自动化信息技术有限公司,未经北京首钢自动化信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310075693.6/2.html,转载请声明来源钻瓜专利网。