В этом примере показано, как получать данные в фоновом режиме с помощью обратных вызовов во время выполнения 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 раз в секунду.