一种基于模板的协议代码生成方法技术

技术编号:15652912 阅读:70 留言:0更新日期:2017-06-17 06:48
本发明专利技术公开了一种基于模板的协议代码生成方法,将大量协议内容固化到独立于代码外的协议配置文件中,通过构建协议代码框架的模板,令模板读取该协议配置文件进而生成协议代码的方法。本发明专利技术简化了开发人员手工编写协议代码的工作,将工作重心真正转移到业务逻辑、页面设计等其它方面的设计与实现上。

【技术实现步骤摘要】
一种基于模板的协议代码生成方法
本专利技术涉及一种协议代码的生成方法,特别是一种基于模板的协议代码生成方法。
技术介绍
在网络技术的推动下,利用协议进行计算机间的相互通信或服务已成为当下非常成熟的技术。在使用协议进行通信代码的编写时,开发人员通常会对着协议内容,逐条编写代码。当协议内容大量或经常改变时,以往的方法是纯人工编写代码,即开发人员拿到新的协议表,手动对比新协议和源代码逐句检查。该方法的优点是自由度高。缺点是,开发效率低,调试难度大,故障排查困难,系统难以维护。
技术实现思路
本专利技术目的在于提供一种基于模板的协议代码生成方法,解决以往手工编写协议代码,工作效率无法提高的问题。一种基于模板的协议代码生成方法的具体步骤为:第一步搭建基于模板的协议代码生成系统基于模板的协议代码生成系统,包括:配置文件构建模块、模板生成模块和代码生成模块。所述配置文件构建模块的功能为:构建协议配置文件;模板生成模块的功能为:构建协议代码生成模板;代码生成模块的功能为:生成协议代码。第二步配置文件构建模块构建协议配置文件通常实现协议中数据包的封装和解析需要构造三种类:数据包基类、包头类和数据包派生类。数据包基类负责提供对外统一的解析数据包接口,包头类负责封装和实现协议中包头相关字段,数据包派生类负责封装和实现具体的协议。配置文件构建模块负责数据包基类、包头类和数据包派生类三种类的配置文件构建,具体方式为:包头类协议配置文件构建:将协议中包头相关的字段定义及说明逐行记录到一个文本文件中,这里称为包头类协议配置文件。数据包派生类协议配置文件构建:将协议中除包头以外的数据内容字段定义及说明逐行记录到一个文本文件中,这里称为数据包派生类协议配置文件。第三步模板生成模块构建协议代码生成模板数据包基类、包头类和数据包派生类的三种类,每个类的不同实现取决于报文内容字段的不同组织方式,因此,只要把报文内容字段单独拎出来定义即可实现不同子类代码的编写。模板生成模块负责构建数据包基类、包头类和数据包派生类的协议代码生成模板,具体方式为:数据包基类代码生成模板构建:用C#语言编写数据包基类协议代码框架,并将协议中英文名称作为配置参数,形成数据包基类代码生成模板,包头类代码生成模板构建:用C#语言编写包头类协议代码框架,并将协议中英文名称、数据包长度最大值、数据包长度最小值作为配置参数;编写用于包头类字段定义、字段接口、属性设置/获取的函数。至此生成包头类代码生成模板。数据包派生类代码生成模板构建:用C#语言编写数据包派生类模板文件,并将协议中英文名称、协议总线中英文名称、数据包长度最大值、数据包长度最小值作为配置参数;编写用于数据包类字段定义、字段接口、属性设置/获取的函数。至此生成数据包派生类代码生成模板。第四步代码生成模块生成协议代码代码生成模板通过读取协议配置文件自动生成协议代码。代码生成模块读取数据包基类模板,生成数据包基类C++代码。代码生成模块读取包头类模板,生成数据包头类C++代码,读取过程中若遇到包含包头类协议配置文件的函数信息,则读取包头类协议配置文件,通过函数转换为C++代码。代码生成模块读取数据包派生类模板,生成数据包派生类C++代码,读取过程中若遇到包含数据包派生类协议配置文件的函数信息,则读取数据包派生类协议配置文件,通过函数转换为C++代码。通常协议中的数据包是递归定义的,即数据包=包头+内容,内容=子包头+子内容,以此类推。对于递归数据包,只需要更改配置参数和协议配置文件即可重新生成代码。当协议内容更改时,通过更改配置参数和协议配置文件也可以重新生成代码。至此,完成基于模板的协议代码的生成。本专利技术简化了开发人员手工编写协议代码的工作,将工作重心真正转移到业务逻辑、页面设计等其它方面的设计与实现上。具体实施方式一种基于模板的协议代码生成方法的具体步骤为:第一步搭建基于模板的协议代码生成系统基于模板的协议代码生成系统,包括:配置文件构建模块、模板生成模块和代码生成模块。所述配置文件构建模块的功能为:构建协议配置文件;模板生成模块的功能为:构建协议代码生成模板;代码生成模块的功能为:生成协议代码。第二步配置文件构建模块构建协议配置文件通常实现协议中数据包的封装和解析需要构造三种类:数据包基类、包头类和数据包派生类。数据包基类负责提供对外统一的解析数据包接口,包头类负责封装和实现协议中包头相关字段,数据包派生类负责封装和实现具体的协议。配置文件构建模块负责数据包基类、包头类和数据包派生类三种类的配置文件构建,具体方式为:包头类协议配置文件构建:将协议中包头相关的字段定义及说明逐行记录到一个文本文件中,这里称为包头类协议配置文件。数据包派生类协议配置文件构建:将协议中除包头以外的数据内容字段定义及说明逐行记录到一个文本文件中,这里称为数据包派生类协议配置文件。第三步模板生成模块构建协议代码生成模板数据包基类、包头类和数据包派生类的三种类,每个类的不同实现取决于报文内容字段的不同组织方式,因此,只要把报文内容字段单独拎出来定义即可实现不同子类代码的编写。模板生成模块负责构建数据包基类、包头类和数据包派生类的协议代码生成模板,具体方式为:数据包基类代码生成模板构建:用C#语言编写数据包基类协议代码框架,并将协议中英文名称作为配置参数,形成数据包基类代码生成模板,包头类代码生成模板构建:用C#语言编写包头类协议代码框架,并将协议中英文名称、数据包长度最大值、数据包长度最小值作为配置参数;编写用于包头类字段定义、字段接口、属性设置/获取的函数。至此生成包头类代码生成模板。数据包派生类代码生成模板构建:用C#语言编写数据包派生类模板文件,并将协议中英文名称、协议总线中英文名称、数据包长度最大值、数据包长度最小值作为配置参数;编写用于数据包类字段定义、字段接口、属性设置/获取的函数。至此生成数据包派生类代码生成模板。第四步代码生成模块生成协议代码代码生成模板通过读取协议配置文件自动生成协议代码。代码生成模块读取数据包基类模板,生成数据包基类C++代码。代码生成模块读取包头类模板,生成数据包头类C++代码,读取过程中若遇到包含包头类协议配置文件的函数信息,则读取包头类协议配置文件,通过函数转换为C++代码。代码生成模块读取数据包派生类模板,生成数据包派生类C++代码,读取过程中若遇到包含数据包派生类协议配置文件的函数信息,则读取数据包派生类协议配置文件,通过函数转换为C++代码。通常协议中的数据包是递归定义的,即数据包=包头+内容,内容=子包头+子内容,以此类推。对于递归数据包,只需要更改配置参数和协议配置文件即可重新生成代码。当协议内容更改时,通过更改配置参数和协议配置文件也可以重新生成代码。至此,完成基于模板的协议代码的生成。本文档来自技高网...

【技术保护点】
一种基于模板的协议代码生成方法,其特征在于具体步骤为:第一步搭建基于模板的协议代码生成系统基于模板的协议代码生成系统,包括:配置文件构建模块、模板生成模块和代码生成模块;所述配置文件构建模块的功能为:构建协议配置文件;模板生成模块的功能为:构建协议代码生成模板;代码生成模块的功能为:生成协议代码;第二步配置文件构建模块构建协议配置文件通常实现协议中数据包的封装和解析需要构造三种类:数据包基类、包头类和数据包派生类;数据包基类负责提供对外统一的解析数据包接口,包头类负责封装和实现协议中包头相关字段,数据包派生类负责封装和实现具体的协议;配置文件构建模块负责数据包基类、包头类和数据包派生类三种类的配置文件构建,具体方式为:包头类协议配置文件构建:将协议中包头相关的字段定义及说明逐行记录到一个文本文件中,这里称为包头类协议配置文件;数据包派生类协议配置文件构建:将协议中除包头以外的数据内容字段定义及说明逐行记录到一个文本文件中,这里称为数据包派生类协议配置文件;第三步模板生成模块构建协议代码生成模板数据包基类、包头类和数据包派生类的三种类,每个类的不同实现取决于报文内容字段的不同组织方式,因此,只要把报文内容字段单独拎出来定义即可实现不同子类代码的编写;模板生成模块负责构建数据包基类、包头类和数据包派生类的协议代码生成模板,具体方式为:数据包基类代码生成模板构建:用C#语言编写数据包基类协议代码框架,并将协议中英文名称作为配置参数,形成数据包基类代码生成模板,包头类代码生成模板构建:用C#语言编写包头类协议代码框架,并将协议中英文名称、数据包长度最大值、数据包长度最小值作为配置参数;编写用于包头类字段定义、字段接口、属性设置/获取的函数;至此生成包头类代码生成模板;数据包派生类代码生成模板构建:用C#语言编写数据包派生类模板文件,并将协议中英文名称、协议总线中英文名称、数据包长度最大值、数据包长度最小值作为配置参数;编写用于数据包类字段定义、字段接口、属性设置/获取的函数;至此生成数据包派生类代码生成模板;第四步代码生成模块生成协议代码代码生成模板通过读取协议配置文件自动生成协议代码;代码生成模块读取数据包基类模板,生成数据包基类C++代码;代码生成模块读取包头类模板,生成数据包头类C++代码,读取过程中若遇到包含包头类协议配置文件的函数信息,则读取包头类协议配置文件,通过函数转换为C++代码;代码生成模块读取数据包派生类模板,生成数据包派生类C++代码,读取过程中若遇到包含数据包派生类协议配置文件的函数信息,则读取数据包派生类协议配置文件,通过函数转换为C++代码;通常协议中的数据包是递归定义的,即数据包=包头+内容,内容=子包头+子内容,以此类推;对于递归数据包,只需要更改配置参数和协议配置文件即可重新生成代码;当协议内容更改时,通过更改配置参数和协议配置文件也可以重新生成代码;至此,完成基于模板的协议代码的生成。...

【技术特征摘要】
1.一种基于模板的协议代码生成方法,其特征在于具体步骤为:第一步搭建基于模板的协议代码生成系统基于模板的协议代码生成系统,包括:配置文件构建模块、模板生成模块和代码生成模块;所述配置文件构建模块的功能为:构建协议配置文件;模板生成模块的功能为:构建协议代码生成模板;代码生成模块的功能为:生成协议代码;第二步配置文件构建模块构建协议配置文件通常实现协议中数据包的封装和解析需要构造三种类:数据包基类、包头类和数据包派生类;数据包基类负责提供对外统一的解析数据包接口,包头类负责封装和实现协议中包头相关字段,数据包派生类负责封装和实现具体的协议;配置文件构建模块负责数据包基类、包头类和数据包派生类三种类的配置文件构建,具体方式为:包头类协议配置文件构建:将协议中包头相关的字段定义及说明逐行记录到一个文本文件中,这里称为包头类协议配置文件;数据包派生类协议配置文件构建:将协议中除包头以外的数据内容字段定义及说明逐行记录到一个文本文件中,这里称为数据包派生类协议配置文件;第三步模板生成模块构建协议代码生成模板数据包基类、包头类和数据包派生类的三种类,每个类的不同实现取决于报文内容字段的不同组织方式,因此,只要把报文内容字段单独拎出来定义即可实现不同子类代码的编写;模板生成模块负责构建数据包基类、包头类和数据包派生类的协议代码生成模板,具体方式为:数据包基类代码生成模板构建:用C#语言编写数据包基类协议代码框架,并将协议中英...

【专利技术属性】
技术研发人员:孙琪周杰孔福薛超李林张金涛
申请(专利权)人:中国航天科工集团第四研究院第四总体设计部
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1