Чтобы использовать файл A2L, создайте объект файла в MATLAB® сеанс. В Командном окне введите:
a2lfile = xcpA2L('filename.a2l')
Вот a2lfile
- переменная, назначенная объекту A2L, и filename.a2l
- имя файла A2L. Если вашего A2L файла нет в текущей рабочей директории, укажите необходимый частичный или полный путь к файлу:
a2lfile = xcpA2L('path\filename.a2l');
Совет
A2L имена файлов, содержащие неалфавитно-цифровые символы, такие как знаки равенства или амперсанды, не поддерживаются. В имени базы данных можно использовать периоды. Переименуйте любые файлы A2L с неалфавитно-цифровыми символами перед использованием.
Эта команда возвращает объект A2L, который можно использовать для прямой связи с ведомым модулем с помощью каналов XCP.
В этом примере показано, как открыть файл A2L и получить доступ к информации о измерениях.
Откройте файл A2L:
a2lfile = xcpA2L('XCPSIM.a2l');
Отобразите свойства объекта A2L:
a2lfile
A2L with properties: FileName: 'XCPSIM.a2l' FilePath: 'C:\work\XCPSIM.a2l' SlaveName: 'CPP' ProtocolLayerInfo: [1×1 xcp.ProtocolLayerInfo] DAQInfo: [1×1 xcp.DAQInfo] TransportLayerCANInfo: [1×1 xcp.TransportLayerCANInfo] TransportLayerUDPInfo: [1×1 xcp.TransportLayerUDPInfo] TransportLayerTCPInfo: [] Events: {'Key T' '10 ms' '100ms' '1ms' 'FilterBypassDaq' 'FilterBypassSt'} Measurements: {1×45 cell} Characteristics: {1×16 cell} EventInfo: [1×6 xcp.Event] MeasurementInfo: [45×1 containers.Map] CharacteristicInfo: [16×1 containers.Map] AxisInfo: [1×1 containers.Map] RecordLayouts: [41×1 containers.Map] CompuMethods: [16×1 containers.Map] CompuTabs: [0×1 containers.Map] CompuVTabs: [2×1 containers.Map]
Просмотр всех доступных измерений:
a2lfile.Measurements
ans = 1×45 cell array Columns 1 through 6 {'BitSlice'} {'BitSlice0'} {'BitSlice1'} {'BitSlice2'} {'Counter_B4'} {'Counter_B5'} Columns 7 through 12 {'Counter_B6'} {'Counter_B7'} {'DtChannel1'} {'FW1'} {'KL1Output'} {'MaxChannel1'} Columns 13 through 18 {'MinChannel1'} {'PWM'} {'PWMFiltered'} {'PWM_Level'} {'ShiftByte'} {'Shifter_B0'} Columns 19 through 24 {'Shifter_B1'} {'Shifter_B2'} {'Shifter_B3'} {'TestStatus'} {'Triangle'} {'ampl'} Columns 25 through 31 {'bit12Counter'} {'byte1'} {'byte2'} {'byte3'} {'byte4'} {'byteCounter'} {'bytePWMFilter'} Columns 32 through 37 {'channel1'} {'channel2'} {'channel3'} {'dwordCounter'} {'limit'} {'map1InputX'} Columns 38 through 44 {'map1InputY'} {'map1Output'} {'offset'} {'period'} {'sbytePWMLevel'} {'v'} {'vin'} Column 45 {'wordCounter'}
Получите информацию о 'Triangle'
измерение:
getMeasurementInfo(a2lfile,'Triangle')
ans = Measurement with properties: Resolution: 0 Accuracy: 0 LocDataType: 'SBYTE' Layout: 'ROW_DIR' Name: 'Triangle' LongIdentifier: 'Triangle test signal used for PWM output PWM' ECUAddress: 4951377 ECUAddressExtension: 0 Conversion: [1×1 xcp.CompuMethodRational] Dimension: 1 LowerLimit: -50 UpperLimit: 50 BitMask: []
В этом примере показано, как открыть файл A2L и получить доступ к информации о событии.
Откройте файл A2L:
a2lfile = xcpA2L('XCPSIM.a2l');
Отобразите свойства объекта A2L:
a2lfile
A2L with properties: FileName: 'XCPSIM.a2l' FilePath: 'C:\work\XCPSIM.a2l' SlaveName: 'CPP' ProtocolLayerInfo: [1×1 xcp.ProtocolLayerInfo] DAQInfo: [1×1 xcp.DAQInfo] TransportLayerCANInfo: [1×1 xcp.TransportLayerCANInfo] TransportLayerUDPInfo: [1×1 xcp.TransportLayerUDPInfo] TransportLayerTCPInfo: [] Events: {'Key T' '10 ms' '100ms' '1ms' 'FilterBypassDaq' 'FilterBypassSt'} Measurements: {1×45 cell} Characteristics: {1×16 cell} EventInfo: [1×6 xcp.Event] MeasurementInfo: [45×1 containers.Map] CharacteristicInfo: [16×1 containers.Map] AxisInfo: [1×1 containers.Map] RecordLayouts: [41×1 containers.Map] CompuMethods: [16×1 containers.Map] CompuTabs: [0×1 containers.Map] CompuVTabs: [2×1 containers.Map]
Просмотр всех доступных событий:
a2lfile.Events
ans = 'Key T' '10 ms' '100ms' '1ms' 'FilterBypassDaq' 'FilterBypassSt'
Получите информацию для '10 ms'
событие:
getEventInfo(a2lfile,'10 ms')
ans = Name: '10 ms' Direction: 'DAQ_STIM' MaxDAQList: 255 ChannelNumber: 1 ChannelTimeCycle: 10 ChannelTimeUnit: 6 ChannelPriority: 0 ChannelTimeCycleInSeconds: 0.0100