# dbc_Parse **Repository Path**: scholety/dbc_-parse ## Basic Information - **Project Name**: dbc_Parse - **Description**: 根据dbc文件生成CAN报文(信号)解析接口。 使用开源库如python的cantools等生成的CAN报文解析文件,总有不满足工程需求的地方,索性写个自己的解析工具。 欢迎交流! 邮箱:1512915174@qq.com 微信:JasonHChina - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-12-04 - **Last Updated**: 2024-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一、脚本使用说明 1. 将dbc文件拷贝至工程目录下 2. 修改dbc文件: 1)删除Network Nodes中不需要的节点 2)确认节点的Tx Message中的属性“Transmitter”值是正确的节点名 3)由于脚本暂不支持信号复用(multiplexor),如果有该类型信号,需先删除该信号或信号所属报文。建议包含该类型信号的报文的解析函数手动添加。 3. 修改脚本文件 dbcParse_ImportDbc.py: 1)dbc_file_name:值改为dbc文件名,需要带“.dbc”后缀。示例:dbc_file_name= 'example.dbc' 2)dbc_ecu_name:值改为需要导入的ECU节点名。示例:dbc_ecu_name = 'VMU' 4. 运行脚本后,在文件夹 src_generate 下会生成6个文件: 1)xxx_MessagePack.c 2)xxx_MessagePack.h 3)xxx_MessageUnpack.c 4)xxx_MessageUnpack.h 5)xxx_SignalsPbconfig.c 6)xxx_SignalsPbconfig.h 其中 xxx 为dbc文件名(不带.dbc后缀) # 二、注意事项 1. 默认CAN报文中的信号长度不会超过8字节,超过此限制暂不支持 2. 代码分两部分: 1)src_static中的是静态代码,不需要改动; 2)src_generate为生成代码,根据dbc文件动态生成。 # 三、文件使用说明 1. 文件夹 src_static 中的文件为静态代码,不应修改 2. 文件夹 src_generate 中的文件是根据dbc文件生成的 3. 将文件夹 src_static, src_generate 中的文件放至目标工程合适的目录下 4. 在适当的位置调用 xxx_MessageUnpack.c, xxx_MessagePack.c 中的接口函数,解包/打包CAN报文 5. 在 xxx_SignalsPbconfig.c 中已默认生成CAN报文的全局结构体(包含信号,信号类型为其物理值类型),可视需求使用或注释/删除。 # 四、命名规则说明 ## 文件名 1. 静态代码文件名:以 dbcParse_ 开头: 2. 生成代码文件名:以dbc名(不带.dbc后缀)开头 ## 结构体名 1. 信号的配置结构体名:dbc名 + 报文名 + 信号名 + Pbcfg 2. 报文结构体名:dbc名 + 报文名(大写) + STRUCT 3. 报文结构体实例化名:dbc名 + 报文名 ## 函数名 1. 生成函数名:dbc名 + 报文名 + 后缀(Unpack/Pack) # 五、测试记录 1. 测试脚本生成文件功能 2. 测试CAN报文解析接口、打包接口功能 --data:2024.06.11 # 六、待改进说明 1. 暂不支持signal group接口生成 2. 暂不支持信号复用(multiplexor) 3. 暂不支持信号comment内容自动填入生成文件注释行 4. 补充函数、结构体注释 5. 添加一些交互操作(如输入dbc名,提示是否自动生成CAN报文全局结构体等)