一种基于标准化模板的信息协议代码自动生成方法转让专利

申请号 : CN202211306146.X

文献号 : CN115373655B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶小舟王飞雪李蓬蓬肖伟刘文祥龚航牟卫华聂苇覃曼丽杨馨谢便志刘奇锋

申请人 : 中国人民解放军国防科技大学

摘要 :

本发明涉及一种基于标准化模板的信息协议代码自动生成方法,包括:对原始信息协议文件进行筛选分类,并设计标准化信息协议模板,对所述原始信息协议文件进行翻译处理,得到标准化信息协议文件;利用信息协议代码自动生成工具处理所述标准化信息协议文件,生成相应协议代码。相比于传统将协议文本人工直接翻译为代码的方法,本方法简洁直观、高效准确,大大节约了信息协议代码开发成本,并降低了后续代码维护的代价。

权利要求 :

1.一种基于标准化模板的信息协议代码自动生成方法,其特征在于,包括:对原始信息协议文件进行筛选分类,并设计标准化信息协议模板,对所述原始信息协议文件进行翻译处理,得到标准化信息协议文件;

利用信息协议代码自动生成工具处理所述标准化信息协议文件,生成相应协议代码;

设计所述标准化信息协议模板,包括:

将卫星导航系统空间信号接口控制文件、卫星与运控系统接口控制文件、卫星与应用系统接口控制文件、运控系统内部接口控制文件通过人工转换为标准化文件,用于使接口控制文件中代表钟差、轨道、运行管理参数的信息内容和对应的字节长度被程序自动化表达,其中,所述标准化文件即所述标准化信息协议模板;

所述信息协议代码自动生成工具,包括:

协议处理模块,用于对协议数据进行组解帧;

协议自适应对比模块,用于将解帧后的电文信息数据与真实电文信息数据进行对比,生成对比结果;

标准协议自动生成模块,用于生成标准化信息协议文件的相应协议代码。

2.根据权利要求1所述的基于标准化模板的信息协议代码自动生成方法,其特征在于,对所述原始信息协议文件进行筛选分类,包括:按照卫星与地面运控、卫星与地面测控、卫星与地面用户、地面主控站管控系统与信处系统的不同任务对象,对所述原始信息协议文件进行分类,将同一类接口的不同版本信息的协议文件分类索引在同一目录下。

3.根据权利要求1所述的基于标准化模板的信息协议代码自动生成方法,其特征在于,所述标准化信息协议文件中包括:协议名称、协议版本号、协议编码类型、协议秘钥以及完 整信息协议内容。

4.根据权利要求1所述的基于标准化模板的信息协议代码自动生成方法,其特征在于,利用所述信息协议代码自动生成工具处理所述标准化信息协议文件,包括:基于所述协议处理模块自动装载所述标准化信息协议模板,对原始信息协议数据进行组解帧,得到解帧后的电文数据信息;

将所述解帧后的电文数据信息输入至所述协议自适应对比模块中进行对比,获得对比结果。

5.根据权利要求4所述的基于标准化模板的信息协议代码自动生成方法,其特征在于,对所述原始信息协议数据进行组解帧时,所述原始信息协议数据中要包含头文件和库文件;

其中,包含所述头文件的方法包括:根据项目的包含目录,直接取头文件的相对路径;

包含所述库文件的方法包括:用代码包含库或直接填入库名称。

6.根据权利要求4所述的基于标准化模板的信息协议代码自动生成方法,其特征在于,将所述解帧后的电文数据信息与真实的电文数据信息进行比对,得到所述对比结果,若所述对比结果一致,则进入标准协议自动生成模块;若所述对比结果不一致,则重新翻译后再 次对所述原始信息协议数据进行组解帧。

7.根据权利要求1所述的基于标准化模板的信息协议代码自动生成方法,其特征在于,所述方法还包括:在得到所述相应协议代码后,将所述代码导入卫星导航系统级试验床,生成信息流模型进行仿真试验;其中,所述卫星导航系统级试验床由北斗数字孪生软件系统与信号传播环境模拟硬件系统组成,所述信息流模型用于支撑北斗系统排查信息协议问题。

说明书 :

一种基于标准化模板的信息协议代码自动生成方法

技术领域

[0001] 本发明涉及卫星导航软件仿真技术领域,特别是涉及一种基于标准化模板的信息协议代码自动生成方法。

背景技术

[0002] 卫星导航系统间信息协议数量多、协议内容复杂、描述方法不统一、版本变更频繁。以北斗三号工程系统为例,系统间接口既包括卫星与地面运控、地面测控、用户等大系统间接口,也包括系统内部主控站管控系统与测通系统、信处系统等分系统间接口,系统间接口数量众多,且版本变更频繁,要对北斗工程系统内部信息流一致性、正确性、匹配性等进行验核,则必须对每个大系统和分系统间接口控制文件进行建模。传统将协议文件直译为代码的开发方法难度大、效率低、错误率高,难以满足复杂大系统中信息流建模的要求。
[0003] 经过对现有技术的检索,中国发明专利(申请公布号CN111427819A),公开了一种字符信息协议转换方法,通过对协议进行匹配解析并根据得到的协议类型将待转换的字符信息数据转为字符串后进行信息叠加,以解决现有设备协议转换器的能力不足,只能把其中一种外接设备通过RS232转换字符串的技术问题,从而对协议转换器在控制方案上进行优化,可以把点钞机信息、刷卡器信息、身份证的信息转换为字符串的方法,进而实现字符信息的快速转换,提高工作效率。
[0004] 中国发明专利(申请公布号:CN113190388A),公开了一种TCP接口测试方法及装置,能够获取携带测试信息的接口测试请求,根据测试信息启动客户端,以及调用心跳保活以建立客户端与服务端的长连接;将测试信息协议编码成编码数据以发送给服务端,以便服务端对编码数据进行解码及相关业务处理,并将处理结果编码成TCP数据包以响应给客户端,客户端根据TCP协议规范接收TCP数据包,并对TCP数据包进行解码及相关业务处理以断言响应结果;从而保证高效、稳定的对TCP接口进行测试。
[0005] 中国发明专利(申请公布号:CN112799657A),公开了涉及一种简化开发的代码自动生成系统。该简化开发的代码自动生成系统,通过所述数据信息读取器连接到数据信息转换器,所述模板范本与数据信息转换器均连接到代码生成器。不仅能够帮助软件开发者解放双手,提升开发效率,还缩短了软件开发周期,减少了企业软件研发的成本,保证了软件开发的质量,适于推广应用。
[0006] 总结起来,现有文献公开了一些针对通信协议或网络协议的转换方法,也有部分技术开展了简化的代码自动生成方法研究,但目前针对卫星导航系统内部的信息协议建模方法,仍然是依靠人工的方式将接口控制文件直接翻译成代码,开发成本高、正确率低、后期维护代价大,难以满足复杂大系统中大批量信息协议正确性、一致性核查的需求。

发明内容

[0007] 本发明的目的是提供一种基于标准化模板的信息协议代码自动生成方法,通过设计标准化的信息协议模板,将数量众多、内容复杂、版本多样的接口控制文件人工转换为格式化标准文件模板,然后利用开发的信息协议代码自动生成工具,将所有协议文件转换为标准格式文件并自动生成相应协议代码。
[0008] 为实现上述目的,本发明提供了如下方案:
[0009] 一种基于标准化模板的信息协议代码自动生成方法,包括:
[0010] 对原始信息协议文件进行筛选分类,并设计标准化信息协议模板,对所述原始信息协议文件进行翻译处理,得到标准化信息协议文件;
[0011] 利用信息协议代码自动生成工具处理所述标准化信息协议文件,生成相应协议代码。
[0012] 优选地,对所述原始信息协议文件进行筛选分类,包括:
[0013] 按照卫星与地面运控、卫星与地面测控、卫星与地面用户、地面主控站管控系统与信处系统的不同任务对象,对所述原始信息协议文件进行分类,将同一类接口的不同版本信息的协议文件分类索引在同一目录下。
[0014] 优选地,设计所述标准化信息协议模板,包括:
[0015] 将卫星导航系统空间信号接口控制文件、卫星与运控系统接口控制文件、卫星与应用系统接口控制文件、运控系统内部接口控制文件通过人工转换为标准化文件,用于使接口控制文件中代表钟差、轨道、运行管理参数的信息内容和对应的字节长度被程序自动化表达,其中,所述标准化文件即所述标准化信息协议模板。
[0016] 优选地,所述标准化信息协议文件中包括:协议名称、协议版本号、协议编码类型、协议秘钥以及完整信息协议内容。
[0017] 优选地,所述信息协议代码自动生成工具,包括:
[0018] 协议处理模块,用于对协议数据进行组解帧;
[0019] 协议自适应对比模块,用于将解帧后的电文信息数据与真实电文信息数据进行对比,生成对比结果;
[0020] 标准协议自动生成模块,用于生成标准化信息协议文件的相应协议代码。
[0021] 优选地,利用所述信息协议代码自动生成工具处理所述标准化信息协议文件,包括:
[0022] 基于所述协议处理模块自动装载所述标准化信息协议模板,对原始信息协议数据进行组解帧,得到解帧后的电文数据信息;
[0023] 将所述解帧后的电文数据信息输入至所述协议自适应对比模块中进行对比,获得对比结果。
[0024] 优选地,对所述原始信息协议数据进行组解帧时,所述原始信息协议数据中要包含头文件和库文件;
[0025] 其中,包含所述头文件的方法包括:根据项目的包含目录,直接取头文件的相对路径;包含所述库文件的方法包括:用代码包含库或直接填入库名称。
[0026] 优选地,将所述解帧后的电文数据信息与真实的电文数据信息进行比对,得到所述对比结果,若所述对比结果一致,则进入标准协议自动生成模块;若所述对比结果不一致,则重新翻译后再次对所述原始信息协议数据进行组解帧。
[0027] 优选地,所述方法还包括:
[0028] 在得到所述相应协议代码后,将所述代码导入卫星导航系统级试验床,生成信息流模型进行仿真试验;其中,所述卫星导航系统级试验床由北斗数字孪生软件系统与信号传播环境模拟硬件系统组成,所述信息流模型用于支撑北斗系统排查信息协议问题。
[0029] 本发明的有益效果为:
[0030] 本发明提供的基于标准化模板的信息协议代码自动生成方法能够显著提升传统协议代码生成方法的效率,相比于传统将协议文本人工直接翻译为代码的方法,本方法简洁直观、高效准确,大大节约了信息协议代码开发成本,并降低了后续代码维护的代价。

附图说明

[0031] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0032] 图1为本发明实施例中一种基于标准化模板的信息协议代码自动生成方法流程图。

具体实施方式

[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0034] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0035] 参考图1,本发明提供了一种基于标准化模板的信息协议代码自动生成方法。在具体实施时,一般先将数量众多、内容复杂、版本多样的接口控制文件人工转换为格式化标准文件模板,然后利用开发的信息协议代码自动生成工具,将所有协议文件转换为标准格式文件并自动生成相应协议代码,最终生成系统级仿真软件可集成的信息协议模型。
[0036] 本发明提供的算法具体包括如下步骤:
[0037] S1:信息协议文件筛选分类。卫星导航系统间信息协议数量多、协议内容复杂、描述方法不统一、版本变更频繁。按照卫星与地面运控、卫星与地面测控、卫星与地面用户、地面主控站管控系统与信处系统等不同任务对象,将接口协议文件进行分类,将同一类接口的不同版本协议文件分类索引在同一目录下。
[0038] 具体的,以卫星导航系统空间信号接口控制文件(B1/B2/B3频点)为例,公开发布的接口控制文件包含1.0、2.0、3.0等不同版本,在系统建设的不同阶段,还衍生了多个内部版本,需要将这些同一类型不同版本的信息协议文件进行分类存储在同一目录下,而不能将上注信号接口文件、下行信号接口文件等不同类型的信息协议存储在一起。
[0039] S2:信息协议文件标准化。设计标准化的信息协议模板,将导航系统内部各分系统间接口控制文件翻译成便于程序代码理解的解释性文件。
[0040] 具体的,将卫星导航系统空间信号接口控制文件(B1/B2/B3频点)、卫星与运控系统接口控制文件、卫星与应用系统接口控制文件、运控系统内部接口控制文件等通过人工转换为标准化文件,使接口控制文件中代表钟差、轨道、运行管理参数的信息内容和对应的字节长度都能够被程序自动化表达。信息协议模板文件包含协议名称、协议版本号、协议编码类型、协议秘钥、以及完整信息协议内容等要素。
[0041] S3:信息协议组解帧。利用协议处理模块自动装载步骤S2中标准化的信息协议模板,对实际的信息协议数据进行组解帧。
[0042] 协议处理模块是一个通用的协议组帧、解帧模块,可根据协议描述文件自动完成组帧解帧,开发时只需要给业务字段赋值,不再需要关心协议的组织形态、非业务相关字段的取值,新增协议也只需要编写相应的协议配置文件即可,能极大简化开发过程中的协议处理相关工作。协议组帧时支持自动填充非业务数据,如:补码、校验和、帧序号、数据块长度等。
[0043] 具体的,在使用通用组帧/解帧模块,要包含头文件和库文件。其中,包含库文件有两种方法:一是在使用的项目,用代码包含库,由于库名在接口变更后会修改,推荐使用该方法,可以自动适应库名的变更。二是在项目属性对话框中,选择“链接”‑>“命令行”项,在“其他选项(D)”中填入库名称。而包含头文件的方法是根据项目的包含目录,直接取头文件的相对路径。
[0044] S4:协议自适应对比模块。利用协议自适应比对软件将步骤S3中解帧出来的电文信息数据与真实的电文信息数据进行比对。若协议比对结果正确,则进入步骤S5;若协议比对结果不正确,则返回步骤S2,重新翻译后再进入下一步。
[0045] 协议自适应比对软件可将协议数据和解析后的数据输出,将组帧后的二进制数据转为二进制字符串,可对解析前后的数据一目了然,对调试、测试工作都有很大帮助。
[0046] S5:标准协议自动生成模块。利用协议代码自动生成工具将得到的标准文件自动生成代码。代码自动生成工具是指基于前述标准模板开发的代码自动生成工具,能够将解释性文件中的每个信息协议内容及内容对应的字节数自动生成为代码,方便系统级仿真软件集成测试。
[0047] 具体的,在本发明实施例中,系统间接口协议模型将被用于集成到系统级仿真软件中,用于验证信息协议的一致性、正确性和完备性。如对于表征钟差的信息内容,在卫星上行注入、星间传输和下行播放的接口控制文件中所对应的字节长度,数量量级大小,符号单位等应该保持一致。
[0048] S6:生成信息流模型。将步骤S5自动生成的代码导入系统级试验床,生成卫星导航系统级仿真所需的信息流模型。
[0049] 具体的,卫星导航系统级试验床由北斗数字孪生软件系统与信号传播环境模拟硬件系统组成,是北斗试验验证核心系统,具备系统级信息流仿真能力,将上述生成的信息流模型导入系统级试验床后可信息层仿真试验,支撑北斗系统排查信息协议问题。
[0050] 系统级试验床是北斗试验验证中的核心系统,具有系统方案验证与优化、卫星在轨试验与参数优化等能力,能显著降低系统技术风险,提高系统规模应用性能。利用本发明例生成的信息流模型可直接导入系统级试验床,支撑不同系统间接口信息协议问题的排查,为北斗系统稳定运行提供支撑。
[0051] 本发明提供的基于标准化模板的信息协议代码自动生成方法能够显著提升传统协议代码生成方法的效率,相比于传统将协议文本人工直接翻译为代码的方法,本方法简洁直观、高效准确,以10类协议修改3个版本的工作量为例,传统人工直接翻译方法需要160人天,而本文方法仅需要11人天,大大节约了信息协议代码开发成本,并降低了后续代码维护的代价。
[0052] 需要说明的是,本发明提供的基于标准化模板的信息协议代码自动生成方法,主要用于卫星导航系统级仿真软件中,针对的是已发布的接口控制协议,可生成完整的代码集成到系统级仿真软件中。
[0053] 以上所述的实施例仅是对本发明优选方式进行的描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。