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