DBC文件解析

news2024/11/26 5:45:20

一.candb++

二.DBC文件解析 

NS_ : 

 

NS_DESC_:用于描述网络信号的描述信息。

CM_:用于定义信号的描述信息。

BA_DEF_:定义信号的属性。

BA_:为信号属性定义值。

VAL_:为信号的枚举值定义标签。

CAT_DEF_:定义信号类别的属性。

CAT_:为信号类别定义值。

FILTER:用于定义消息过滤器,以确定哪些消息将被接收。

BA_DEF_DEF_:为属性定义默认值。

EV_DATA_:定义事件数据。

ENVVAR_DATA_:定义环境变量数据。

SGTYPE_:定义信号类型。

SGTYPE_VAL_:为信号类型定义值。

BA_DEF_SGTYPE_:定义信号类型的属性。

BA_SGTYPE_:为信号类型属性定义值。

SIG_TYPE_REF_:引用信号类型。

VAL_TABLE_:为信号值表定义值。

SIG_GROUP_:定义信号分组。

SIG_VALTYPE_:定义信号值类型。

SIGTYPE_VALTYPE_:定义信号类型与值类型的关联。

BO_TX_BU_:定义消息与发送节点之间的关联。

BA_DEF_REL_:定义关联属性。

BA_REL_:为关联属性定义值。

BA_DEF_DEF_REL_:定义关联属性的默认值。

BU_SG_REL_:定义信号与发送节点之间的关联。

BU_EV_REL_:定义事件与发送节点之间的关联。

BU_BO_REL_:定义消息与发送节点之间的关联。

SG_MUL_VAL_:定义信号的多个值。


波特率定义:

格式如下:

BS_:[baudrate:BTR1,BTR2];


网络节点的定义

格式如下:

BU_:Nodename1 Nodename2 Nodename3 ……


报文帧的定义:

格式如下:

BO_  MessageId(10进制数表示)  MessageName:  MessageSize  Transmitter

(1)BO_为关键字,表示报文;

(2)MessageId为定义的报文ID,是以10进制数表示的;如例子中的645,代表报文ID为0x285;

(3)MessageName表示该报文的名字,命名规则和C语言变量相同;

(4)MessageSize表示该报文数据域字节数,为无符号整型数据;

(5)Transmitter表示发送该报文的网络节点;如果该报文没有指定发送节点,则该值需设置为” Vector__XXX”。


信号的定义:

格式如下:

SG_  SignalName : StartBit|SignalSize@ByteOrder ValueType (Factor,Offset) [Min|Max] Unit Receiver

        (1)SG_为关键字,表示信号;

        (2)SignalName、 StartBit、 SignalSize:分别表示该信号的名字、起始位、信号长度;

        (3)ByteOrder:表示信号的字节顺序:0代表Motorola格式,1代表Inter格式;

        (4) ValueType :表示该信号的数值类型:+表示无符号数,-表示有符号数;

        (5)Factor表示因子,Offset表示偏移量;这两个值于该信号的原始值与物理值之间的转换。

        转换如下:物理值=原始值*因子+偏移量;

        (6)Min|Max表示该信号的最小值和最大值,即指定了该信号值的范围;这两个值为double类型;

        (7)Unit表示该信号的单位,为字符串类型;

        (8)Receiver表示该信号的接收节点;若该信号没有指定的接收节点,则必须设置为” Vector__XXX”。


注解部分:

格式如下:

CM_  Object  MessageId/NodeName  “Comment”

(1)CM_为关键字,表示注解信息;

(2)Object表示进行注解的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”;

(3)MessageId/NodeName 表示进行注解的对象,若前面的对象类型是信号或者报文,则这里的值应为报文的ID(10进制数表示);若前面的对象类型为节点,则这里的值应为节点的名字;

(4)Comment表示进行注解的文本信息;


属性定义部分:

格式如下:

BA_DEF_  "属性名称" 数据类型 ;

BA_DEF_  "SignalType" ENUM "Unsigned", "Signed" ;
BA_DEF_DEF_  "SignalType" "Unsigned" ;

BA_DEF_DEF_  AttributeName  DefaultValue;

(1) BA_DEF_为关键字,表示属性定义;

 (2) Object表示属性定义的对象类型,可以是节点“BU_”、报文“BO_”、消息”SG_”、网络节点” ”(用空格表示)等;

(3)AttributeName表示进行定义的属性名字;

(4)ValueType表示属性值的类型,可以是整型、字符串、浮点型、枚举类型等;

(5)Min/Max表示属性值的上下最值,即指定了取值范围(字符串类型没有此项)。

(6)BA_DEF_DEF_为关键字,表示定义属性的初始值;

 (7)DefaultValue表示该属性的初始值。

属性的默认值有助于确保在未提供属性值的情况下,系统仍然能够正常工作,并且可以减少配置文件的冗余。

BA_DEF_ 用于定义属性的结构和类型,而 BA_DEF_DEF_ 用于为已定义的属性提供默认值。这两者一起用于描述和配置CAN网络中的节点、消息、信号等,以便更好地理解和解释通信数据,同时确保系统在未提供显式属性值的情况下能够正常工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SoftwareTest2 - 软件测试相关概念

软件测试答疑篇 目标一 . 什么是需求二 . 测试用例三 . 什么是 BUG四 . 开发模型4.1 软件的生命周期需求分析计划设计编码测试运行维护 4.2 软件测试的生命周期需求分析测试计划测试设计与开发执行测试测试评估 4.3 常见模型瀑布模型螺旋模型增量模型、迭代模型敏捷模型scrum模…

GO语言篇之embed

GO语言篇之embed 文章目录 GO语言篇之embed前言目录结构文件转[]byte文件转string多文件转embed.FS目录转embed.FS文件和目录组合的方式转embed.FS 前言 embed是Go语言提供的一种机制,可使静态文件或文件夹嵌入Go语言程序中,使我们Go语言的可执行文件包…

kibana报错内存溢出问题解决

一、背景: kibana内存溢出,进程被kill掉,导致前端页面访问不到。 报错内容 二、报错原因: 发现是前端 js 报的内存 oom 异常,通过网上资料发现node.js 的默认内存大小为1.4G Node 中通过 JavaScript 使用内存时只能…

PCL入门(六):深度图提取边界

目录 1. 深度图介绍2. 深度图生成3. 边界提取 1. 深度图介绍 参考《02-深度图》 深度图像(Depth Images)也被称为距离影像(Range Image),是指将从图像采集器到场景中各点的距离值作为像素值的图像,它直接…

CentOS7上从0开始搭建Zookeeper集群

CentOS7上搭建Zookeeper集群 环境准备安装jdk安装zookeeper下载zookeeper解压zookeeper修改zookeeper配置文件 搭建zookeeper集群修改zoo.cfg文件添加myid文件启动zookeeper集群 环境准备 首先你需要准备三台zookeeper(待会会讲zookeeper的安装流程)&am…

运算放大器典型应用(二)

文章目录 十、采样保持电路十一、有源滤波电路二阶有源低通滤波器问题二阶截至频率如何算 十、采样保持电路 十一、有源滤波电路 给单片机供电R一般大于4.1Ω小于10Ω,太大会产生功耗 二阶有源低通滤波器问题 二阶截至频率如何算 通频带比较窄可以用这种&#xff0…

IDEA启动时选择项目

IDEA默认情况下,启动时会选择上一次打开的项目继续。如果我们希望每次启动时都需要手动选择项目,可以按照下列顺序修改: 【File】-【Settings】-【Apperance&Behavior】-【System Settings】-【Startup/Shutdown】 取消选中Reopen last…

硬件总线基础07:PCIe总线基础-事务层(2)

说在开头:关于哲学 在《东邪西毒》电影里欧阳锋说:“看来你的年纪也有四十出头了,这四十多年来,总有些事你是不愿再提,或是有些人不想再见,有的人曾经对不起你,也许你想过杀了他们,…

PyCharm Clion IDEA专业版安装图文教程

1.下载专业版 PyCharm Download PyCharm: Python IDE for Professional Developers by JetBrains 2.以2023.1.4为例 3.next 4.next 5.next 6.Install 7.Finish 8.Activate 链接:https://pan.baidu.com/s/1N9n8wGgkvjfOX8oDrfX2Hw 提取码:yyds

知识图谱实战应用28-基于py2neo的ICD-11疾病分类的知识图谱的查询与问答实战应用

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用28-基于py2neo的ICD-11疾病分类的知识图谱的查询与问答实战应用。使用基于py2neo的ICD-11疾病分类知识图谱,我们能够像探索一座生物医学宇宙般,穿梭在各种疾病之间。这个神奇的图谱可以帮助我们揭示各种疾病之间复杂而…

1014. 最佳观光组合

1014. 最佳观光组合 原题链接:完成情况:解题思路:参考代码: 原题链接: 1014. 最佳观光组合 https://editor.csdn.net/md/?not_checkout1&spm1000.2115.3001.5352 完成情况: 解题思路: …

如何把视频格式转换成mp4?支持的格式种类非常多。

如何把视频格式转换成mp4?随着计算机技术的迅猛发展,我们现在有着各种各样的视频格式可供选择,平时我们都知道的mp4、flv、mov、mkv、avi、wmv等,都是视频格式的种类。其中,MP4是一种具有极佳兼容性的视频格式&#xf…

Golang goroutine 进程、线程、并发、并行

goroutine 看一个需求 需求:要求统计1-200000000000的数字中,哪些是素数? 分析思路: 1)传统的方法,就是使用一个循环,循环的判断各个数是不是素数(一个任务就分配给一个cpu去做,这样很不划算…

光谱通用款积分球

随着惯性约束聚变(ICF)物理理论的不断发展以及精密物理实验要求的不断提高,激光驱动器的光束路数急剧增多,光路长度和元器件数目成倍增长。模块化是新一代激光驱动器的发展趋势。对于高功率激光多参数测量系统,模块化设…

解决2K/4K高分屏下Vmware等虚拟机下Kail Linux界面显示问题

问题现象 在我们日常使用VirtualBox、Vmware workstation、Hyper-V等虚拟机安装使用Kali系统,在2K/4K高分辨率电脑下Kali系统界面显示太小,包括各种软件及命令终端字体均无法很直观的看出,影响我们的正常测试及使用。 常规处理思路 很多人…

Vue3通过 directive 实现 el-dropdown下拉菜单项最小宽度等于内容宽度

文章目录 1. 初始效果与最终效果2. 分析3. 解决思路:directives4. 代码实现小结 1. 初始效果与最终效果 原始效果最终效果 2. 分析 el-dropdown API 并不提供配置项让我们实现下拉菜单项最小宽度等于内容宽度,但我们能发现它提供了 popper-class 用于自…

Spring学习|使用JavaConfig实现bean配置、代理模式:静态代理模式、动态代理模式(通俗易懂)

使用JavaConfig实现bean配置 正常我们在spring容器中注册一个Bean,我们需要去bean.xml中去配置,但是我们也可以用JavaConfig类,来去充当bean.xml的作用 首先,我们创建一个User类,Component代表他是一个bean,方便让spring容器来扫…

SQL优化--插入数据

插入数据(insert优化) 如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。 insert into tb_test values(1,tom); insert into tb_test values(2,cat); insert into tb_test values(3,jerry); 优化方案一&#xff1…

OJ练习第170题——最大间距(桶算法)

最大间距 力扣链接:164. 最大间距 题目描述 给定一个无序的数组 nums,返回 数组在排序之后,相邻元素之间最大的差值 。如果数组元素个数小于 2,则返回 0 。 您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法…

软件结构化设计-架构真题(二十七)

(2019年)进程P有8个页面,页号分别为0~7,状态位等于1和0分别表示在内存和不在内部才能。假设系统给P分配4个存储块,如果进程P要访问页面6不在内存,那么应该淘汰号是多少? 答案:页号2 …