Навигация:
<< >> Оглавление Указатель

Приложения

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

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

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

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

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

    rdsSetBlockTimer(
     Timer,   // Идентификатор существующего таймера
     Delay,         // Интервал срабатывания, мс
     Mode,          // Режим работы
     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.


<< >> Оглавление Указатель