В этом примере показано, как получить данные в фоновом режиме с помощью событий и прослушивателей.
Фоновое приобретение зависит от событий и прослушивателей, чтобы позволить вашему коду получать доступ к данным, когда оборудование получает его и реагировать на любые ошибки, как они происходят. Для получения дополнительной информации смотрите События и Прослушиватели — Концепции в документации Объектно-ориентированного программирования MATLAB. Используйте события, чтобы получить данные в фоновом режиме. В этом примере вы получаете данные из устройства NI 9205 с ID cDAQ1Mod1 с помощью прослушивателя и DataAvailable
событие.
Прослушиватели выполняют функцию обратного вызова, когда уведомлено, которую имело место событие. Используйте Session.addlistener
создать объект прослушивателя, который выполняет вашу функцию обратного вызова.
Создайте объект сеанса NI и канал 'Напряжения' аналогового входа на cDAQ1Mod1:
s = daq.createSession('ni'); addAnalogInputChannel(s,'cDAQ1Mod1', 'ai0', 'Voltage');
Добавьте прослушиватель для DataAvailable
событие и присвоение это к переменной lh
:
lh = addlistener(s,'DataAvailable', @plotData);
Для получения дополнительной информации о событиях смотрите События и Прослушиватели — Концепции в документации Объектно-ориентированного программирования MATLAB.
Создайте простую функцию обратного вызова, чтобы отобразить полученные данные на графике и сохранить их как plotData.m
в вашей рабочей директории:
function plotData(src,event) plot(event.TimeStamps, event.Data) end
Здесь, src
объект сеанса для прослушивателя и event
daq.DataAvailableInfo
объект, содержащий данные и сопоставленное время выполнения.
Получите данные и см., что график обновляется, в то время как MATLAB® запускается:
startBackground(s);
Когда операция будет завершена, удалите прослушиватель:
delete (lh)