exponenta event banner

набор

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

Установка значений свойств для объекта таймера

Описание

пример

set(t) отображает имена свойств и их возможные значения для всех конфигурируемых свойств объекта таймера t.

пример

propStruct = set(t) возвращает значения в struct.

пример

set(t,Name) отображает возможные значения для указанного свойства, Name, объекта таймера, t.

пример

propCell = set(t,Name) возвращает значения в ячейке.

пример

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

пример

set(t,S) конфигурирует свойства t, со значениями, указанными в S, где S - структура, имена полей которой являются именами свойств объекта.

пример

set(t,PN,PV) конфигурирует свойства, указанные в массиве ячеек символьных векторов, PN, к соответствующим значениям в массиве ячеек PV, для объекта таймера t.

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

t

Объект класса timer.

S

Структура с именами полей timer имена свойств.

PN,PV

Массив ячеек символьных векторов, PNи соответствующий массив ячеек значений, PV. Массив ячеек PN должен быть массивом 1-by-N или N-by-1. Если t - массив объектов таймера, PV может быть массивом ячеек M-by-N, где M равно длине t и N равно длине PN. В этом случае каждый объект таймера обновляется различным набором значений для списка имен свойств, содержащихся в PN.

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

Укажите дополнительные пары, разделенные запятыми 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 object и event data, укажите это свойство как массив ячеек, содержащий дескриптор функции и дополнительные аргументы.

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

'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«Объект таймера, созданный в этом сеансе». Перезагружать 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 object и event data, укажите это свойство как массив ячеек, содержащий дескриптор функции и дополнительные аргументы.

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

'StopFcn'

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

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

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

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

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

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

  • Вы вызываете таймер stop способ.

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

  • Возникает ошибка. ErrorFcn обратный вызов вызывается первым, за которым следует StopFcn обратный вызов.

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

'Tag'

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

'TasksToExecute'

Число больше 0, указывающее количество запусков объекта таймера TimerFcn обратный вызов. Используйте TasksToExecute для установки количества выполнений. Использовать TasksToExecute, необходимо установить ExecutionMode для планирования нескольких событий обратного вызова по таймеру.

По умолчанию: Inf

'TimerFcn'

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

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

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

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

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

'UserData'

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

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

propStruct

Конфигурируемые свойства t, возвращено как структура. Имена полей propStruct являются именами свойств tи соответствующие значения propStruct - массивы ячеек возможных значений свойств. Если свойство в t не имеет конечного набора возможных значений, значение свойства в propStruct является пустым массивом ячеек.

propCell

Возможные значения заданного имени свойства, возвращаемые в виде массива ячеек векторов символов. Если свойство не имеет конечного набора возможных значений, set возвращает пустой массив ячеек.

Примеры

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

Создайте экземпляр объекта таймера и вызовите set способ.

t = timer;
set(t)
                Name: {}
                 Tag: {}
    ObjectVisibility: {2x1 cell}
      TasksToExecute: {}
            StartFcn: {}
             StopFcn: {}
            ErrorFcn: {}
            TimerFcn: {}
          StartDelay: {}
              Period: {}
            BusyMode: {3x1 cell}
       ExecutionMode: {4x1 cell}
            UserData: {}

Некоторые свойства таймера, такие как Running, не отображаются, поскольку они доступны только для чтения.

Используйте set способ вывода структуры.

out = set(t)
out = struct with fields:
                Name: {}
                 Tag: {}
    ObjectVisibility: {2x1 cell}
      TasksToExecute: {}
            StartFcn: {}
             StopFcn: {}
            ErrorFcn: {}
            TimerFcn: {}
          StartDelay: {}
              Period: {}
            BusyMode: {3x1 cell}
       ExecutionMode: {4x1 cell}
            UserData: {}

Удалите объект таймера из памяти.

delete(t)

Создание экземпляра объекта таймера и отображение возможных значений BusyMode собственность.

t = timer;
set(t,'BusyMode')
  3x1 cell array

    {'drop' }
    {'queue'}
    {'error'}

Выходные данные показывают три возможных значения для BusyMode. Значение по умолчанию, drop, обозначается фигурными скобами.

Отображение возможных значений для ErrorFcn.

set(t,'ErrorFcn')
  0x0 empty cell array

Описание возможных значений отображается с ErrorFcn не имеет заданного списка возможных значений.

Выведите возможные значения свойств.

out1 = set(t,'BusyMode')
out1 = 3x1 cell
    {'drop' }
    {'queue'}
    {'error'}

out2 = set(t,'ErrorFcn')
out2 =

  0x0 empty cell array

В то время как set(t,'ErrorFcn') отображает описание возможных значений, out2 = set(t,'ErrorFcn') возвращает пустую ячейку.

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

delete(t)

Создайте экземпляр объекта таймера и сделайте его невидимым. Отображение видимости объекта и удаление объекта.

t = timer;
set(t,'ObjectVisibility','off')
get(t,'ObjectVisibility')
ans = 
'off'
delete(t)

Создайте структуру для изменения нескольких свойств объекта таймера.

s.BusyMode = 'queue';
s.ExecutionMode = 'fixedDelay';
s.ObjectVisibility = 'off'
s = struct with fields:
            BusyMode: 'queue'
       ExecutionMode: 'fixedDelay'
    ObjectVisibility: 'off'

Создание таймера, отображение свойств в s, измените таймер, отобразите новые значения свойств и удалите таймер.

t = timer;
get(t,{'BusyMode','ExecutionMode','ObjectVisibility'})
ans=1×3 cell array
    {[drop]}    {[singleShot]}    {'on'}

set(t,s)
get(t,{'BusyMode','ExecutionMode','ObjectVisibility'})
ans=1×3 cell array
    {[queue]}    {[fixedDelay]}    {'off'}

delete(t)

Создайте массив ячеек свойств для изменения и массив ячеек для значений соответствующих свойств. Создание экземпляра таймера и отображение начальных значений свойств в массиве ячеек имен свойств. nameArr.

nameArr = {'BusyMode','ExecutionMode','Period'};
valArr = {'queue','fixedDelay',3};
t = timer;
get(t,nameArr)
ans=1×3 cell array
    {[drop]}    {[singleShot]}    {[1]}

Измените объект таймера и отобразите новые значения свойств. Удалите таймер.

set(t,nameArr,valArr)
get(t,nameArr)
ans=1×3 cell array
    {[queue]}    {[fixedDelay]}    {[3]}

delete(t)

Создайте экземпляр массива из трех таймеров. Создание нового массива ячеек имен свойств для изменения BusyMode, ExecutionMode, и UserData свойства. Отображение начальных значений свойств для каждого таймера.

tArr = [timer timer timer];
nameArr = {'BusyMode','ExecutionMode','UserData'};
get(tArr,nameArr)
ans=3×3 cell array
    {[drop]}    {[singleShot]}    {0x0 double}
    {[drop]}    {[singleShot]}    {0x0 double}
    {[drop]}    {[singleShot]}    {0x0 double}

Назначьте каждому свойству разное значение в каждом таймере. Создайте массив ячеек, содержащий новые значения. Каждая строка указывает значения свойств в соответствующем таймере.

valArr = {'queue','fixedDelay',3;...
            'error','fixedSpacing',42;...
            'drop','fixedRate','hello'};

Измените свойства объекта таймера и отобразите обновленные значения.

set(tArr,nameArr,valArr)
get(tArr,nameArr)
ans=3×3 cell array
    {[queue]}    {[fixedDelay  ]}    {[    3]}
    {[error]}    {[fixedSpacing]}    {[   42]}
    {[drop ]}    {[fixedRate   ]}    {'hello'}

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

delete(tArr)

Альтернативы

Для установки свойств объекта таймера можно также использовать точечную нотацию. Например, t.ObjectVisibility = 'off' устанавливает свойство в то же значение, что и set(t,'ObjectVisibility','off').

См. также

|

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