Эта тема описывает, как скопировать демонстрационные тесты адаптера и изменить их для использования с вашим собственным адаптером. Шаги ниже принимают, что у вас есть адаптер под названием MyAdaptor
, как создано в примере Создают Ваш Адаптер из Демонстрационного Адаптера.
Скопируйте
к matlabroot
\toolbox\daq\daqsdk\testsC:\adaptors\daqsdk\tests
В файловом браузере перейдите к тестовой папке C:\adaptors\daqsdk\tests\+daq\+sdk
пакета SDK.
Переименуйте папку +tests
к +mytests
.
Следующие шаги требуют, чтобы вы отредактировали и сохранили свои тестовые файлы. Можно использовать редактор MATLAB® или любой редактор по вашему выбору. Поскольку тестами являются файлы MATLAB, использование редактора MATLAB рекомендуется для отладки целей.
Перейдите к C:\adaptors\daqsdk\tests\+daq\+sdk\+mytests
, и откройте файл hardwareconfiguration.m
. В MATLAB можно перейти к его папке и открыть редактор:
cd ('C:\adaptors\daqsdk\tests\+daq\+sdk\+mytests') edit hardwareconfiguration
Измените поставщика и параметры устройства этим способом, с помощью собственных имен.
Исходный текст | Обновленный текст |
---|---|
% HardwareInfo VendorName = 'mw'; VendorFullName = 'MathWorks'; DeviceID1 = 'MWDev0'; DeviceID2 = 'MWDev1'; DeviceID3 = 'MWDev2'; | % HardwareInfo VendorName = 'my'; VendorFullName = 'MyAdaptor'; DeviceID1 = 'MyDev0'; DeviceID2 = 'MyDev1'; DeviceID3 = 'MyDev2'; |
Сохраните и закройте файл.
Обновленная информация о поставщике теперь позволяет вашим тестам работать на вашем адаптере.
Измените все файлы в C:\adaptors\daqsdk\tests\+daq\+sdk\+mytests\+workflow\
так, чтобы все линии использовали mytests
вместо tests
. Например,
classdef tbackground < daq.sdk.mytests.workflow.BaseDAQSessionWorkflowTester
Перезапустите MATLAB. Используйте следующие команды, чтобы добавить ваш адаптер и тесты к пути к команде.
addpath 'C:\adaptors\daqsdk\bin\win64' addpath 'C:\adaptors\daqsdk' addpath 'C:\adaptors\daqsdk\tests'
Запустите тест для одних входных параметров сканирования.
t = daq.sdk.mytests.workflow.tinputsinglescan; results = run(t); table(results)
Running daq.sdk.mytests.workflow.tinputsinglescan .. Done daq.sdk.mytests.workflow.tinputsinglescan __________ ans = 2×6 table Name Passed Failed Incomplete Duration Details _____________________________________________________________________ ______ ______ __________ ________ ____________ 'daq.sdk.mytests.workflow.tinputsinglescan/verifyInputSingleScan' true false false 1.692 [1×1 struct] 'daq.sdk.mytests.workflow.tinputsinglescan/verifyInputSingleScanLoop' true false false 1.2947 [1×1 struct]
Для потоковой передачи тестов существует три файла, чтобы изменить в папке C:\adaptors\daqsdk\tests\+daq\+sdk\+mytests\+development\+streaming
.
Измените tstreambasic.m
использование собственного поставщика и информации об устройстве, можно следующим образом:
Исходный текст | Обновленный текст |
---|---|
properties(TestParameter) VendorName = {'mw'}; % Add vendor adaptor name here. DeviceID = {'MWDev1'}; % Add device IDs you wish to test here. end | properties(TestParameter) VendorName = {'my'}; % Add vendor adaptor name here. DeviceID = {'MyDev1'}; % Add device IDs you wish to test here. end |
Измените оба tstreamread.m
и tstreamwrite.m
использование собственной информации об адаптере, можно следующим образом:
Исходный текст | Обновленный текст |
---|---|
properties (ClassSetupParameter) adaptorName = {'DemoAdaptor'} end | properties (ClassSetupParameter) adaptorName = {'MyAdaptor'} end |
adaptorPath = fullfile(matlabroot, ... 'toolbox','daq','daqsdk','bin',computer('arch')); | adaptorPath = 'c:\adaptors\daqsdk\bin\win64'; |
Можно теперь запустить любой из тестов потоковой передачи на адаптере. Например, перезапустите MATLAB и введите следующий код:
addpath 'C:\adaptors\daqsdk\bin\win64' addpath 'C:\adaptors\daqsdk' addpath 'C:\adaptors\daqsdk\tests' t = daq.sdk.mytests.development.streaming.tstreamread; results = run(t); table(results)
Running daq.sdk.mytests.development.streaming.tstreamread ........ Done daq.sdk.mytests.development.streaming.tstreamread __________ ans = 8×6 table Name Passed Failed Incomplete Duration Details ________________________________________________________________________________________________________________________________________________________ ______ ______ __________ ________ ____________ 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIFiniteRead(scanRate=value1,numOfBlocks=value1,numChannels=value1)' true false false 10.698 [1×1 struct] 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIFiniteRead(scanRate=value1,numOfBlocks=value1,numChannels=value2)' true false false 11.543 [1×1 struct] 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIFiniteRead(scanRate=value2,numOfBlocks=value1,numChannels=value1)' true false false 10.124 [1×1 struct] 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIFiniteRead(scanRate=value2,numOfBlocks=value1,numChannels=value2)' true false false 11.087 [1×1 struct] 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIContinuousRead(scanRate=value1,numOfBlocks=value1,numChannels=value1)' true false false 10.159 [1×1 struct] 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIContinuousRead(scanRate=value1,numOfBlocks=value1,numChannels=value2)' true false false 10.568 [1×1 struct] 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIContinuousRead(scanRate=value2,numOfBlocks=value1,numChannels=value1)' true false false 10.079 [1×1 struct] 'daq.sdk.mytests.development.streaming.tstreamread[adaptorName=MyAdaptor]/VerifyAIContinuousRead(scanRate=value2,numOfBlocks=value1,numChannels=value2)' true false false 11.137 [1×1 struct]
Можно запустить полный комплект тестов для адаптера путем определения папки пакета, чтобы использовать все тесты, содержавшиеся в нем.
results = runtests('daq.sdk.mytests','IncludeSubpackages',true,'Verbosity','Concise'); table(results)
Когда вы пишете свой адаптер, необходимо изменить тестовые файлы, чтобы соответствовать функциональности, реализованной для устройства. В решении последовательности, в которой вы реализуете и тестируете функциональность, рассматриваете Рабочие процессы Сеанса с Демонстрационным Адаптером.
В дополнение к имени адаптера необходимо изменить где применимый имя поставщика, имя драйвера устройства, имена устройств, ID поставщика, и т.д.