Управляйте увольнением DataAvailable событие
DataAvailable событие инициировано, когда количество сканирований, доступных для объекта сеанса, превышает количество, заданное в NotifyWhenDataAvailableExceeds свойство.
Вы не можете установить NotifyWhenDataAvailableExceeds свойство, когда сеанс находится в подготовленном состоянии, которое может произойти после выполнения startForeground. В этом случае вызовите release на сеансе прежде, чем установить это значение свойства.
По умолчанию DataAvailable событие инициировало, когда 1/10 вторая ценность данных доступна для анализа. Чтобы задать различный порог, измените значение NotifyWhenDataAvailableExceeds.
Добавьте прослушиватель события, чтобы отобразить общее количество полученных сканирований и запустить событие, когда доступные данные превысят заданную сумму.
Создайте сеанс и добавьте канал напряжения аналогового входа.
s = daq.createSession('ni'); addAnalogInputChannel(s,'Dev4',1,'Voltage'); lh = addlistener(s,'DataAvailable', ... @(src, event) disp(s.ScansAcquired));
Значение по умолчанию Rate 1 000 сканирований в секунду. Сеанс автоматически сконфигурирован, чтобы запустить DataAvailable времена уведомления 10 в секунду.
Увеличьте Rate к 800 000 сканирований в секунду, в то время как DataAvailable уведомление автоматически стреляет 10 раз в секунду.
s.Rate = 800000; s.NotifyWhenDataAvailableExceeds
ans =
80000
Выполнение приобретения вызывает количество сканирований, полученных, чтобы быть отображенным коллбэком 10 раз.
data = startForeground(s);
80000
160000
240000
320000
400000
480000
560000
640000
720000
800000Увеличьте NotifyWhenDataAvailableExceeds к 160,000. NotifyWhenDataAvailableExceeds больше не конфигурируется автоматически когда Rate изменения.
s.NotifyWhenDataAvailableExceeds = 160000; s.IsNotifyWhenDataAvailableExceedsAuto
ans =
0Запустите приобретение. DataAvailable событие запущено только пять раз в секунду.
data = startForeground(s);
160000
320000
480000
640000
800000Установите IsNotifyWhenDataAvailableExceedsAuto назад к true.
s.IsNotifyWhenDataAvailableExceedsAuto = true; s.NotifyWhenDataAvailableExceeds
ans =
80000Это вызывает NotifyWhenDataAvailableExceeds установить автоматически когда Rate изменения.
s.Rate = 50000; s.NotifyWhenDataAvailableExceeds
ans =
5000