Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.12. Таймеры блоков

А.5.12.4. rdsSetBlockTimer – создать таймер

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.12. Таймеры блоков

##### А.5.12.4. rdsSetBlockTimer – создать таймер

Функция rdsSetBlockTimer создает новый таймер с указанными параметрами или изменяет параметры существующего.

      RDS_TIMERID RDSCALL rdsSetBlockTimer(
        RDS_TIMERID Timer,   // Идентификатор существующего таймера
        DWORD Delay,         // Интервал срабатывания, мс
        DWORD Mode,          // Режим работы
        BOOL Start           // Запустить немедленно
      );

Тип указателя на эту функцию

RDS_ThThDwDwB

Параметры

Timer(RDS_TIMERID)
  NULL, если нужно создать новый таймер, или идентификатор таймера, параметры которого нужно изменить.
Delay(DWORD)
  Интервал срабатывания таймера в миллисекундах.
Mode(DWORD)
  Режим работы таймера (аналогичен одноименному полю структуры RDS_TIMERDESCRIPTION). Формируется как объединение битовым ИЛИ константы режима (RDS_TIMERM_*), константы способа срабатывания (RDS_TIMERS_*) и флагов режима (RDS_TIMERF_*). Константа режима может быть одной из следующих:

  RDS_TIMERM_LOOP | Таймер циклический, после срабатывания он автоматически перезапускается с той же задержкой.
  RDS_TIMERM_STOP | Таймер однократный, после срабатывания таймера он будет остановлен. Его можно перезапустить повторным вызовом rdsSetBlockTimer или функцией rdsRestartBlockTimer.
  RDS_TIMERM_DELETE | Таймер однократный, после срабатывания таймера он будет автоматически удален.

  Константа способа срабатывания может быть одной из следующих:

  RDS_TIMERS_SIGNAL | При срабатывании таймера у блока-владельца взводится сигнал запуска, то есть его первой сигнальной переменной присваивается значение 1. Таймер работает только в режиме расчета.
  RDS_TIMERS_TIMER | При срабатывании таймера модель блока-владельца вызывается в потоке расчета для реакции на событие RDS_BFM_TIMER. Таймер работает только в режиме расчета.
  RDS_TIMERS_WINREF | При срабатывании таймера модель блока-владельца вызывается в главном потоке для реакции на событие RDS_BFM_WINREFRESH. Таймер работает только в режиме расчета.
  RDS_TIMERS_SYSTIMER | При срабатывании таймера модель блока-владельца вызывается в главном потоке для реакции на событие RDS_BFM_TIMER. Таймер работает во всех режимах.

  На данный момент поддерживается единственный флаг режима:

  RDS_TIMERF_FIXFREQ | При способе срабатывания RDS_TIMERS_WINREF к этому таймеру не будет применяться автоматическое снижение частоты при чрезмерной загрузке процессора процедурами обновления окон. При остальных способах срабатывания флаг игнорируется.

Start(BOOL)
  TRUE – запустить таймер немедленно после создания или изменения параметров, FALSE – не запускать таймер (он будет находиться в остановленном состоянии).

Возвращаемое значение

Идентификатор созданного таймера. Если функция была вызвана не для создания таймера, а для изменения параметров существующего (параметр Timer не равен NULL), возвращаемое значение будет совпадать с Timer.

Примечания

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

Пример

Пример использования функции rdsSetBlockTimer приведен в §2.9.2 руководства программиста.

См. также

RDS_TIMERDESCRIPTION, rdsDeleteBlockTimer, RDS_BFM_TIMER.