[发明专利]一种树表结合驱动Windows/Linux平台通讯协议源代码自动生成方法有效
申请号: | 201410233790.8 | 申请日: | 2014-05-29 |
公开(公告)号: | CN103984555B | 公开(公告)日: | 2017-03-15 |
发明(设计)人: | 张子利;范亚;周保琢;唐经天;张波;王诗利;刘正敏;宋勇 | 申请(专利权)人: | 四川航天系统工程研究所 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F11/36 |
代理公司: | 四川省成都市天策商标专利事务所51213 | 代理人: | 伍孝慈 |
地址: | 610000 四川省成都*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 种树 结合 驱动 windows linux 平台 通讯 协议 源代码 自动 生成 方法 | ||
技术领域
本发明涉及一种应用程序中协议源代码实现技术,尤其涉及一种树表结合驱动特定平台通讯协议源代码自动生成方法。
背景技术
传统的通讯协议源程序自动生成技术大多基于ASN.1、SDL或TTCN等数据帧建模语言技术实现的,对于企业中应用软件开发人员来说,这些数据帧建模语言存在一定的学习曲线,导致目前在企业分布式应用程序中代码自动生成技术应用并不广泛,大多通讯程序仍然依靠软件开发人员直接解读相关指定的通讯协议原始文档来手动编程,从数学的角度来说,由于采用自然语言描述的通讯协议规范文档缺乏一定的严谨性,加之部分软件开发人员对执行通讯协议规范重要程度不够,因此很多应用系统最终都无法满足相关通讯协议标准规范的要求,或部分满足。另外在应用系统研制过程中随着相关需求变化,往往会带来大量通讯层协议的修改,也会导致通讯代码修改、联合调试等工作的反复,这些机械而重复的修改与通讯调试工作占用了软件开发人员宝贵的研发精力,而且人工修改代码容易导致系统出错。这些因素综合起来导致企业各分布式应用系统互联互通测试周期长、协调难度大,对企业应用互操作一体化建设带来了较大的难度与成本。
发明内容
本发明的目的就在于提供一种结合目前大多数企业应用软件开发人员比较习惯应用二维表格来描述分布式应用程序中涉及的通讯协议用树与表格联合描述通讯协议,并基于其驱动特定平台的源代码自动生成方法与技术,并解决上述问题的基于树形结构结合表格驱动的特定平台通讯协议源代码自动生成方法。
为了实现上述目的,本发明采用的技术方案是:一种树表结合驱动特定平台通讯协议源代码自动生成方法,包括数据帧建模管理模块、源代码自动生成模块、代码仿真检验模块和开发包构建模块,
数据帧建模管理模块对于任何一个数据帧,均建立一个数据帧工程,然后通过数据帧建模管理工具,采用树与表结构结合的方式实现对数据帧分段管理、段内数据结构管理与数据帧校验位管理;
源代码自动生成模块,首先采用数据业务视图、数据结构视图与数据流视图三层来构建数据包的数据结构,以此实现数据包的通讯层代码组织,然后调用相关配置,基于相关规则驱动自动生成c++/c#等语言平台的通讯数据帧编码与解码源代码,从而实现数据帧描述表格的修改直接驱动通讯代码自动生成;
代码仿真检验模块,该模块在源代码自动生成模块自动生成编解码源代码基础上,同时生成一组入口与调用代码,然后调用第三方编译程序,生成源代码仿真程序,配合相关通讯测试用例数据,实现自动生成代码的测试检验;
开发包构建模块,该模块主要实现对经过代码仿真检验模块仿真检验合格的源代码封装为可被其他应用调用的开发包;
作为优选,所述源代码自动生成模块分为数据结构源代码生成和编解码的源代码生成,所述数据结构源代码生成分为数据业务层数据类生成、数据结构层数据类生成和数据流层数据类生成:所述编解码的源代码生成分为编码函数源代码生成和解码函数源代码生成;
作为优选,所述数据业务层数据类生成过程,首先从数据帧建模管理模块构建数据帧形式化描述的树状图,然后构建相关数据结构信息,首先采用深度优先的原则标记出整棵树中其子节点为数据结构节点的数据分段节点,同时生成其数据类信息,然后根据树节点由深到浅一层一层的生成其数据类信息;
数据结构层数据类生成过程,数据结构层的数据类信息分为两种情况,第一种情况如果所有分段均为固定长度,则数据类采用一维平面结构,首先从数据帧建模管理模块构建数据帧形式化描述的树状图,采用深度优先的原则,由根节点到数据结构节点经过的所有分段节点缩写名采用分割符号“_”串接后生成最终数据类的属性名;第二种情况如果所有分段存在非固定长度,则采用多层结构,其数据类结构生成方法采用非固定长度的数组形式确定,其长度可以在运行时确定;
数据流层数据类生成过程,主要为BYTE格式数组,其长度可以在运行时确定;
作为优选,编码函数源代码生成过程,该编码函数的输入为数据业务层数据类对象,输出为数据流信息,对于非固定长度数据帧根据数据业务层数据类对象相关数组个数确定数据流运行时长度与部分数据结构层数据类对象运行时长度,并将具体长度信息写入长度确定位中,在确定长度基础上,首先根据数据结构节点的编码代码确定每个数据结构层数据类对象中属性的编码过程,然后将数据结构层数据类对象按照树节点的组织顺序写入数据流中,完成最终数据流组装,同时根据设置确定是否在每个变换环节加入日志记录代码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川航天系统工程研究所,未经四川航天系统工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410233790.8/2.html,转载请声明来源钻瓜专利网。