набор

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

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

Синтаксис

set(t)
propStruct = set(t)
set(t,Name)
propCell = set(t,Name)
set(t,Name,Value)
set(t,S)
set(t,PN,PV)

Описание

пример

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 должен быть массивом N-1 или 1 на n. Если t является массивом объектов - таймеров, PV может быть массивом ячеек M на n, где M равен длине t, и N равен длине PN. В этом случае каждый объект - таймер обновляется с различным множеством значений для списка имен свойства, содержавшихся в PN.

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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.

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

'Tag'

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

'TasksToExecute'

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

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

'TimerFcn'

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

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

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

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

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

'UserData'

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

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

propStruct

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

propCell

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

Примеры

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

Инстанцируйте объекта - таймера и вызовите метод set.

t = timer;
set(t)
    BusyMode: [ {drop} | queue | error ]
    ErrorFcn: string -or- function handle -or- cell array
    ExecutionMode: [ {singleShot} | fixedSpacing | fixedDelay | fixedRate ]
    Name
    ObjectVisibility: [ {on} | off ]
    Period
    StartDelay
    StartFcn: string -or- function handle -or- cell array
    StopFcn: string -or- function handle -or- cell array
    Tag
    TasksToExecute
    TimerFcn: string -or- function handle -or- cell array
    UserData

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

Используйте метод set, чтобы вывести структуру.

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

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

delete(t)

Инстанцируйте объекта - таймера и отобразите возможные значения для свойства BusyMode.

t = timer;
set(t,'BusyMode')
[ {drop} | queue | error ]

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

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

set(t,'ErrorFcn')
string scalar -or- character vector -or- function handle -or- cell array

Описание возможных значений отображено, поскольку ErrorFcn не имеет сетлиста возможных значений.

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

out1 = set(t,'BusyMode')
out1 = 3x1 cell array
    {'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 = 1x3 cell array
    {'drop'}    {'singleShot'}    {'on'}

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

delete(t)

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

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

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

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

delete(t)

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

tArr = [timer timer timer];
nameArr = {'BusyMode','ExecutionMode','UserData'};
get(tArr,nameArr)
ans = 3x3 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 = 3x3 cell array
    {'queue'}    {'fixedDelay'  }    {[    3]}
    {'error'}    {'fixedSpacing'}    {[   42]}
    {'drop' }    {'fixedRate'   }    {'hello'}

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

delete(tArr)

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

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

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

|

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