Сбор данных в фоновом режиме

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

Похожие темы