[发明专利]一种基于DBC的协议层代码生成方法及生成工具在审
| 申请号: | 202310050107.6 | 申请日: | 2023-02-01 |
| 公开(公告)号: | CN116301881A | 公开(公告)日: | 2023-06-23 |
| 发明(设计)人: | 李兆平 | 申请(专利权)人: | 浙江万里扬新能源驱动有限公司杭州分公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/35 |
| 代理公司: | 北京国翰知识产权代理事务所(普通合伙) 11696 | 代理人: | 李笑磊 |
| 地址: | 310000 浙江省杭州*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 dbc 协议 代码 生成 方法 工具 | ||
1.一种基于DBC的协议层代码生成方法,其特征在于包括:
获取DBC文件并遍历DBC文件以获取DBC文件信息;
基于所述DBC文件及DBC文件信息,依据预先输入的目标节点选择项和大小端选择项,生成协议层代码文件。
2.根据权利要求1所述的基于DBC的协议层代码生成方法,其特征在于:
所述DBC文件信息包括:DBC文件里定义的帧的帧个数、帧的帧信息、帧的所有信号信息、基于信号名的信号描述的信息。
3.根据权利要求1或2所述的基于DBC的协议层代码生成方法,其特征在于:
所述协议层代码文件包括后缀名为c的代码文件和后缀名为h的代码文件。
4.根据权利要求1或2所述的基于DBC的协议层代码生成方法,其特征在于具体包括:
(1)获取DBC文件;
(2)遍历所述DBC文件,获取所述DBC文件里定义的帧的帧个数,并根据帧个数定义msg数组,用以保存信息;
(3)获取所述帧的帧信息,并将所述帧信息存入msg数组中;
(4)获取所述帧的所有信号信息,并将所述所有信号信息存入信号相对的msg数组中;
(5)将步骤(4)中获取的所述帧的信号个数存入msg数组中;
(6)遍历所述DBC文件,依据信号名获取信号描述的信息,并存入信号相对的msg数组中;
(7)依据信号的起始位置对msg数组进行排序;
(8)遍历msg数组,筛选出发送节点为目标节点的帧;
(9)将步骤(8)筛选出的帧以及该帧的所有信号信息存入对应的used信号数组;
(10)遍历msg数组,筛选出发送节点不是目标节点但该帧任一信号接收节点有包含目标节点的帧;
(11)将步骤(10)筛选出的帧以及帧内接收节点包含目标节点的信号信息存入相应的used信号数组;
(12)对used信号数组中的跨字节的信号进行分割,对信号间存在间隔的用reserved进行填充,生成连续信号数组;
(13)根据当前帧的msg数组,生成接收、发送的函数,将其分别存入canApp.h缓存和canApp.c缓存中;
(14)根据used信号数组,对接收、发送函数填充代码;信号通过位域结构体从buffer中解析出来,跨字节的信号还要通过used信号数组的信息进行移位等操作;
(15)将步骤(14)生成的代码存入canApp.c缓存中;
(16)如果最后一个信号的结束位置小于帧的长度,对used信号数组用reserved进行填充,并更新连续信号数组;
(17)根据输入的大小端信息,对连续信号数组进行转换;
(18)依次对单个字节内的信号进行排序,在步骤(12)中已经对跨字节信号进行分割和信号间隔的填充,所以单字节内信号是连续的;
(19)对used信号数组按ID名生成位域的结构体和联合体,并将结构体存放到位域结构体缓存数组中,将联合体存放到联合体缓存数组中;
(20)对步骤(2)里创建的所有msg数组执行完(8)到(19)的步骤;
(21)将结构体缓存、联合体缓存以及canApp.h缓存写入到can_app.h文件中,将canApp.c缓存写入can_app.c文件中;
(22)根据步骤(2)里创建的msg数组,生成CAN收发buffer以及收发接口函数,并存入到asi_can.c的缓存和asi_can.h的缓存;
(23)根据步骤(2)里创建的msg数组,在收发接口函数中添加步骤(13)中定义的函数调用,参数为(22)中定义的CAN收发buffer,并写入asi_can.c的缓存中;
(24)将asi_can.c缓存写入asi_can.c文件中,将asi_can.h缓存写入asi_can.h文件中。
5.根据权利要求4所述的基于DBC的协议层代码生成方法,其特征在于:
步骤(3)的所述帧信息包括:帧ID、帧名、帧长度(DLC)和该帧的发送节点;和/或
步骤(4)的所述所有信号信息包括:信号名、起始位置、信号长度、符号位、分辨率、偏移量、下限值、上限值、单位、接收节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江万里扬新能源驱动有限公司杭州分公司,未经浙江万里扬新能源驱动有限公司杭州分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310050107.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:量子保密通信方法及系统
- 下一篇:一种抗冲刷磁性产品涂料及其制备方法





