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