本发明涉及车载通信,具体涉及一种生成idl文件的方法、装置、计算机设备、存储介质及程序产品。
背景技术:
1、随着智能化技术的快速发展,汽车行业正经历着一场革命性的变革。如今的分布式系统变得越来越复杂且庞大,对网络通信基数要求在功能和性能层面越来越高。数据分发服务(data distribution service,dds)作为一项先进的数据传输解决方案,在汽车行业中扮演着重要的角色。dds是由omg联盟发布的面向服务的中间件协议和应用程序接口标准,采用以数据为中心的发布订阅模型,支持多种qos策略,具备良好的可扩展性和较好的安全性。dds中,可以被交换的数据是结构体,该结构描述了一段可以通过dds协议发送和接收的数据,换言之,即主题topic。dds能够在用不同语言创建的进程之间交换数据,例如c++发送一个主题,它可以被java进行接收,基于该原因,dds将应用程序从操作系统、网络传输和低级数据格式的详细信息中抽象出来,以idl(interface definition language,接口定义语言)模式提供支持多种编程语言api,从而使应用在不同的操作系统、编程语言和处理器体系架构之间交换以主题为单位的信息。目前,在定义idl文件时,开发人员需要根据描述dds业务场景的dds通信矩阵自己定义idl的语法结构和数据结构,然后将idl转换为多种编程语言的可执行代码,这种方式导致idl定义过程效率低、容易出错。
技术实现思路
1、有鉴于此,本发明提供了一种生成idl文件的方法、装置、计算机设备、存储介质及程序产品,以解决idl定义过程效率低、容易出错的问题。
2、第一方面,本发明提供了一种生成idl文件的方法,所述方法包括:获取dds通信矩阵文件,所述dds通信矩阵文件用于描述车载通信业务的数据结构和传输规则;利用idl转换工具对dds通信矩阵文件进行编译,以将所述dds通信矩阵文件中的数据类型和传输规则按照预设映射规则映射为idl格式语言的数据类型和语法结构;将映射后的内容导出为idl文件。
3、在一种可选地实施方式中,所述利用idl转换工具对dds通信矩阵文件进行编译,包括:提取dds通信矩阵文件中的数据并解析数据为二维数据集合;根据数据品类将所述二维数据集合转换为有序对象集合,所述数据品类包括dds中的服务品类、主题品类和信号品类,所述有序对象集合用于描述dds中的服务数据和主题数据的对应关系、主题数据和信号数据的对应关系;遍历所述有序对象集合,将所述有序对象集合中的服务数据、主题数据和信号数据映射为idl格式语言的数据类型和语法结构。
4、在一种可选地实施方式中,所述遍历所述有序对象集合,将所述有序对象集合中的服务数据、主题数据和信号数据映射为idl格式语言的数据结构和语法结构,包括:通过所述预设映射规则将所述有序对象集合中信号数据的原数据类型转换为idl格式数据类型;将所述有序对象集合中服务数据、主题数据和信号数据的内容填充到根据所述预设映射规则生成的语句框中,得到以idl格式语法描述的传输规则。
5、在一种可选地实施方式中,在所述利用idl转换工具对dds通信矩阵文件进行编译之前,所述方法还包括:通过所述idl转换工具对所述dds通信矩阵文件进行格式校验和内容校验;当校验不通过时,输出修改提示,以提示用户修改所述dds通信矩阵文件;当校验通过时,执行所述利用idl转换工具对dds通信矩阵文件进行编译的步骤。
6、在一种可选地实施方式中,所述将映射后的内容导出为idl文件,包括:接收路径选择指令,并响应于所述路径选择指令确定文件导出路径;基于映射后的内容在所述文件导出路径中创建idl文件。
7、在一种可选地实施方式中,所述通过所述预设映射规则将所述有序对象集合中信号的原数据类型转换为idl格式数据类型,包括:当所述有序对象集合中信号的原数据类型为枚举类型或结构体类型时,转换得到所述idl格式数据类型为枚举类型或结构体类型。
8、第二方面,本发明提供了一种生成idl文件的装置,所述装置包括:通信矩阵获取模块,用于获取dds通信矩阵文件,所述dds通信矩阵文件用于描述车载通信业务的数据结构和传输规则;编译模块,用于利用idl转换工具对dds通信矩阵文件进行编译,以将所述dds通信矩阵文件中的数据类型和传输规则按照预设映射规则映射为idl格式语言的数据类型和语法结构;导出模块,用于将映射后的内容导出为idl文件。
9、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的方法。
10、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。
11、第五方面,本发明提供了一种计算机程序产品,包括计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的方法。
12、本发明提供的技术方案,具有如下优点:
13、本发明实施例经过梳理的,得到较为完善的预设映射规则,将预设映射规则置于idl转换工具内部,通过idl转换工具可以对获取的dds通信矩阵文件自行匹配,从而对dds通信矩阵文件进行编译,将dds通信矩阵文件中的数据类型和传输规则按照预设映射规则映射为idl格式语言的数据类型和语法结构;将映射后的内容导出为idl文件。将dds通信矩阵定义为idl文件这一dds设计开发步骤由手动定义转变为自动映射,显著提高了idl文件的生成效率。并且,相比现有技术依赖人工配置的方法,避免没有覆盖到全部映射规则的问题,还能避免因为人工不完善的经验推敲出错误映射规则的问题。
1.一种生成idl文件的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述利用idl转换工具对dds通信矩阵文件进行编译,包括:
3.根据权利要求2所述的方法,其特征在于,所述遍历所述有序对象集合,将所述有序对象集合中的服务数据、主题数据和信号数据映射为idl格式语言的数据结构和语法结构,包括:
4.根据权利要求1所述的方法,其特征在于,在所述利用idl转换工具对dds通信矩阵文件进行编译之前,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述将映射后的内容导出为idl文件,包括:
6.根据权利要求3所述的方法,其特征在于,所述通过所述预设映射规则将所述有序对象集合中信号的原数据类型转换为idl格式数据类型,包括:
7.一种生成idl文件的装置,其特征在于,所述装置包括:
8.一种计算机设备,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的方法。
