timerfindall

Класс: таймер

Найдите объект - таймер, независимо от видимости

Описание

пример

out = timerfindall находит объекты - таймеры существующими в памяти, независимо от видимости и возвращает массив, out. Используйте ObjectVisibility свойство установить видимость объекта.

пример

out = timerfindall(Name,Value) находит объекты - таймеры существующими в памяти, независимо от видимости, значения свойств которой совпадают с переданными как Name,Value парные аргументы и возвращают массив, out.

пример

out = timerfindall(t,Name,Value) соответствия Name,Value парные аргументы к объектам - таймерам перечислены в t, где t может быть массив объектов - таймеров и возвращает массив, out.

пример

out = timerfindall(S) значения свойств соответствий заданы в структуре, S и возвращает массив, out. Имена полей S имена свойства объекта - таймера, и значения полей являются соответствующими значениями свойств.

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

t

Массив объектов класса timer.

S

Структура с именами полей, соответствующими timer имена свойства объекта. Значения полей являются соответствующими значениями свойств.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'BusyMode'

Вектор символов или строковый скаляр, который указывает на меры, принятые, когда таймер должен выполнить TimerFcn перед завершением предыдущего выполнения TimerFcn. Когда Running='on', BusyMode только для чтения. Эта таблица суммирует занятые режимы.

BusyMode Значения

Поведение, если Пустая Очередь

Поведение, если Очередь, Не Пустая

Примечания

'drop'

Добавляет задача поставить в очередь

Задача отбрасываний

Возможный пропуск TimerFcn вызовы

'error'

Добавляет задача поставить в очередь

Выполняет задачу; ошибка бросков задана ErrorFcn; таймер остановок

Таймер остановок после выполнения задачи в очереди выполнения

'queue'

Добавляет задача поставить в очередь

Ожидает очереди, чтобы очиститься, и затем вводит задачу в очередь

Настраивает Period свойство управлять задачами в очереди выполнения

См. Обработку конфликтов очереди таймера для получения дополнительной информации.

Значение по умолчанию: 'drop'

'ErrorFcn'

Вектор символов, строковый скаляр, указатель на функцию или массив ячеек, задающий функцию, которую выполняет таймер, когда ошибка происходит. Если существует ошибка, эта функция выполняется, и затем вызывает StopFcn.

  • Если вы задаете это свойство с помощью вектора символов или строкового скаляра, когда MATLAB® выполняет коллбэк, это оценивает код MATLAB, содержавшийся в векторе символов.

  • Если вы задаете это свойство с помощью указателя на функцию, когда MATLAB выполняет коллбэк, это передает timer возразите и структура события против функции обратного вызова. Структура события содержит тип события в Type поле и время события в Data поле .

  • Если ваша функция обратного вызова принимает аргументы в дополнение к timer данные объектов и данные о событиях, задайте это свойство как массив ячеек, содержащий указатель на функцию и дополнительные аргументы.

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

'ExecutionMode'

Вектор символов или строковый скаляр, который задает как timer возразите событиям таймера расписаний. Когда Running='on', ExecutionMode только для чтения. Эта таблица суммирует режимы выполнения.

Режим выполнения

Время Period Стартовая точка

'singleShot'

В этом режиме функция обратного вызова таймера только выполняется однажды. Поэтому Period свойство не оказывает влияния. Это - режим выполнения по умолчанию.

'fixedRate'

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

'fixedDelay'

Запускается, когда коллбэк таймерной функции перезапускает выполнение после задержки из-за задержек очереди выполнения MATLAB

'fixedSpacing'

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

  • 'singleShot' один режим выполнения для timer класс, и является значением по умолчанию.

  • 'fixedDelay', 'fixedRate', и 'fixedSpacing' три поддерживаемых мультирежима выполнения. Эти режимы задают начальную точку Period свойство. Period свойство задает количество времени между выполнением, которое остается то же самое. Только точка, в которой начинается выполнение, отличается.

Значение по умолчанию: 'singleShot'

'Name'

Вектор символов или строковый скаляр, представляющий timer имя.

Значение по умолчанию: 'timer-i', где i номер, указывающий на iобъект - таймер th создал этот сеанс. Сбрасывать i к 1, выполните clear classes команда.

'ObjectVisibility'

Вектор символов или строковый скаляр с возможными значениями 'on' или 'off', это обеспечивает способ для вас препятствовать доступу конечных пользователей к объектам - таймерам, которые создает ваше приложение. timerfind функция не возвращает объект чей ObjectVisibility свойство установлено в 'off'. Объекты, которые не отображаются, все еще допустимы. Чтобы получить список всех объектов - таймеров в памяти, включая невидимые единицы, используют timerfindall функция.

Значение по умолчанию: 'on'

'Period'

Номер, больше, чем 0,001, который задает задержку, в секундах, между выполнением TimerFcn. Для таймера, чтобы использовать Period, необходимо установить ExecutionMode и TasksToExecute запланировать несколько событий коллбэка объекта - таймера.

Значение по умолчанию: 1.0

'StartDelay'

Номер, больше, чем или равный 0, который задает задержку, в секундах, между запуском таймера и первым выполнением функции, заданной в TimerFcn. Когда Running = 'on', StartDelay только для чтения.

Значение по умолчанию: 0

'StartFcn'

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

  • Если вы задаете это свойство с помощью вектора символов или строкового скаляра, когда MATLAB выполняет коллбэк, это оценивает код MATLAB, содержавшийся в векторе символов.

  • Если вы задаете это свойство с помощью указателя на функцию, когда MATLAB выполняет коллбэк, это передает timer возразите и структура события против функции обратного вызова. Структура события содержит тип события в Type поле и время события в Data поле .

  • Если ваша функция обратного вызова принимает аргументы в дополнение к timer данные объектов и данные о событиях, задайте это свойство как массив ячеек, содержащий указатель на функцию и дополнительные аргументы.

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

'StopFcn'

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

  • Если вы задаете это свойство с помощью вектора символов или строкового скаляра, когда MATLAB выполняет коллбэк, это оценивает код MATLAB, содержавшийся в векторе символов.

  • Если вы задаете это свойство с помощью указателя на функцию, когда MATLAB выполняет коллбэк, это передает timer возразите и структура события против функции обратного вызова. Структура события содержит тип события в Type поле и время события в Data поле .

  • Если ваша функция обратного вызова принимает аргументы в дополнение к timer данные объектов и данные о событиях, задайте это свойство как массив ячеек, содержащий указатель на функцию и дополнительные аргументы.

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

Таймер останавливается когда

  • Вы вызываете таймер stop метод.

  • Таймер закончил выполнять TimerFcn. Другими словами, значение TasksExecuted достигает предела, установленного TasksToExecute.

  • Ошибка происходит. ErrorFcn коллбэк называется сначала, сопровождается StopFcn 'callback'.

Можно использовать StopFcn чтобы задать очищают действия, такие как удаление объекта - таймера из памяти.

'Tag'

Вектор символов или строковый скаляр, который представляет метку для объекта.

'TasksToExecute'

Номер, больше, чем 0, указывая на число раз объект - таймер, должен выполнить TimerFcn 'callback'. Используйте TasksToExecute свойство определить номер выполнения. Использовать TasksToExecute, необходимо установить ExecutionMode запланировать несколько событий коллбэка таймера.

Значение по умолчанию: Inf

'TimerFcn'

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

  • Если вы задаете это свойство с помощью вектора символов или строкового скаляра, когда MATLAB выполняет коллбэк, это оценивает код MATLAB, содержавшийся в векторе символов.

  • Если вы задаете это свойство с помощью указателя на функцию, когда MATLAB выполняет коллбэк, это передает timer возразите и структура события против функции обратного вызова. Структура события содержит тип события в Type поле и время события в Data поле .

  • Если ваша функция обратного вызова принимает аргументы в дополнение к timer данные объектов и данные о событиях, задайте это свойство как массив ячеек, содержащий указатель на функцию и дополнительные аргументы.

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

'UserData'

Типовое поле для данных, которые вы хотите добавить в объект.

Аргументы в виде пар имя-значение Только для чтения

AveragePeriod

Среднее время в секундах между TimerFcn выполнение начиная с запущенного таймера. Значением является NaN пока таймер не выполняет два коллбэка таймера.

InstantPeriod

Время в секундах между последними двумя выполнением TimerFcn. Значением является NaN пока таймер не выполняет два коллбэка таймера.

Running

Вектор символов, заданный как 'off' или 'on', указание, является ли таймер функциями обратного вызова выполняющегося в данного момента.

TasksExecuted

Число раз таймер под названием TimerFcn начиная с запущенного таймера.

Type

Вектор символов, который идентифицирует тип объекта.

Примеры

развернуть все

Создайте четыре объекта - таймера.

t1 = timer('TimerFcn',@(~,~)disp('Timer 1 Fired!'));
t2 = timer('TimerFcn',@(~,~)disp('Timer 2 Fired!'));
t3 = timer('TimerFcn',@(~,~)disp('Timer 3 Fired!'));
t4 = timer('TimerFcn',@(~,~)disp('Timer 4 Fired!'));

Установите таймеры t2 и t4 быть невидимым.

t2.ObjectVisibility = 'off';
t4.ObjectVisibility = 'off';

Очистите таймеры t1 и t2 из рабочей области.

clear t1 t2
whos
  Name      Size            Bytes  Class    Attributes

  t3        1x1               104  timer              
  t4        1x1               104  timer              

Найдите все видимые таймеры в памяти.

timerfind
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        1x1 function_handle arraytimer-1
   2       singleShot      1        1x1 function_handle arraytimer-3

timerfind находит только таймеры t1 и t2, поскольку они отображаются. Таймер t2 все еще допустимо и в памяти даже при том, что она была очищена от рабочей области

Найдите все таймеры в памяти.

timerfindall
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        1x1 function_handle arraytimer-1
   2       singleShot      1        1x1 function_handle arraytimer-2
   3       singleShot      1        1x1 function_handle arraytimer-3
   4       singleShot      1        1x1 function_handle arraytimer-4

timerfindall находит все четыре допустимых таймера в памяти даже при том, что t2 и t4 невидимы и t1 и t2 были очищены от рабочей области.

Удалите все таймеры из памяти.

delete(timerfindall)

Создайте несколько отдельных таймеров и массив таймеров.

t1 = timer('Tag', 'broadcastProgress','UserData','Monday');
t2 = timer('Tag', 'displayProgress','UserData','Monday');
timerArr = [timer('Tag', 'broadcastProgress','UserData','Tuesday');
    timer('Tag', 'displayProgress','UserData','Tuesday');
    timer('Tag', 'displayProgress','UserData','Wednesday');];

Сделайте таймер t1 и timerArr(2) невидимый.

t1.ObjectVisibility = 'off';
timerArr(2).ObjectVisibility = 'off';

Найдите все таймеры в памяти с помощью timerfind.

out1 = timerfind
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-2
   2       singleShot      1        ''                      timer-3
   3       singleShot      1        ''                      timer-5

timerfind не находит скрытые таймеры.

Найдите все таймеры в памяти с помощью timerfindall.

out2 = timerfindall
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-1
   2       singleShot      1        ''                      timer-2
   3       singleShot      1        ''                      timer-3
   4       singleShot      1        ''                      timer-4
   5       singleShot      1        ''                      timer-5

timerfindall находит все таймеры, даже невидимые единицы.

Найдите только те таймеры в памяти, которые имеют значение, 'displayProgress', как Tag свойство.

out3 = timerfindall('Tag','displayProgress')
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-2
   2       singleShot      1        ''                      timer-4
   3       singleShot      1        ''                      timer-5

Ограничьте поиск таймеров, которые имеют значение, 'displayProgress', как Tag свойство к объектам - таймерам в timerArr.

out4 = timerfindall(timerArr,'Tag','displayProgress')
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        ''                      timer-4
   2       singleShot      1        ''                      timer-5

Задайте struct содержа Tag и UserData свойства интереса.

searchStruct = struct('Tag','broadcastProgress','UserData','Monday')
searchStruct = 

         Tag: 'broadcastProgress'
    UserData: 'Monday'

Используйте struct как критерии поиска, чтобы найти объекты - таймеры в памяти.

out5 = timerfindall(searchStruct)
   Timer Object: timer-1

   Timer Settings
      ExecutionMode: singleShot
             Period: 1
           BusyMode: drop
            Running: off

   Callbacks
           TimerFcn: ''
           ErrorFcn: ''
           StartFcn: ''
            StopFcn: ''

Удалите объекты - таймеры.

delete(timerfindall)

Создайте четыре объекта - таймера.

t1 = timer('TimerFcn',@(~,~)disp('Timer 1 Fired!'));
t2 = timer('TimerFcn',@(~,~)disp('Timer 2 Fired!'));
t3 = timer('TimerFcn',@(~,~)disp('Timer 3 Fired!'));
t4 = timer('TimerFcn',@(~,~)disp('Timer 4 Fired!'));

Установите таймеры t2 и t4 быть невидимыми, и ясными таймерами t1 и t2 из рабочей области.

t2.ObjectVisibility = 'off';
t4.ObjectVisibility = 'off';
clear t1 t2; 
whos
  Name      Size            Bytes  Class    Attributes

  t3        1x1               104  timer              
  t4        1x1               104  timer              

Найдите все допустимые невидимые таймеры.

out = timerfindall('ObjectVisibility','off')
Timer Object Array

   Index:  ExecutionMode:  Period:  TimerFcn:               Name:
   1       singleShot      1        1x1 function_handle arraytimer-2
   2       singleShot      1        1x1 function_handle arraytimer-4

Оба допустимых невидимых таймера были найдены timerfindall, независимо от того, были ли они в рабочей области.

Советы

  • timerfindall находит объекты - таймеры в памяти, независимо от значения ObjectVisibility свойство. Ограничить поиск объектами с ObjectVisibility установите на 'on', используйте timerfind. .

Смотрите также

| |

Представлено до R2006a