www.gusucode.com > vnt 源码程序 matlab案例代码 > vnt/demoXCP_XCPDynamicDAQLists.m
%% XCP Dynamic DAQ Lists % This example shows how to use XCP connections to create and use % dynamic data acquisition lists. It uses a freely available XCP slave % simulator from Vector and Vector Virtual CAN channels. It is also % recommended to run Vehicle CAN Bus Monitor in conjunction with this example. % % Copyright 2012-2013 The MathWorks, Inc. %% Run a Slave Simulator % This example requires installing a free, third-party XCP implementation % from Vector. The package includes an XCP slave simulator and A2L file. To % install this driver, please follow these instructions: % % # Go to www.vector.com and navigate to the "DOWNLOADS" page. % # Search for "Demos" under "Categories" and "XCP" under "Standards". % # Download and install the available version of "XCP Sample % Implementation". % # In MATLAB, navigate to where you installed the sample package, and % then go to .\Samples\XCPSim\CANape. % # The MATLAB XCP examples will use the XCPSIM.a2l file and the % XCPsim.exe slave simulator. Run XCPsim.exe. %% Open the A2L File % Establishing a connection to an XCP slave requires using the A2L file that % describes the slave module. a2lObj = xcpA2L('XCPSIM.a2l') %% Create an XCP Channel % Create an XCP channel in order to prepare a connection to the slave. xcpCh = xcpChannel(a2lObj, 'CAN', 'Vector', 'Virtual 1', 1) %% Connect to the Slave % To make communication with the slave active, connect to it. connect(xcpCh) %% Create a DAQ List % Create a DAQ list using one of the events specified in the A2L and assign % to it some measurements defined in the A2L file. createMeasurementList(xcpCh, 'DAQ', '10 ms', {'Triangle', 'PWM', 'channel3'}) %% Start Measurements % Starting measurements begins the transmission of DAQ messages from the % slave. After running for a few seconds, stop measurements. startMeasurement(xcpCh) pause(3); stopMeasurement(xcpCh) %% Retrieve the Triangle Measurement Data % Receive the acquired data from the channel for each measurement. dataTriangle = readDAQListData(xcpCh, 'Triangle'); plot(dataTriangle) %% Retrieve the PWM Measurement Data % Receive the acquired data from the channel for each measurement. dataPWM = readDAQListData(xcpCh, 'PWM'); plot(dataPWM) %% Retrieve the channel3 Measurement Data % Receive the acquired data from the channel for each measurement. datachannel3 = readDAQListData(xcpCh, 'channel3'); plot(datachannel3) %% Disconnect from the Slave % To make communication with the slave inactive, disconnect from it. disconnect(xcpCh)