Приложения
Приложение А. Функции, константы и структуры 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 руководства программиста.
См. также