如何使用mdf库读取mdf文件
mdf文件格式最新版本为4.0,而当下我们最常用的版本为3.0。以下说明全部基于3.0版本。
调用mdf库:
/* flag默认值为true
* true: 初始化时读取所有通道的数据rawDataArray,当文件超过20MB时,处理时间可能会较长,超过10s,所以一般不启用
* false: 初始化时不读取通道数据,只生成所有通道对象,即使文件超过100MB,也能在2s以内读取文件完毕
*/
var mdfObject = new MDF(arrayBuffer:arrayBuffer, flag = false);
通过MDF库解析出来的MDF对象,列出对象层级、常用的属性和方法:
-
arrayBuffer: readAsArrayBuffer(file)时返回的arrayBuffer,当初始化时flag=true时,arrayBuffer = null
-
dgBlocks: data group blocks 数据块数组
- dgBlock: data group block
- cgBlocks: channel group blocks, cgBlock的数组
- cgBlock: channel group,cnBlock的数组
- cnBlocks: cnBlock的数组,数组第一个元素为该组对应的时间序列
- cnBlock: 终于到了信号通道本身了
- longSignalName:
信号名称,包含设备名称,中间用分隔。例如nmot_wccp:1,真正的信号名字为nmot_w,设备名称为ccp:1。注意,当使用mdf.searchChannelsByRegExp方法查找信号通道时,参数需要使用不带设备名称的信号名字。 - rawDataArray:
不具有物理意义的通道原始数据。当没有读取数据时,没有该属性。需要使用cnBlock.ccBlock.convertAll(cnBlock.rawDataArray)返回经过必定规则转换后得到的具有实际物理意义的通道数据。 - samplingRate: 采样周期,单位秒。例如
0.1,表明采样周期100ms。 - ccBlock:
- conversionType:
转换类型,详细来分有十几种,但常用的可能就几种。当值为10/11/12时,信号通道的值为查表类型(离散的,列如0 => ‘空挡’,1 => ‘1档’,2 => ‘2档‘,3 => ‘3档’, 4 => ‘4档‘,5 => ‘5档’),而其他情况,则认为信号通道的值为连续数值型。
- conversionType:
- convertAll(rawDataArray): 方法,用于将信号原始数据rawDataArray转换成有物理意义的值。注意在用echarts画图时,对于连续数值型的信号,y轴的type= value ,而对于离散的信号,y轴的type= category
- longSignalName:
- cnBlock: 终于到了信号通道本身了
- cnBlocks: cnBlock的数组,数组第一个元素为该组对应的时间序列
- cgBlock: channel group,cnBlock的数组
- cgBlocks: channel group blocks, cgBlock的数组
- dgBlock: data group block
-
hdBlock: 文件附加信息块
- fileComment
- text: hdBlock的属性有一些信息但不全,完整的信息以字符串的方式保存在
hdBlock.fileComment.text,例子如下:
"Date: 2018/3/21↵Time: 17:15↵Recording Duration: 00:28:09↵Database: test↵Experiment: Default↵ Workspace: Workspace↵Devices: CCP:1↵Program Description: E60705A301_c_CAN2↵WP: E60705A301_c_CAN2_GSL_180321_3↵RP: E60705A301_c_CAN2_GSL_180321_2↵¡ì@"
- text: hdBlock的属性有一些信息但不全,完整的信息以字符串的方式保存在
- fileComment
-
idBlock: 文件版本信息块
-
readDataBlockOf(cnBlock, arrayBuffer): 方法,用于读取通道的rawDataArray
-
readDataBlocks(arrayBuffer): 方法,用于读取所有通道的rawDataArray
-
searchChannelsByRegExp(regexp): 方法,用于检索名字符合正则表达式(或字符串)的通道,返回符合条件的通道数组
-
searchChannelsIf(function): 方法,自定义检索规则,返回符合条件的通道数组
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END






![[2021-4-6 更新]C启动-一款快速启动、桌面美化、桌面管理工具软件 - 宋马](https://pic.songma.com/blogimg/20250422/bc94d939c6e84346b26aa50582cba1cc.jpg)










暂无评论内容