这个例子向您展示了如何读取通道数据应用转换规则从一个MDF-file在MATLAB和配置不同的阅读选项。
根据ASAM MDF标准,MDF通道的数据值编码表示为原始值。它可以被转换成一个物理,工程单位使用转换规则,描述了数据的价值。在渠道级别转换规则定义的方法将原始值转换成物理值。
ASAM MDF V4.2.0支金宝app持以下转换规则:
没有转换
CC_Type 0:身份(1:1)转换
数字,数字转换
CC_Type 1:线性转换
CC_Type 2:理性的转换公式
CC_Type 3:代数转换
CC_Type 4:价值值查表和插值
CC_Type 5:价值值查表插值
CC_Type 6:值范围值表格查找
数字文本的转换
CC_Type 7: text /价值尺度转换表格查找
CC_Type 8:文本/尺度转换表格查找值范围
文本数字转换
CC_Type 9:表格查找文本值
文本,文本转换
CC_Type 10:文本,文本表格查找
其他的转换
CC_Type 11:设置文本表
车辆网络工具箱™提供的功能从MDF-file读取所需的数据不同转换
选项。允许的选项是:
数字
——仅适用于数字数字转换(CC_Type 1 - 6)。数据与其他转换规则解读为原始值。
没有一个
——不适用任何转换。读取所有数据作为原始值。
所有
——应用所有数字和文本转换(CC_Type 1 - 10)。读取所有数据作为物理值。
注意,如果有一个身份转换(CC_Type 0),或没有转换(转换规则)的通道,数据读取无论作为原始值转换
选项指定。
开放一个MDF-file使用mdf
函数。的对象mdfObj
有财产转换
的默认值数字
。
mdfObj = mdf (“MDF_Conversion_Example.mf4”)
mdfObj = MDF的属性:文件名称:细节MDF_Conversion_Example。mf4的路径:/ tmp / Bdoc21b_1757077_201157 / tpc1faaadf vnt-ex96016136 / MDF_Conversion_Example。mf4”作者:部门:“项目:“主题:”评论:“版本:185年“4.10”DataSize: InitialTimestamp: 1980-01-01 05:00:00.000000000创造者细节ProgramIdentifier:“amdf5206”创造者:[1 x1 struct]文件内容附件:[0 x1 struct] ChannelNames: {{6 x1电池}}ChannelGroup: [1 x1 struct]选择转换:数字
使用channelList
函数来查看可用的频道列表mdfObj
。
channelList (mdfObj)
ans =6×9表ChannelName ChannelGroupNumber ChannelGroupNumSamples ChannelGroupAcquisitionName ChannelGroupComment ChannelDisplayName ChannelUnit ChannelComment ChannelDescription ______________________________ _____________ ______________________ ___________________________ ___________________ _____________ _____________……* * *“环境温度”1 5信号转换<定义>”“°F <定义>”“”引擎温度”1 5信号转换<定义>”“°C <定义>”“错误代码“1 5信号转换<定义> " <定义> <定义>”““齿轮位置”1 5信号转换<定义> " <定义> <定义>”“时间”1 5信号转换<定义>”“s <定义>”““雨刷速度水平”1 5信号转换<定义> " <定义> <定义> "
转换
财产和转换
名称-值对你可以选择一个转换
选择适用于读取数据时从一个MDF-file MATLAB。您指定的选项下面的方式:
设置转换
MDF对象的属性和调用读
函数。
指定一个转换
当调用名称-值对读
函数。
查看详细信息通道发动机温度
在通道组1。输出显示线性
转换(CC_Type 1)。
.Channel mdfObj.ChannelGroup (1) (2)
ans =结构体字段:名称:“发动机温度”DisplayName:“ExtendedNamePrefix:“描述:“评论:“单位:°C的类型:FixedLength数据类型:IntegerSignedLittleEndian NumBits: 32组件类型:没有CompositionType:没有ConversionType:线性的
你可以设置转换
财产的mdfObj
是数字
并从通道读取数据发动机温度
在通道组1。
mdfObj.Conversion=“数字”
mdfObj = MDF的属性:文件名称:细节MDF_Conversion_Example。mf4的路径:/ tmp / Bdoc21b_1757077_201157 / tpc1faaadf vnt-ex96016136 / MDF_Conversion_Example。mf4”作者:部门:“项目:“主题:”评论:“版本:185年“4.10”DataSize: InitialTimestamp: 1980-01-01 05:00:00.000000000创造者细节ProgramIdentifier:“amdf5206”创造者:[1 x1 struct]文件内容附件:[0 x1 struct] ChannelNames: {{6 x1电池}}ChannelGroup: [1 x1 struct]选择转换:数字
dataPropNum =阅读(mdfObj 1“发动机温度”)
dataPropNum =5×1的时间表时间EngineTemperature ________ _________________ 0秒35 0.25秒35.556 0.5秒36.111 0.75秒36.667 37.222 1秒
你也可以读取数据名称-值对转换,
没有一个
。请注意,转换
名称-值对,比拥有更高的优先级转换
属性,这意味着当值是不同的应用名称-值对。
dataNameValueNone =阅读(mdfObj 1“发动机温度”,“转换”,“没有”)
dataNameValueNone =5×1的时间表时间EngineTemperature ________ _________________ 0秒0.75 95 0.25秒96 0.5秒97秒98 1秒99
使用转换
不改变名称-值对转换
的属性mdfObj
。的转换
属性值的mdfObj
在阅读数据与一个名称-值对数字
。
mdfObj.Conversion
ans =枚举转换数字
转换
选择数字数字转换下面的代码展示了如何从一个通道读取所需的数据与一个数字数字转换。英吉利海峡发动机温度
有线性
转换(CC_Type 1),选择代表数字的阅读行为数值转换(CC_Type 1 - 6)。
读取数据的名称-值对转换
,数字
。在这种情况下,线性
当读取数据,因为转换应用数字
选择支持数字数金宝app字转换。物理数据和物理数值数据返回的数据类型双
。
dataLinearNum =阅读(mdfObj 1“发动机温度”,“转换”,“数字”)
dataLinearNum =5×1的时间表时间EngineTemperature ________ _________________ 0秒35 0.25秒35.556 0.5秒36.111 0.75秒36.667 37.222 1秒
类(dataLinearNum.EngineTemperature)
ans =“双”
读取数据的名称-值对转换
,没有一个
。在这种情况下,线性
转换不是因为读取数据时应用没有一个
选择不适用任何转换。返回原始数据与原数据类型,这是一个int32
。
dataLinearNone =阅读(mdfObj 1“发动机温度”,“转换”,“没有”)
dataLinearNone =5×1的时间表时间EngineTemperature ________ _________________ 0秒0.75 95 0.25秒96 0.5秒97秒98 1秒99
类(dataLinearNone.EngineTemperature)
ans = ' int32 '
读取数据的名称-值对转换
,所有
。在这种情况下,线性
当读取数据,因为转换应用所有
选择支持所有数金宝app字和文本转换。物理数据和物理数值数据返回的数据类型双
。
dataLinearAll =阅读(mdfObj 1“发动机温度”,“转换”,“所有”)
dataLinearAll =5×1的时间表时间EngineTemperature ________ _________________ 0秒35 0.25秒35.556 0.5秒36.111 0.75秒36.667 37.222 1秒
类(dataLinearAll.EngineTemperature)
ans =“双”
转换
选择文本转换数字下面的代码展示了如何从一个通道读取所需的数据和数字文本转换。英吉利海峡齿轮的位置
有ValueToText
转换(CC_Type 7),这是选择代表数字文本的阅读行为转换(CC_Type 7 - 8)。
查看详细信息通道齿轮的位置
在通道组1。输出显示ValueToText
转换。
mdfObj.ChannelGroup (1) .Channel (3)
ans =结构体字段:名称:“齿轮位置”DisplayName:“ExtendedNamePrefix:“描述:单位:“备注:类型:FixedLength数据类型:IntegerUnsignedLittleEndian NumBits: 8组件类型:没有CompositionType:没有ConversionType: ValueToText
读取数据的名称-值对转换
,数字
。在这种情况下,ValueToText
转换不是因为读取数据时应用数字
选择只支持数字金宝app数字转换。返回原始数据与原数据类型,这是一个int8
。
dataV2TNum =阅读(mdfObj 1“齿轮位置”,“转换”,“数字”)
dataV2TNum =5×1的时间表时间GearPosition ________ _______ 0秒2 0.25秒3 0.5秒0 0.75秒2 1秒1
类(dataV2TNum.GearPosition)
ans = ' uint8 '
读取数据的名称-值对转换
,没有一个
。在这种情况下,ValueToText
转换不是因为读取数据时应用没有一个
选择不适用任何转换。返回原始数据与原数据类型,这是一个int8
。
dataV2TNone =阅读(mdfObj 1“齿轮位置”,“转换”,“没有”)
dataV2TNone =5×1的时间表时间GearPosition ________ _______ 0秒2 0.25秒3 0.5秒0 0.75秒2 1秒1
类(dataV2TNone.GearPosition)
ans = ' uint8 '
读取数据的名称-值对转换
,所有
。在这种情况下,ValueToText
当读取数据,因为转换应用所有
选择支持所有数金宝app字和文本转换。物理数据和物理文本数据返回的数据类型字符
。
dataV2TAll =阅读(mdfObj 1“齿轮位置”,“转换”,“所有”)
dataV2TAll =5×1的时间表时间GearPosition ________ ___________________ 0秒{的齿轮位置2}0.25秒{'齿轮位置3 '}0.5秒{'无效'}0.75秒{的齿轮位置2}1秒{的齿轮位置1}
类(dataV2TAll.GearPosition {1})
ans = '字符'
还有一些其他的渠道mdfObj
。渠道环境温度
,雨刷速度级别
,故障代码
有转换没有一个
,TextToValue
,TextToText
,分别。你可以试着读这些渠道不同转换
选项。
查看详细信息通道环境温度
在通道组1。输出显示没有一个
转换。
.Channel mdfObj.ChannelGroup (1) (1)
ans =结构体字段:名称:“环境温度”DisplayName:“ExtendedNamePrefix:“描述:“评论:“单位:°F的类型:FixedLength数据类型:RealLittleEndian NumBits: 64组件类型:没有CompositionType:没有ConversionType:没有
查看详细信息通道雨刷速度级别
在通道组1。输出显示TextToValue
转换。
mdfObj.ChannelGroup (1) .Channel (4)
ans =结构体字段:名称:雨刷速度水平的DisplayName:“ExtendedNamePrefix:“描述:单位:“备注:类型:VariableLength数据类型:StringUTF8 NumBits: 64组件类型:没有CompositionType:没有ConversionType: TextToValue
查看详细信息通道故障代码
在通道组1。输出显示TextToText
转换。
mdfObj.ChannelGroup (1) .Channel (5)
ans =结构体字段:名称:故障代码的DisplayName:“ExtendedNamePrefix:“描述:单位:“备注:类型:VariableLength数据类型:StringUTF8 NumBits: 64组件类型:没有CompositionType:没有ConversionType: TextToText
关闭访问MDF-file清算工作空间的变量。
清晰的mdfObj