Управляйте увольнением события 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 сканирований в секунду. Сеанс автоматически сконфигурирован, чтобы запустить времена уведомления 10 DataAvailable
в секунду.
Увеличьте 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