XCP динамические списки DAQ

Этот пример показывает, как использовать связи XCP, чтобы создать и использовать динамические списки сборов данных. Это использует ведомое средство моделирования XCP в свободном доступе от Векторных и Векторных виртуальных каналов CAN. Для доступа к виртуальным каналам должны быть установлены Векторные драйверы устройств. Также рекомендуется запустить Vehicle CAN Bus Monitor в сочетании с этим примером.

Запустите ведомое средство моделирования

Этот пример требует установки свободной, сторонней реализации XCP от Вектора. Пакет включает ведомое средство моделирования XCP и файл A2L. Чтобы установить этот драйвер, следуйте этим инструкциям:

  1. Перейдите к www.vector.com и перейдите к странице "DOWNLOADS".

  2. Ищите "Демонстрации" под "Категориями" и "XCP" в соответствии со "Стандартами".

  3. Загрузите и установите доступную версию "Демонстрационной Реализации XCP".

  4. В MATLAB перейдите туда, где вы установили демонстрационный пакет, и затем перейдите к.\Samples\XCPSim\CANape.

  5. Примеры XCP MATLAB будут использовать файл XCPSIM.a2l и ведомое средство моделирования XCPsim.exe. Запустите XCPsim.exe.

Откройте файл A2L

Установление связи с ведомым устройством XCP требует использования файла A2L, который описывает ведомый модуль.

a2lObj = xcpA2L('XCPSIM.a2l')
a2lObj = 

  A2L with properties:

                 FileName: 'XCPSIM.a2l'
                 FilePath: '\\central-mi\home\jpyle\documents\MATLAB\examples\vnt-ex33137552\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: {1×6 cell}
             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]

Создайте канал XCP

Создайте канал XCP в порядке подготовить связь с ведомым устройством.

xcpCh = xcpChannel(a2lObj, 'CAN', 'Vector', 'Virtual 1', 1)
xcpCh = 

  Channel with properties:

               SlaveName: 'CPP'
             A2LFileName: 'XCPSIM.a2l'
          TransportLayer: 'CAN'
    TransportLayerDevice: [1×1 struct]
              SeedKeyDLL: []

Соединитесь с ведомым устройством

Чтобы сделать связь с ведомым устройством активной, соединитесь с ним.

connect(xcpCh)

Создайте список DAQ

Создайте список DAQ с помощью одного из событий, заданных в A2L и присвоении к нему некоторые измерения, заданные в файле A2L.

createMeasurementList(xcpCh, 'DAQ', '10 ms', {'Triangle', 'PWM', 'channel3'})

Запустите измерения

Стартовые измерения начинают передачу сообщений DAQ от ведомого устройства. После выполнения в течение нескольких секунд остановите измерения.

startMeasurement(xcpCh)
pause(3);
stopMeasurement(xcpCh)

Получите треугольные данные об измерении

Получите полученные данные из канала для каждого измерения.

dataTriangle = readDAQListData(xcpCh, 'Triangle');
plot(dataTriangle)

Получите данные об измерении PWM

Получите полученные данные из канала для каждого измерения.

dataPWM = readDAQListData(xcpCh, 'PWM');
plot(dataPWM)

Получите channel3 Данные об Измерении

Получите полученные данные из канала для каждого измерения.

datachannel3 = readDAQListData(xcpCh, 'channel3');
plot(datachannel3)

Отключитесь от ведомого устройства

Чтобы сделать связь с ведомым устройством неактивной, отключитесь от него.

disconnect(xcpCh)