exponenta event banner

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

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

Фоновое получение зависит от обратных вызовов, что позволяет вашему коду получать доступ к данным по мере их получения аппаратными средствами и реагировать на любые ошибки при их возникновении. В этом примере выполняется получение данных с устройства NI 9205 с идентификатором cDAQ1Mod1 с использованием ScansAvailableFcnCount для вызова вызова функции, определенной ScansAvailableFcn собственность.

Создание объекта NI DataAcquisition с аналоговым каналом входного напряжения cDAQ1Mod1:

d = daq("ni");
ch = addinput(d,"cDAQ1Mod1","ai0","Voltage");

Создание простой функции обратного вызова для печати полученных данных и сохранения их как plotMyData.m в рабочем каталоге. Введите следующий код в файл:

 function plotMyData(obj,evt)
% obj is the DataAcquisition object passed in. evt is not used.
     data = read(obj,obj.ScansAvailableFcnCount,"OutputFormat","Matrix");
     plot(data)
 end

Установите свойство функции обратного вызова для использования функции.

d.ScansAvailableFcn = @plotMyData;

Запустите сбор данных в фоновом режиме в течение 5 секунд.

start(d,"Duration",5))

Говорите в микрофон и смотрите сюжет. Он обновляется 10 раз в секунду.

Связанные темы