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

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

Фоновый захват зависит от коллбэков, чтобы позволить вашему коду получать доступ к данным, когда оборудование получает его и реагировать на любые ошибки, как они происходят. В этом примере вы получаете данные из устройства NI 9205 с ID 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 раз в секунду.

Похожие темы