Эта тема описывает, как скопировать демонстрационные тесты адаптера и изменить их для использования с вашим собственным адаптером. Шаги ниже принимают, что у вас есть адаптер под названием 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 поставщика, и т.д.