一种用于车载以太网矩阵的代码生成方法与流程
未命名
07-12
阅读:58
评论:0

1.本发明涉及车载以太网技术领域,尤其涉及一种用于车载以太网矩阵的代码生成方法。
背景技术:
2.在现有的车载产品设计流程中,主机厂与各车载以太网相关ecu供应商联合制定一套以太网通信矩阵表,但是却没有提供具体的实现代码,因此,需要设计人员编写大量的代码。且由于矩阵表接口定义的不断变化,采用手工编写实现代码易忽略细节、易出错。
3.因此,在编写安卓系统的车载以太网协议应用相关的hal层代码时,需要一套可靠的工具将以太网矩阵表分解成可被代码编组操作的对象,以解决编组可用代码繁琐的问题。
技术实现要素:
4.本发明提供一种用于车载以太网矩阵的代码生成方法,解决了现有的以太网通信矩阵表不一致导致的矩阵表定义接口定义混乱、编组可用代码繁琐技术问题。
5.为解决以上技术问题,本发明提供一种用于车载以太网矩阵的代码生成方法,包括步骤:
6.s1、读取车载以太网矩阵表生成对应的数据库文件并存储;
7.s2、从数据库读取serviceinterfaces表、datatypes表,调用对应数据库文件进行封装得到对应的实体类,并添加到list集合中;
8.s3、根据list集合中服务接口的相关参数创建对应的目标文件夹;
9.s4、根据自定义转换模板和设备ecu,创建相应的hidl文件,并写入对应的所述目标文件夹中。
10.在进一步的实施方案中,所述步骤s1具体为:读取车载以太网矩阵表,采用dbhelper工具将所述车载以太网矩阵表导入到安卓系统数据库中,并根据所述车载以太网矩阵表的表格格式生成对应的数据库文件。
11.在进一步的实施方案中,所述步骤s2包括步骤:
12.s21、从数据库读取serviceinterfaces表中的内容,调用对应的数据库文件,进行封装得到对应的实体类serviceinterfacesbean,并添加到list集合《serviceinterfacesbean》中;
13.s22、从数据库读取datatypes表中的内容,调用对应数据库文件,进行封装得到对应的实体类datatypebean,并添加到list集合《datatypebean》中。
14.在进一步的实施方案中,所述步骤s21包括步骤:
15.a1、从所述数据库中读取serviceinterfaces表中各列的名称,将其作为serviceinterfacesbean的字段;
16.a2、从所述数据库中读取各列名称对应的内容,将其作为serviceinterfacesbean
对应字段的值,并添加到list集合《serviceinterfacesbean》中。
17.在进一步的实施方案中,所述步骤s22包括步骤:
18.b1、从所述数据库中读取datatypes表中各列的名称,将其作为datatypebean的字段;
19.b2、从所述数据库中读取各列名称对应的内容,将其作为datatypebean对应字段的值,并添加到list集合《datatypebean》中。
20.在进一步的实施方案中,所述步骤s3包括步骤:
21.s31、读取list集合《serviceinterfacesbean》中的设备类型,并根据所述设备类型创建第一类文件夹;
22.s32、获取list集合《serviceinterfacesbean》中的监听器listener,并根据所述监听器listener创建第二类文件夹。
23.s33、获取list集合《serviceinterfacesbean》中的服务server,并根据所述服务server创建第三类文件夹。
24.在进一步的实施方案中,所述步骤s4包括步骤:
25.s41、根据自定义的enum模板、结构体struct模板、datatypedef模板分别创建对应的hidl文件,并写入所述第一类文件夹中;
26.s42、根据设备ecu创建对应的hidl文件,并写入所述第二类文件夹中;
27.s43、根据自定义的设备ecu模板创建对应的hidl文件,并写入所述第三类文件夹中。
28.在进一步的实施方案中,还包括步骤:s5、检查所述目标文件夹、hidl文件的对应关系是否与所述车载以太网矩阵表一致,若是则刷新所述目标文件夹所在的系统文件夹,否则返回步骤s1。
29.本实施例通过设置检查生成物(所有目标文件夹、hidl文件)是否与车载以太网矩阵表匹配的步骤,进而在下一次车载以太网矩阵表变化时,能调用此步骤实现自适应刷新。
30.在进一步的实施方案中,所述步骤s41具体为:读取list集合《serviceinterfacesbean》中的目标字段,遍历list集合《datatypebean》判断是否能够匹配到与所述目标字段对应的匹配字段,若是则根据自定义的enum模板或结构体struct模板或datatypedef模板创建对应的hidl文件,并写入所述第一类文件夹中。
31.本发明以获取到任一套车载以太网矩阵表为基础进行数据分析,先进行内容提取,得到对应数据库文件,随后从数据库读取serviceinterfaces表、datatypes表,调用对应数据库文件进行封装得到对应的实体类,以得到list集合,对数据进行规划性的分类;最后根据list集合中服务接口的相关参数创建对应的目标文件夹,以储存对应的hidl文件,数据清晰,与车载以太网矩阵表一一对应;本发明可兼容不同车载以太网矩阵表的代码生成,整个操作过程对开发者友好、效率极高,可大幅度缩短车载以太网协议hal层代码的开发时间,提升代码的鲁棒性,并有效降低人为编码不细心造成的失误概率,进而快速适应敏捷开发过程中的各项要求。
附图说明
32.图1是本发明实施例提供的一种用于车载以太网矩阵的代码生成方法的工作流程
图。
具体实施方式
33.下面结合附图具体阐明本发明的实施方式,实施例的给出仅仅是为了说明目的,并不能理解为对本发明的限定,包括附图仅供参考和说明使用,不构成对本发明专利保护范围的限制,因为在不脱离本发明精神和范围基础上,可以对本发明进行许多改变。
34.本发明实施例提供的一种用于车载以太网矩阵的代码生成方法,如图1所示,在本实施例中,包括步骤s1~s5:
35.s1、读取车载以太网矩阵表生成对应的数据库文件并存储,具体为:
36.读取车载以太网矩阵表,采用dbhelper工具将车载以太网矩阵表导入到安卓系统数据库中,并根据车载以太网矩阵表的表格格式生成对应的数据库文件。
37.其中,车载以太网矩阵表一般为excel文件,该文件中包含若干张数据表,其中一张表名为serviceinterfaces,描述了服务接口的相关参数,包括设备类型、包名、接口名、接口id、字段、参数名等;一张表名为datatypes,描述了数据类型,包括类型名、值名、成员名、描述符、最大/最小值等。
38.dbhelper是封装了一系列操作数据库接口的工具类,例如导入矩阵表文档、访问数据库读写接口等。
39.s2、从数据库读取serviceinterfaces表、datatypes表,调用对应数据库文件进行封装得到对应的实体类,并添加到list集合中,包括步骤s21~s22:
40.s21、从数据库读取serviceinterfaces表中的内容,调用对应的数据库文件,进行封装得到对应的实体类serviceinterfacesbean,并添加到list集合《serviceinterfacesbean》中,包括步骤a1~a2:
41.a1、从数据库中读取serviceinterfaces表中各列的名称,将其作为serviceinterfacesbean的字段;
42.a2、从数据库中读取各列名称对应的内容,将其作为serviceinterfacesbean对应字段的值,并添加到list集合《serviceinterfacesbean》中。
43.s22、从数据库读取datatypes表中的内容,调用对应数据库文件,进行封装得到对应的实体类datatypebean,并添加到list集合《datatypebean》中,包括步骤b1~b2:
44.b1、从数据库中读取datatypes表中各列的名称,将其作为datatypebean的字段;
45.b2、从数据库中读取各列名称对应的内容,将其作为datatypebean对应字段的值,并添加到list集合《datatypebean》中。
46.s3、根据list集合中服务接口的相关参数创建对应的目标文件夹,包括步骤s31~s33:
47.s31、读取list集合《serviceinterfacesbean》中的设备类型,并根据设备类型创建第一类文件夹;
48.在本实施例中,设备类型是指与车载以太网相关的设备,包括但不限于t-box、行车记录仪、仪表。
49.s32、获取list集合《serviceinterfacesbean》中的监听器listener,并根据监听器listener创建第二类文件夹。
50.s33、获取list集合《serviceinterfacesbean》中的服务server,并根据服务server创建第三类文件夹。
51.s4、根据自定义转换模板和设备ecu,创建相应的hidl文件,并写入对应的目标文件夹中,包括步骤s41~s43:
52.s41、根据自定义的enum模板、结构体struct模板、datatypedef模板分别创建对应的hidl文件,并写入第一类文件夹中,具体为:读取list集合《serviceinterfacesbean》中的目标字段(例如datatypename),遍历list集合《datatypebean》判断是否能够匹配到与所述目标字段对应的匹配字段(例如datatypetype),若是则根据自定义的enum模板或结构体struct模板或datatypedef模板创建对应的hidl文件,并写入所述第一类文件夹中。
53.在本实施例中,结构体struct模板创建时需要注意服务名、字段、定义等;datatypedef模板创建时需要根据数值的类型等等;
54.需要注意的是,在所有的设备类型类的hidl文件写入第一类文件夹中之后,添加上闭包,避免出现编译报错。
55.其中,hidl的全称是hal interface definition language(即硬件抽象层接口定义语言),是androidframework与android hal之间的接口。
56.在本实施例中,enum模板、结构体struct模板、datatypedef模板为分别对应车载以太网矩阵表中enum数据结构、struct数据结构、datatypedef数据结构的代码转换模板。
57.s42、根据设备ecu创建对应的hidl文件,并写入第二类文件夹中;
58.其中,在将hidl文件写入第二类文件夹中时,需检查field(字段)/event(事件)/method(方法)这些变量是否跟车载以太网矩阵表的定义一致。
59.s43、根据自定义的设备ecu模板创建对应的hidl文件,并写入第三类文件夹中。
60.在本实施例中,在将hidl文件写入第三类文件夹中时,每个设备的hidl文件要与服务端接口、监听器接口对应。
61.s5、检查目标文件夹、hidl文件的对应关系是否与车载以太网矩阵表一致,若是则刷新目标文件夹所在的系统文件夹,否则返回步骤s1。
62.本发明以获取到任一套车载以太网矩阵表为基础进行数据分析,先进行内容提取,得到对应数据库文件,随后从数据库读取serviceinterfaces表、datatypes表,调用对应数据库文件进行封装得到对应的实体类,以得到list集合,对数据进行规划性的分类;最后根据list集合中服务接口的相关参数创建对应的目标文件夹,以储存对应的hidl文件,数据清晰,与车载以太网矩阵表一一对应;本发明可兼容不同车载以太网矩阵表的代码生成,整个操作过程对开发者友好、效率极高,可大幅度缩短车载以太网协议hal层代码的开发时间,提升代码的鲁棒性,并有效降低人为编码不细心造成的失误概率,进而快速适应敏捷开发过程中的各项要求。
63.上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
技术特征:
1.一种用于车载以太网矩阵的代码生成方法,其特征在于,包括步骤:s1、读取车载以太网矩阵表生成对应的数据库文件并存储;s2、从数据库读取serviceinterfaces表、datatypes表,调用对应数据库文件进行封装得到对应的实体类,并添加到list集合中;s3、根据list集合中服务接口的相关参数创建对应的目标文件夹;s4、根据自定义转换模板和设备ecu,创建相应的hidl文件,并写入对应的所述目标文件夹中。2.如权利要求1所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,所述步骤s1具体为:读取车载以太网矩阵表,采用dbhelper工具将所述车载以太网矩阵表导入到安卓系统数据库中,并根据所述车载以太网矩阵表的表格格式生成对应的数据库文件。3.如权利要求2所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,所述步骤s2包括步骤:s21、从数据库读取serviceinterfaces表中的内容,调用对应的数据库文件,进行封装得到对应的实体类serviceinterfacesbean,并添加到list集合<serviceinterfacesbean>中;s22、从数据库读取datatypes表中的内容,调用对应数据库文件,进行封装得到对应的实体类datatypebean,并添加到list集合<datatypebean>中。4.如权利要求3所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,所述步骤s21包括步骤:a1、从所述数据库中读取serviceinterfaces表中各列的名称,将其作为serviceinterfacesbean的字段;a2、从所述数据库中读取各列名称对应的内容,将其作为serviceinterfacesbean对应字段的值,并添加到list集合<serviceinterfacesbean>中。5.如权利要求4所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,所述步骤s22包括步骤:b1、从所述数据库中读取datatypes表中各列的名称,将其作为datatypebean的字段;b2、从所述数据库中读取各列名称对应的内容,将其作为datatypebean对应字段的值,并添加到list集合<datatypebean>中。6.如权利要求5所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,所述步骤s3包括步骤:s31、读取list集合<serviceinterfacesbean>中的设备类型,并根据所述设备类型创建第一类文件夹;s32、获取list集合<serviceinterfacesbean>中的监听器listener,并根据所述监听器listener创建第二类文件夹。s33、获取list集合<serviceinterfacesbean>中的服务server,并根据所述服务server创建第三类文件夹。7.如权利要求6所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,所述步骤s4包括步骤:s41、根据自定义的enum模板、结构体struct模板、datatypedef模板分别创建对应的
hidl文件,并写入所述第一类文件夹中;s42、根据设备ecu创建对应的hidl文件,并写入所述第二类文件夹中;s43、根据自定义的设备ecu模板创建对应的hidl文件,并写入所述第三类文件夹中。8.如权利要求4所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,还包括步骤:s5、检查所述目标文件夹、hidl文件的对应关系是否与所述车载以太网矩阵表一致,若是则刷新所述目标文件夹所在的系统文件夹,否则返回步骤s1。9.如权利要求7所述的一种用于车载以太网矩阵的代码生成方法,其特征在于,所述步骤s41具体为:读取list集合<serviceinterfacesbean>中的目标字段,遍历list集合<datatypebean>判断是否能够匹配到与所述目标字段对应的匹配字段,若是则根据自定义的enum模板或结构体struct模板或datatypedef模板创建对应的hidl文件,并写入所述第一类文件夹中。
技术总结
本发明涉及车载以太网技术领域,提供一种用于车载以太网矩阵的代码生成方法,以获取到任一套车载以太网矩阵表为基础进行数据分析,先进行内容提取,得到对应数据库文件,随后对数据库文件中内容进行封装得到对应的实体类,以得到List集合,对数据进行规划性的分类;最后根据List集合中服务接口的相关参数创建对应的目标文件夹,以储存对应的HIDL文件,数据清晰,与车载以太网矩阵表一一对应;可兼容不同车载以太网矩阵表的代码生成,整个操作过程对开发者友好、效率极高,可大幅度缩短车载以太网协议HAL层代码的开发时间,提升代码的鲁棒性,并有效降低人为编码不细心造成的失误概率,进而快速适应敏捷开发过程中的各项要求。进而快速适应敏捷开发过程中的各项要求。进而快速适应敏捷开发过程中的各项要求。
技术研发人员:陈敏 胡利杰
受保护的技术使用者:惠州华阳通用电子有限公司
技术研发日:2022.12.23
技术公布日:2023/7/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:具有燃料电池的推进系统的安全管理的制作方法 下一篇:包括振动设备的设备的制作方法