В этом примере показано, как открыть MDF-файлы и получить доступ к информации о файле и его содержимом.
Откройте MDF-файл, указав имя целевого файла. Приведены многие основные сведения о файле. Этот пример файла был создан с использованием Vector CANape.
m = mdf("CANapeBasic.MF4")
m = MDF with properties: File Details Name: 'CANapeBasic.MF4' Path: '/tmp/BR2021ad_1655202_62692/mlx_to_docbook1/tp4da62608/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' DataSize: 176545 InitialTimestamp: 2016-04-21 14:27:17.000010630 Creator Details ProgramIdentifier: 'MCD14.02' Creator: [1x1 struct] File Contents Attachment: [0x1 struct] ChannelNames: {2x1 cell} ChannelGroup: [1x2 struct] Options Conversion: Numeric
Информация об исходном инструменте MDF-файла содержится в Creator
свойство.
m.Creator
ans = struct with fields:
VendorName: 'Vector Informatik GmbH'
ToolName: 'CANape'
ToolVersion: '14.0.20.2386'
UserName: 'visosr'
Comment: 'created'
Данные в MDF-файле хранятся в каналах, содержащихся в канальных группах. Этот пример файла содержит две группы каналов.
m.ChannelGroup(1)
ans = struct with fields:
AcquisitionName: '10 ms'
Comment: '10 ms'
NumSamples: 1993
DataSize: 153461
Sorted: 1
Channel: [74x1 struct]
m.ChannelGroup(2)
ans = struct with fields:
AcquisitionName: '100ms'
Comment: '100ms'
NumSamples: 199
DataSize: 23084
Sorted: 1
Channel: [46x1 struct]
В пределах группы каналов сохраняются подробные данные о каждом канале.
m.ChannelGroup(1).Channel(1)
ans = struct with fields:
Name: 'Counter_B4'
DisplayName: ''
ExtendedNamePrefix: 'XCPsim'
Description: 'Single bit demo signal (bit from a byte shifting)'
Comment: 'Single bit demo signal (bit from a byte shifting)'
Unit: ''
Type: FixedLength
DataType: IntegerUnsignedLittleEndian
NumBits: 1
ComponentType: None
CompositionType: None
ConversionType: ValueToText
The ChannelNames
свойство позволяет быстро найти определенные каналы в различных группах каналов.
m.ChannelNames
ans=2×1 cell array
{74x1 cell}
{46x1 cell}
m.ChannelNames{1}
ans = 74x1 cell
{'Counter_B4' }
{'Counter_B5' }
{'Counter_B6' }
{'Counter_B7' }
{'PWM' }
{'PWM_Level' }
{'PWMFiltered' }
{'Triangle' }
{'map1_8_8_uc_measure[0][0]'}
{'map1_8_8_uc_measure[0][1]'}
{'map1_8_8_uc_measure[0][2]'}
{'map1_8_8_uc_measure[0][3]'}
{'map1_8_8_uc_measure[0][4]'}
{'map1_8_8_uc_measure[0][5]'}
{'map1_8_8_uc_measure[0][6]'}
{'map1_8_8_uc_measure[0][7]'}
{'map1_8_8_uc_measure[1][0]'}
{'map1_8_8_uc_measure[1][1]'}
{'map1_8_8_uc_measure[1][2]'}
{'map1_8_8_uc_measure[1][3]'}
{'map1_8_8_uc_measure[1][4]'}
{'map1_8_8_uc_measure[1][5]'}
{'map1_8_8_uc_measure[1][6]'}
{'map1_8_8_uc_measure[1][7]'}
{'map1_8_8_uc_measure[2][0]'}
{'map1_8_8_uc_measure[2][1]'}
{'map1_8_8_uc_measure[2][2]'}
{'map1_8_8_uc_measure[2][3]'}
{'map1_8_8_uc_measure[2][4]'}
{'map1_8_8_uc_measure[2][5]'}
⋮
The channelList
функция доступна для быстрого и легкого запроса деталей канала в MDF-файле. Он возвращает без учета регистра частичное совпадение с указанным входом по умолчанию, но точное совпадение также может использоваться.
channelList(m, "PWM")
ans=3×9 table
ChannelName ChannelGroupNumber ChannelGroupNumSamples ChannelGroupAcquisitionName ChannelGroupComment ChannelDisplayName ChannelUnit ChannelComment ChannelDescription
_____________ __________________ ______________________ ___________________________ ___________________ __________________ ___________ ______________________________________________ ________________________________________________
"PWM" 1 1993 10 ms 10 ms "" <undefined> Pulse width signal from PWM_level and Triangle "Pulse width signal from PWM_level and Triangle"
"PWM_Level" 1 1993 10 ms 10 ms "" <undefined> <undefined> ""
"PWMFiltered" 1 1993 10 ms 10 ms "" <undefined> Low pass filtered PWM signal "Low pass filtered PWM signal"
channelList(m, "PWM", "ExactMatch", true)
ans=1×9 table
ChannelName ChannelGroupNumber ChannelGroupNumSamples ChannelGroupAcquisitionName ChannelGroupComment ChannelDisplayName ChannelUnit ChannelComment ChannelDescription
___________ __________________ ______________________ ___________________________ ___________________ __________________ ___________ ______________________________________________ ________________________________________________
"PWM" 1 1993 10 ms 10 ms "" <undefined> Pulse width signal from PWM_level and Triangle "Pulse width signal from PWM_level and Triangle"
Закройте доступ к MDF-файлу путем удаления его переменной из рабочей области.
clear m