Data Types在CDD文件中是一个很重要的部分,它能够便捷地解析DID/RID的数据内容和0x19服务的相关子服务,同时能够能够全局定义一些变量,达到整个CDD文件公用的效果。
目录
1. Raw Value:
2. Text Table:
3. Linear:
4. Characteristic Curve:
5. Packet:
6.Multiplexer:
后言:
CDD文件主要支持的数据类型如下:这里面像“Piecewise Linear”、“Procedure”这些数据类型比较不常用,所以此篇文章就暂时不对这些不常用的数据类型做介绍了。(后续有用到的话会重新开一篇来介绍)
1. Raw Value:
Raw Value是指原始值或未经处理的数据。这种数值通常表示从数据源(如传感器或其他系统)接收到的信息,尚未进行任何转换或解释。这些原始数值可能需要进一步处理和解析,以便在汽车诊断工具和软件中进行正确的显示和分析。
新建一个Raw Value类型的数据,然后将"Name"改成对应的“DID D000”,然后在“Bitlength/field size”中输入该DID对应的byte长度,最后在左下方的“Encoding”中选择“Unsigned”,然后对应的“Display Format”会默认为“Hexadecimal”十六进制;
如果在“Encoding”中选择“BCD”,然后对应的“Display Format”会默认为“Decimal”十进制;
如果在“Encoding”中选择“ASCII”,然后对应的“Display Format”会默认为“Text”;
2. Text Table:
文本表格是实际值与附加信息的一个mapping关系表,如下图所示:
定义一个名为“PAS Mode”的Text Table数据类型,然后根据自己的需求将不同的值对应的Assigned Text添加到上图红框2的列表中,这样的话将此数据类型应用到DID中之后,读取DID的值,就会出现对应的文字解析。
3. Linear:
线性数据类型一般用于处理较大数值的数据,如车数,转角,温度,电压等,如下图所示:
定义一个名为“Power Voltage”的Linear数据类型,然后选择这个数据类型应该支持的数据长度(Byte:Bit),然后在转化公式的方框中去填写对应的转化关系:Factor是乘数因子,Divisor是除数,offset是偏差,Unit是单位,单位可以在下拉框去选择,也可以自定义填写。上图中的转化公式表示raw除以10就是power voltage的物理值,最后选择Dispaly Format是10进制(Decimal)。
4. Characteristic Curve:
特征曲线是使用笛卡尔坐标系中的一组(x,y)来表示对应数据的对应关系的。如下图所示:假如DID D001是某个变量,支持1个Byte的数据长度,D001回复0x00,表示的是变量实际值为0,D001回复0x01,表示的是变量实际值为0.02,D001回复0x02,表示的是变量实际值为0.03,D001回复0x03,表示的是变量实际值为0.05,D001回复0x04,表示的是变量实际值为0.07。
5. Packet:
Packet这个数据类型在我理解,是将不同的小的数据类型封装到一个大的数据类型,同时能够被广泛复用。下图是我所使用的一个CDD文件中的Packet的数据类型:
在这个名为“Communication Type”的packet数据类型中,可以看到这个packet中包含四个小的数据类型,如上图所示,“normalCommunicationMessages”和“networkMangementCommunicationMessage”这两个小数据的数据类型都是一样的:
通过Bit Pos.来定位四个小数据类型的长度:“normalCommunicationMessages”的Bit Pos.是0,“networkMangementCommunicationMessage”的Bit Pos.是1,表示“normalCommunicationMessages”的长度为1个bit。
6.Multiplexer:
Multiplexer是一个可以支持多种数据类型的复合器,以我CDD模板中的一个Multiplexer的数据类型来做介绍:
上图中可以发现,Snapshot Record 10的前两个字节是0xF412的Constant数据,Byte2-3是Packet的数据类型,其实可以发现DID F412自身就是Packet的数据类型
综上,Multiplexer其实就是一个更大的Packet数据类型,可以囊括更多的数据类型。
本篇文章主要介绍了6中不同的数据类型,前三种在我的实际工作中有广泛的应用,后三种基本都是特殊诊断服务中应用到了,如果学习CDD文件,其实只要掌握前三种数据类型即可。
后言:
本人有CANdelaStudio Admin的license,最高支持CANdela V15的版本,支持CDD文件的定制化服务!!!