addlistener

Создайте прослушиватель события

Синтаксис

lh = addlistener(s,eventName,@callback)
lh = addlistener(s,eventName,@(src,event) expr)

Описание

пример

lh = addlistener(s,eventName,@callback) создает прослушиватель для заданного события, eventName, чтобы выполнить функцию обратного вызова, callback во время события. lh является переменной, в которой хранится указатель прослушивателя. Создайте функцию обратного вызова, которая выполняется, когда прослушиватель обнаруживает заданное событие. Коллбэк может быть любой функцией MATLAB®.

Совет

Удалите прослушиватель, если операция завершена.

delete(lh)

пример

lh = addlistener(s,eventName,@(src,event) expr) создает прослушиватель для заданного события, eventName, и запускает анонимную функцию обратного вызова. Анонимная функция использует заданные входные параметры и выполняет операцию, заданную в выражении expr. Анонимные функции обеспечивают быстрые средние значения создания простых функций, не храня их в файле. Для получения дополнительной информации см. Анонимные функции (MATLAB).

Примеры

свернуть все

Создание сеанса и добавляет канал аналогового входа.

s = daq.createSession('ni');
addAnalogInputChannel(s,'cDAQ1Mod1','ai0','Voltage');

Добавьте прослушиватель для события DataAvailable.

lh = addlistener(s,'DataAvailable',@plotData);

Создайте функцию обратного вызова plotData и сохраните ее как plotData.m.

function plotData(src,event)
         plot(event.TimeStamps,event.Data)
end

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

startBackground(s);

Ожидайте операции, чтобы завершить, и удалить прослушиватель.

wait(s)
delete(lh)

Создайте сеанс и установите свойство IsContinuous на true.

s = daq.createSession('ni');
s.IsContinuous = true;

Добавьте два канала аналогового выхода и создайте выходные данные для двух каналов.

addAnalogOutputChannel(s,'cDAQ1Mod2',0:1,'Voltage');
outputData0 = linspace(-1,1,1000)';
outputData1 = linspace(-2,2,1000)';

Поставьте выходные данные в очередь.

queueOutputData(s,[outputData0 outputData1]);

Добавьте прослушиватель, чтобы вызвать анонимную функцию.

lh = addlistener(s,'DataRequired', @(src,event)...
      src.queueOutputData([outputData0 outputData1]));

Сгенерируйте сигналы в фоновом режиме.

startBackground(s);

Выполните другие операции MATLAB, и затем остановите сеанс. Если временные задачи не позволяют достаточно времени для генерации сигнала, используйте pause перед остановкой.

pause(5)
stop(s)

Удалите прослушиватель.

delete(lh)

Входные параметры

свернуть все

Сеанс сбора данных, заданный как объект сеанса. Создайте объект сеанса использование daq.createSession. Используйте сеанс сбора данных для операций приобретения и генерации. Создайте один сеанс на поставщика и используйте тот сеанс поставщика, чтобы выполнить все операции сбора данных.

Имя события, чтобы прислушаться, заданный как вектор символов или строка. Поддерживаемые события включают:

Типы данных: char | string

Функция обратного вызова, чтобы выполниться, заданный как указатель на функцию. Функция выполняется, когда заданное событие имеет место.

Входной параметр сеанса к анонимной функции, заданной как имя переменной. addlistener отправляет указатель на объект сеанса сбора данных в анонимную функцию как эта переменная.

Аргумент ввода событий к анонимной функции, заданной как имя переменной. addlistener отправляет указатель на объект инициирующего события в анонимную функцию как эта переменная.

Тело анонимной функции, заданной как строка исполняемого текста. Выражение может включать имена переменных входного параметра src и event.

Выходные аргументы

свернуть все

Прослушиватель события, возвращенный как указатель объекта-события. Удалите прослушиватель, если операция завершается.

Представленный в R2010b

Для просмотра документации необходимо авторизоваться на сайте