一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于DDS的车载服务代码生成编译方法及可读存储介质与流程

2022-06-01 13:02:40 来源:中国专利 TAG:

基于dds的车载服务代码生成编译方法及可读存储介质
技术领域
1.本发明涉及汽车软件开发技术领域,具体涉及基于dds的车载服务代码生成编译方法及可读存储介质。


背景技术:

[0002]“软件定义汽车”是未来汽车的方向。随着汽车智能化、网联化的深入推进,汽车自动驾驶、车载娱乐、远程诊断升级等功能的复杂程度也将越来越高,如果仍采用传统的基于信号的架构来实现,必将使整个系统变得异常复杂且不具备灵活性和扩展性。而面向服务的架构能够支持复杂的应用系统,可以在处理分布和计算资源分配方面提供最大的灵活性和可扩展性,并且可以更好的支持软件的分布式部署与更新迭代,能够为未来的车辆软件服务提供良好的解决方案。
[0003]
面向服务的架构的实现需要基于服务通信中间件。数据分发服务(data distribution service,dds)是对象管理组织(object management group,omg)发布的新一代分布式实时通信中间件,采用发布/订阅体系架构,强调以数据为中心,提供丰富的服务质量策略,以保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。dds能为上层的应用软件提供开发和运行所需的环境,方便开发者快速、高效、灵活地开发和集成自动驾驶软件。
[0004]
但是,要开发基于dds通信中间件的车载功能服务应用,需要熟悉并掌握dds的基础原理知识以及相关底层代码接口,这给车载功能服务开发人员带来了很大的挑战。为此,公开号为cn105205183b的中国专利就公开了《一种基于xml的dds分布式系统自动构建方法》,利用xml系统方案文件描述系统的参与者信息、订购发布信息、对象模型结构信息等,再通过自动代码生成及编译生成dds的运行插件,构建dds分布式系统。
[0005]
但是,上述现有方案在开发功能服务应用时,需要在dds分布式系统的每个节点上都集成dds运行插件,这增加了系统的复杂度。同时,现有方案在整个车载服务的开发生命周期中,需要开发人员较多的参与,增加了基于dds的服务开发门槛,降低了服务代码的可维护性、可靠性及可重用性。因此,如何设计一种能够降低系统复杂度和基于dds服务开发门槛的车载服务代码生成及编译方法是亟需解决的技术问题。


技术实现要素:

[0006]
针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种基于dds的车载服务代码生成编译方法,以能够降低系统的复杂度和基于dds的服务开发门槛,从而能够提高服务的开发效率,缩短服务的开发周期,增加服务代码的可维护性、可靠性及可重用性。
[0007]
为了解决上述技术问题,本发明采用了如下的技术方案:
[0008]
基于dds的车载服务代码生成编译方法,包括以下步骤:
[0009]
s1:定义车载功能服务内容;
[0010]
s2:定义代码生成的模板文件;
[0011]
s3:读取配置文件,然后通过车载功能服务内容渲染代码生成的模板文件,生成对应的代码文件,使得能够基于代码文件编写对应的功能服务业务逻辑代码;
[0012]
s4:获取功能服务业务逻辑代码并进行自动编译生成对应的可执行文件,然后将可执行文件部署到有数据分发服务环境的运行服务器上运行服务。
[0013]
优选的,步骤s1中,通过电子表格软件定义车载功能服务内容。
[0014]
优选的,步骤s1中,车载功能服务内容包括但不限于服务名称、方法名称、方法类型、方法输入参数类型、方法输出参数类型、方法需求主题和方法回复主题。
[0015]
优选的,步骤s2中,通过可扩展标记语言定义代码生成的模板文件。
[0016]
优选的,步骤s2中,模板文件的类型包括但不限于接口描述语言模板文件、通用配置文件模板文件、数据分发服务核心代码模板文件和适配层代码模板文件。
[0017]
优选的,步骤s2中,模板文件的内容包括但不限于文件名、文件路径和文件内容。
[0018]
优选的,步骤s3中,通过自动代码生成引擎生成代码文件,具体包括以下步骤:
[0019]
s301:解析服务内容得到对应的编程语言对象数据;
[0020]
s302:读取代码生成的模板文件,获取对应的文件名、文件路径和文件内容;
[0021]
s303:通过自动代码生成引擎使用编程语言对象数据渲染模板文件的文件内容;
[0022]
s304:将渲染后的文件内容输出到文件中,生成对应的代码文件。
[0023]
优选的,步骤s3中,将生成的代码文件上传至代码托管平台,使得能够从代码托管平台下载对应的代码文件,以实现基于代码文件编写对应的功能服务业务逻辑代码。
[0024]
优选的,步骤s4中,通过自动编译引擎将获取的功能服务业务逻辑代码上传至编译服务器进行自动编译并生成对应的可执行文件。
[0025]
本发明还公开了一种可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现本发明的基于dds的车载服务代码生成编译方法的步骤。
[0026]
本发明的车载服务代码生成及编译方法与现有技术相比,具有如下有益效果:
[0027]
本发明无需在每个节点上集成dds运行插件,能够降低系统的复杂度;同时,本发明通过车载功能服务内容渲染代码生成的模板文件生成对应的代码文件,使得开发人员只需要定义车载服务内容并基于代码文件编写对应的功能服务业务逻辑代码即可,能够降低开发人员基于dds的服务开发门槛,从而能够提高服务的开发效率,缩短服务的开发周期。其次,本发明获取功能服务业务逻辑代码并进行自动编译生成对应的可执行文件,使得开发人员无需另外搭建编译环境便可直接得到可执行文件,减少了由于编译环境不同导致的编译错误,使得基于dds的服务开发编译更加简单高效,从而能够增加服务代码的可维护性、可靠性及可重用性。
附图说明
[0028]
为了使发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
[0029]
图1为基于dds的车载服务代码生成编译方法的逻辑框图。
具体实施方式
[0030]
下面通过具体实施方式进一步详细的说明:
[0031]
实施例一:
[0032]
本实施例中公开了一种基于dds的车载服务代码生成编译方法。
[0033]
如图1所示,基于dds的车载服务代码生成编译方法,包括以下步骤:
[0034]
s1:定义车载功能服务内容;
[0035]
s2:定义代码生成的模板文件;
[0036]
s3:读取配置文件,然后通过车载功能服务内容渲染代码生成的模板文件,生成对应的代码文件,使得能够基于代码文件编写对应的功能服务业务逻辑代码;
[0037]
s4:获取功能服务业务逻辑代码并进行自动编译生成对应的可执行文件,然后将可执行文件部署到有数据分发服务(dds)环境的运行服务器上运行服务。本实施例中,通过自动编译引擎将获取的功能服务业务逻辑代码上传至编译服务器进行自动编译并生成对应的可执行文件。
[0038]
需要说明的是,本发明中基于dds的车载服务代码生成编译方法可通过程序编程的方式生对应的成软件代码或软件服务,进而能够在服务器和计算机上运行和实施。
[0039]
本发明无需在每个节点上集成dds运行插件,能够降低系统的复杂度;同时,本发明通过车载功能服务内容渲染代码生成的模板文件生成对应的代码文件,使得开发人员只需要定义车载服务内容并基于代码文件编写对应的功能服务业务逻辑代码即可,能够降低开发人员基于dds的服务开发门槛,从而能够提高服务的开发效率,缩短服务的开发周期。其次,本发明获取功能服务业务逻辑代码并进行自动编译生成对应的可执行文件,使得开发人员无需另外搭建编译环境便可直接得到可执行文件,减少了由于编译环境不同导致的编译错误,使得基于dds的服务开发编译更加简单高效,从而能够增加服务代码的可维护性、可靠性及可重用性。
[0040]
具体实施过程中,通过电子表格软件(本实施例中,电子表格软件选用excel)定义车载功能服务内容。车载功能服务内容包括但不限于服务名称、方法名称、方法类型(远程过程调用/发布订阅)、方法输入参数类型、方法输出参数类型、方法需求(request)主题和方法回复(reply)主题。
[0041]
本实施例中,excel定义车载功能服务内容的格式示例如下所示:
[0042][0043]
本发明中,开发人员只需要通过excel定义车载服务内容并编写对应的功能服务业务逻辑代码,即可实现基于dds的服务开发,能够降低开发人员基于dds的服务开发门槛,从而能够提高服务的开发效率,缩短服务的开发周期。
[0044]
具体实施过程中,通过可扩展标记语言(本实施例中,可扩展标记语言选用xml)定义代码生成的模板文件。
[0045]
本实施例中,模板文件的内容包括但不限于文件名(filename)、文件路径(path)和文件内容(content)。其中,文件名表示生成的代码文件的名称,文件路径表示生成的代码文件存放在服务器的哪个目录下面,文件内容表示生成的代码文件中的具体内容。
[0046]
本实施例中,模板文件的类型包括但不限于接口描述语言(idl)模板文件、通用配置文件(本实施例中,通用配置文件选用arxml)模板文件、数据分发服务(dds)核心代码模板文件和适配层代码模板文件。
[0047]
其中,数据分发服务(dds)核心代码模板文件如下所示:
[0048][0049][0050]
步骤s3中,通过自动代码生成引擎生成代码文件,具体包括以下步骤:
[0051]
s301:解析服务内容得到对应的编程语言(java)对象数据;
[0052]
s302:读取代码生成的模板文件,获取对应的文件名、文件路径和文件内容;
[0053]
s303:通过自动代码生成引擎使用编程语言(java)对象数据渲染模板文件的文件
内容;
[0054]
s304:将渲染后的文件内容输出到文件中,生成对应的代码文件。
[0055]
本实施例中,采用freemarker作为自动代码生成引擎。生成的代码文件如下所示:
[0056][0057][0058]
具体实施过程中,将生成的代码文件上传至代码托管平台(本实施例中,代码托管平台选用gitlab仓库,通过jgit工具包将代码文件上传至gitlab仓库),使得(开发人员)能够从代码托管平台下载对应的代码文件,以实现基于代码文件编写对应的功能服务业务逻辑代码。
[0059]
本发明通过上述模板文件和代码文件生成步骤,能够有效的实现通过车载功能服务内容渲染代码生成的模板文件生成对应的代码文件,使得开发人员只需要定义车载服务内容并基于代码文件编写对应的功能服务业务逻辑代码即可,能够降低开发人员基于dds的服务开发门槛,从而能够提高服务的开发效率,缩短服务的开发周期。
[0060]
实施例二:
[0061]
本实施例中公开了一种可读存储介质。
[0062]
一种可读存储介质,其上存储有计算机管理类程序,所述计算机管理类程序被处理器执行时实现本发明的基于dds的车载服务代码生成编译方法的步骤。可读存储介质可以是u盘或计算机等具有可读存储功能的设备。
[0063]
最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献