Get Started with MDF-Files
This example shows you how to access information about an MDF-file and its contents.
View File Details
View metadata of an MDF-file using mdfInfo
by specifying the file name. This sample file was created using Vector CANape™.
fileInfo = mdfInfo("CANapeBasic.MF4")
fileInfo = MDFInfo with properties: File Details Name: "CANapeBasic.MF4" Path: "/tmp/Bdoc23b_2361005_1548966/tp60a7197f/vnt-ex51113426/CANapeBasic.MF4" Author: "Otmar Schneider" Department: "PMC @ Vector Informatik GmbH" Project: "Demo" Subject: "XCPSim" Comment: "Example file created with Vector CANape" Version: "4.10" InitialTimestamp: 2016-04-21 14:27:17.000010630 Creator Details ProgramIdentifier: "MCD14.02" CreatorVendorName: "Vector Informatik GmbH" CreatorToolName: "CANape" CreatorToolVersion: "14.0.20.2386" CreatorUserName: "visosr" CreatorComment: "created" File Contents Attachment: [0x7 table] ChannelGroupCount: 2
Basic details about the MDF-file are available as properties under section File Details
.
Information about the originating tool of the MDF-file is available under section Creator Details
.
Under section File Contents
, information about the attachments and channel groups within the file is available.
View Channel Group Details
Data in an MDF-file is stored in channels contained within channel groups. This sample file contains two channel groups, as seen in the ChannelGroupCount
property.
fileInfo.ChannelGroupCount
ans = uint64
2
View details about the two channel groups in this MDF-file using mdfChannelGroupInfo
.
chanGrpInfo = mdfChannelGroupInfo("CANapeBasic.MF4")
chanGrpInfo=2×13 table
GroupNumber AcquisitionName Comment NumSamples DataSize Sorted SourceName SourcePath SourceComment SourceType SourceBusType SourceBusChannelNumber SourceSimulated
___________ _______________ _______ __________ ________ ______ ___________ __________ _____________ __________ _____________ ______________________ _______________
1 10 ms 10 ms 1993 153461 true <undefined> XCPsim <undefined> ECU CAN 1 false
2 100ms 100ms 199 23084 true <undefined> XCPsim <undefined> ECU CAN 1 false
View Channel Details
View details about all the channels in this MDF-file using mdfChannelInfo
.
chanInfoDefault = mdfChannelInfo("CANapeBasic.MF4")
chanInfoDefault=42×13 table
Name GroupNumber GroupNumSamples GroupAcquisitionName GroupComment GroupSourceName GroupSourcePath DisplayName Unit Comment ExtendedNamePrefix SourceName SourcePath
______________________________________ ___________ _______________ ____________________ ____________ _______________ _______________ ___________ ___________ _________________________________________________ __________________ ___________ __________
"Counter_B4" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim
"Counter_B5" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim
"Counter_B6" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim
"Counter_B7" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim
"PWM" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Pulse width signal from PWM_level and Triangle XCPsim <undefined> XCPsim
"PWMFiltered" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Low pass filtered PWM signal XCPsim <undefined> XCPsim
"PWM_Level" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim
"Triangle" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Triangle test signal used for PWM output PWM XCPsim <undefined> XCPsim
"ampl" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> Amplitude of channel 1-3 XCPsim <undefined> XCPsim
"channel1" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> FLOAT demo signal (sine wave) XCPsim <undefined> XCPsim
"map1_8_8_uc_measure" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> 8*8 fixed axis, permanently morphing XCPsim <undefined> XCPsim
"syncArrayStruct.mem_charArray[000]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim
"syncArrayStruct.mem_charArray[001]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim
"syncArrayStruct.mem_doubleArray[000]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim
"syncArrayStruct.mem_doubleArray[001]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim
"syncArrayStruct.mem_floatArray[000]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim
⋮
By default, the function returns minimal channel metadata. Specify the AdditionalMetadata
option as true
to view the additional metadata as well.
chanInfoAdditional = mdfChannelInfo("CANapeBasic.MF4", AdditionalMetadata=true)
chanInfoAdditional=42×25 table
Name GroupNumber GroupNumSamples GroupAcquisitionName GroupComment GroupSourceName GroupSourcePath DisplayName Unit Comment ExtendedNamePrefix SourceName SourcePath Type SyncType DataType NumBits ComponentType CompositionType ConversionType SourceComment SourceType SourceBusType SourceBusChannelNumber SourceSimulated
______________________________________ ___________ _______________ ____________________ ____________ _______________ _______________ ___________ ___________ _________________________________________________ __________________ ___________ __________ ___________ ________ ___________________________ _______ _______________ _______________ ______________ _____________ __________ _____________ ______________________ _______________
"Counter_B4" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim FixedLength None IntegerUnsignedLittleEndian 1 None None ValueToText "" ECU CAN 0 false
"Counter_B5" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim FixedLength None IntegerUnsignedLittleEndian 1 None None ValueToText "" ECU CAN 0 false
"Counter_B6" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim FixedLength None IntegerUnsignedLittleEndian 1 None None ValueToText "" ECU CAN 0 false
"Counter_B7" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Single bit demo signal (bit from a byte shifting) XCPsim <undefined> XCPsim FixedLength None IntegerUnsignedLittleEndian 1 None None ValueToText "" ECU CAN 0 false
"PWM" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Pulse width signal from PWM_level and Triangle XCPsim <undefined> XCPsim FixedLength None IntegerUnsignedLittleEndian 8 None None ValueToText "" ECU CAN 0 false
"PWMFiltered" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Low pass filtered PWM signal XCPsim <undefined> XCPsim FixedLength None IntegerUnsignedLittleEndian 8 None None Unspecified "" ECU CAN 0 false
"PWM_Level" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim FixedLength None IntegerSignedLittleEndian 8 None None Unspecified "" ECU CAN 0 false
"Triangle" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Triangle test signal used for PWM output PWM XCPsim <undefined> XCPsim FixedLength None IntegerSignedLittleEndian 8 None None Unspecified "" ECU CAN 0 false
"ampl" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> Amplitude of channel 1-3 XCPsim <undefined> XCPsim FixedLength None RealLittleEndian 32 None None Unspecified "" ECU CAN 0 false
"channel1" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> FLOAT demo signal (sine wave) XCPsim <undefined> XCPsim FixedLength None RealLittleEndian 32 None None Unspecified "" ECU CAN 0 false
"map1_8_8_uc_measure" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> 8*8 fixed axis, permanently morphing XCPsim <undefined> XCPsim FixedLength None IntegerUnsignedLittleEndian 8 None Array Unspecified "" ECU CAN 0 false
"syncArrayStruct.mem_charArray[000]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim FixedLength None IntegerSignedLittleEndian 8 StructureMember None Unspecified "" ECU CAN 0 false
"syncArrayStruct.mem_charArray[001]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim FixedLength None IntegerSignedLittleEndian 8 StructureMember None Unspecified "" ECU CAN 0 false
"syncArrayStruct.mem_doubleArray[000]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim FixedLength None RealLittleEndian 64 StructureMember None Unspecified "" ECU CAN 0 false
"syncArrayStruct.mem_doubleArray[001]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim FixedLength None RealLittleEndian 64 StructureMember None Unspecified "" ECU CAN 0 false
"syncArrayStruct.mem_floatArray[000]" 2 199 100ms 100ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim FixedLength None RealLittleEndian 32 StructureMember None Unspecified "" ECU CAN 0 false
⋮
Find Channels in an MDF-File
mdfChannelInfo
can also be used to easily query for channel details within an MDF-file if the name is fully or partially known. The function offers an option Channel
that supports wildcards for string matching.
To find channels with name being exactly "PWM":
pwmChanInfoExact = mdfChannelInfo("CANapeBasic.MF4", Channel="PWM")
pwmChanInfoExact=1×13 table
Name GroupNumber GroupNumSamples GroupAcquisitionName GroupComment GroupSourceName GroupSourcePath DisplayName Unit Comment ExtendedNamePrefix SourceName SourcePath
_____ ___________ _______________ ____________________ ____________ _______________ _______________ ___________ ___________ ______________________________________________ __________________ ___________ __________
"PWM" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Pulse width signal from PWM_level and Triangle XCPsim <undefined> XCPsim
To find channels whose name contains a substring "PWM":
pwmChanInfoWildcards = mdfChannelInfo("CANapeBasic.MF4", Channel="*PWM*")
pwmChanInfoWildcards=3×13 table
Name GroupNumber GroupNumSamples GroupAcquisitionName GroupComment GroupSourceName GroupSourcePath DisplayName Unit Comment ExtendedNamePrefix SourceName SourcePath
_____________ ___________ _______________ ____________________ ____________ _______________ _______________ ___________ ___________ ______________________________________________ __________________ ___________ __________
"PWM" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Pulse width signal from PWM_level and Triangle XCPsim <undefined> XCPsim
"PWMFiltered" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> Low pass filtered PWM signal XCPsim <undefined> XCPsim
"PWM_Level" 1 1993 10 ms 10 ms <undefined> XCPsim "" <undefined> <undefined> XCPsim <undefined> XCPsim