set

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

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

Описание

пример

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

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

'ExecutionMode'

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

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

Временные Period Начальная точка

'singleShot'

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

'fixedRate'

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

'fixedDelay'

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

'fixedSpacing'

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

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

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

По умолчанию: 'singleShot'

'Name'

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

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

'ObjectVisibility'

Вектор символов или строковый скаляр с возможными значениями 'on' или 'off', что предоставляет вам способ препятствовать доступу конечного пользователя к объектам-таймерам, созданным вашим приложением. The 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 и данные о событиях задайте это свойство как массив ячеек, содержащий указатель на функцию и дополнительные аргументы.

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

'StopFcn'

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

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

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

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

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

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

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

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

  • Возникает ошибка. The ErrorFcn сначала вызывается коллбэк, затем StopFcn коллбэк.

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

'Tag'

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

'TasksToExecute'

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

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

'TimerFcn'

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

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

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

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

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

'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