Получите данные в фоновом режиме

В этом примере показано, как получить данные в фоновом режиме с помощью событий и прослушивателей.

Фоновое приобретение зависит от событий и прослушивателей, чтобы позволить вашему коду получать доступ к данным, когда оборудование получает его и реагировать на любые ошибки, как они происходят. Для получения дополнительной информации смотрите События и Прослушиватели — Концепции в документации Объектно-ориентированного программирования 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)

Похожие темы