Этот пример показывает, как постоянно генерировать сигналы. Непрерывная фоновая генерация зависит от событий и прослушивателей, чтобы позволить вашему коду включать непрерывную постановку в очередь данных и реагировать на любые ошибки, как они происходят. Для получения дополнительной информации смотрите События и Прослушиватели — Концепции в документации Объектно-ориентированного программирования MATLAB. В этом примере вы генерируете от устройства NI 9263 с ID cDAQ1Mod2 с помощью прослушивателя на событии DataRequired
.
Прослушиватели выполняют функцию обратного вызова, когда уведомлено, которую имело место событие. Используйте Session.addlistener
, чтобы создать объект прослушивателя, который выполняет вашу функцию обратного вызова.
Создайте сеанс NI, возражают и добавляют аналоговый выход канал 'Voltage'
на cDAQ1Mod2:
s = daq.createSession('ni'); addAnalogOutputChannel(s,'cDAQ1Mod2', 'ao0', 'Voltage');
Задайте ID канала на устройствах NI с помощью терминального имени, как 'ao1'
или числовой эквивалент как 1
.
Создайте данные, чтобы вывести и поставить выходные данные в очередь.
queueOutputData(s,linspace(1, 10, 1000)');
Добавьте прослушиватель события DataRequired
и присвойте его переменной lh
:
lh = addlistener(s,'DataRequired',@queueMoreData);
Шаг 4. Создайте простую функцию обратного вызова, чтобы сгенерировать данные и сохранить их как queueMoreData.m
в вашей рабочей папке:
function queueMoreData(src,event) queueOutputData(s,linspace(1, 10, 1000)'); end
Сгенерируйте сигнал:
startBackground(s);
Можно выполнить другие команды MATLAB®, в то время как генерация происходит. В этом примере выпустите pause()
, который заставляет командную строку MATLAB ожидать вас, чтобы нажать любую клавишу.
pause();
Удалите прослушиватель:
delete(lh)