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