====== CЕРВИСЫ OSA (ПАМЯТКА) ====== * [[osa:ref:services:alphabetical|Алфавитный указатель]] Ниже приведен полный перечень сервисов OSA. В правой графе стоят пиктограммы, отображающие свойства сервисов: {|class = "" |- |{{osa:ref:attr_call_to.png}} |Использует системный таймер |- |{{osa:ref:attr_call_not_int.png}} |Нельзя вызывать из прерывания |- |{{osa:ref:attr_call_task.png}} |Разрешен вызов только в контексте задачи |- |{{osa:ref:attr_call_task_plus.png}} |Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности) |- |{{osa:ref:attr_call_ct_sw.png}} |Переключает контекст |- |{{osa:ref:attr_call_int.png}} |Разрешен вызов только в прерывании |- |{{osa:ref:attr_call_can_int.png}} |Есть расширенный сервис с суффиксом _I для работы в прерывании |} ~~UP~~ ===== Системные сервисы ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Системные** |||| | ##[[osa:ref:allservices:OS_Sched|OS_Sched]]## | '''' | Основная работа операционки, вызывается в главном цикле функции main() | | | ##[[osa:ref:allservices:OS_Run|OS_Run]]## | '''' | Запускает ядро операционки в работу. | **main()** | | ##[[osa:ref:allservices:OS_Init|OS_Init]]## | '''' | Инициализация переменных системы. | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | ##[[osa:ref:allservices:OS_Timer|OS_Timer]]## | '''' | Обработка всех таймеров | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Yield|OS_Yield]]## | '''' | Передача управления планировщику | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Delay|OS_Delay]]## | ''(delaytime)'' | Выдерживаем паузу внутри задачи | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Wait|OS_Wait]]## | ''(condition)'' | Ожидаем выполнения условия | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Wait_TO|OS_Wait_TO]]## | ''(condition, timeout)'' | Ожидаем выполнения условия с таймаутом | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|использует системный таймер}} | | **Проверка состояния** |||| | ''bool ''\\ ##[[osa:ref:allservices:OS_IsTimeout|OS_IsTimeout]]## | '''' | Проверка, вышли ли из ожидания по таймауту | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_IsError|OS_IsError]]## | '''' | Проверка, была ли ошибка | | | ''bool ''\\ ##[[osa:ref:allservices:OS_IsEventError|OS_IsEventError]]## | '''' | Проверка, была ли ошибка события | | | ''bool ''\\ ##[[osa:ref:allservices:OS_IsInCriticalSection|OS_IsInCriticalSection]]## | '''' | Возвращает 1, если одна из задач находится в критической секции. | | | **Прерывания** |||| | ##[[osa:ref:allservices:OS_EnterInt|OS_EnterInt]]## | '''' | Должна выполняться при входе в прерывание (сохраняет FSR) | {{osa:ref:attr_call_int.png|Разрешен вызов только в прерывании}} | | ##[[osa:ref:allservices:OS_LeaveInt|OS_LeaveInt]]## | '''' | Должна выполняться перед выходом из прерывания (восстанавливает FSR) | {{osa:ref:attr_call_int.png|Разрешен вызов только в прерывании}} | | ''char ''\\ ##[[osa:ref:allservices:OS_DI|OS_DI]]## | '''' | Запретить прерывания. Текущие значения GIEx сохраняются | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | ##[[osa:ref:allservices:OS_EI|OS_EI]]## | '''' | Разрешить прерывания | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | ##[[osa:ref:allservices:OS_RI|OS_RI]]## | ''(char)'' | Восстановить сохраненные в ##[[osa:ref:allservices:OS_DI|OS_DI]]##() значения GIEx. | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | ##[[osa:ref:allservices:OS_EnterCriticalSection|OS_EnterCriticalSection]]## | '''' | Вход в критическую секцию | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} | | ##[[osa:ref:allservices:OS_LeaveCriticalSection|OS_LeaveCriticalSection]]## | '''' | Выход из критической секции | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} | ~~UP~~ ===== Управление задачами ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание/удаление** |||| | ##[[osa:ref:allservices:OS_Task_Define|OS_Task_Define]]## | ''(TaskName)'' | **Для CCS**: сообщает компилятору, что функция вызывается по указателю. | **main()** | | ##[[osa:ref:allservices:OS_Task_Create|OS_Task_Create]]## | ''(priority, TaskName)'' | Инициализируем конкретную задачу. | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | ##[[osa:ref:allservices:OS_Task_Replace|OS_Task_Replace]]## | ''(priority, TaskName)'' | Заменить текущую задачу на новую. | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} | | ##[[osa:ref:allservices:OS_Task_Delete|OS_Task_Delete]]## | ''(tp)'' | Удалить задачу | {{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | **Управление состоянием** |||| | ''[[osa:ref:description:data_types#OST_TASK_POINTER|OST_TASK_POINTER]]''\\ ##[[osa:ref:allservices:OS_Task_GetCur|OS_Task_GetCur]]## | '''' | Получить указатель на дескриптор текущей задачи | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} | | ''[[osa:ref:description:data_types#OST_TASK_POINTER|OST_TASK_POINTER]]''\\ ##[[osa:ref:allservices:OS_Task_GetCreated|OS_Task_GetCreated]]## | '''' | Получить указатель на дескриптор только что созданной задачи | | | ##[[osa:ref:allservices:OS_Task_Pause|OS_Task_Pause]]## | ''(tp)'' | Приостановить задачу | {{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Task_Continue|OS_Task_Continue]]## | ''(tp)'' | Продолжить выполнение ранее приостановленной задачи | | | ''char ''\\ ##[[osa:ref:allservices:OS_Task_GetPriority|OS_Task_GetPriority]]## | ''(tp)'' | Возвращает приоритет текущей задачи | | | ##[[osa:ref:allservices:OS_Task_SetPriority|OS_Task_SetPriority]]## | ''(tp, priority)'' | Изменить приоритет текущей задачи | | | ##[[osa:ref:allservices:OS_Task_IsPaused|OS_Task_IsPaused]]## | ''(tp)'' | Проверить, приостановлена ли задача | | ===== Двоичные семафоры ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Управление** |||| | ##[[osa:ref:allservices:OS_Bsem_Set|OS_Bsem_Set]]## | ''(bsem)'' | Устанавливает семафор | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Bsem_Reset|OS_Bsem_Reset]]## | ''(bsem)'' | Сбрасывает семафор | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Bsem_Switch|OS_Bsem_Switch]]## | ''(bsem)'' | Переключает семафор в противоположное состояние | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Проверка** |||| | [[osa:ref:description:data_types#OST_WORD|OST_WORD]]\\ ##[[osa:ref:allservices:OS_Bsem_Check|OS_Bsem_Check]]## | ''(bsem)'' | Смотрим, установлен ли конкретный семафор | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Bsem_Wait|OS_Bsem_Wait]]## | ''(bsem)'' | Ожидаем установку семафора. | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Bsem_Wait_TO|OS_Bsem_Wait_TO]]## | ''(bsem, timeout)'' | Ожидаем установку семафора с таймаутом. | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Счетные семафоры ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание** |||| | ##[[osa:ref:allservices:OS_Csem_Create|OS_Csem_Create]]## | ''(csem)'' | Подготавливает счетный семафор к работе (обнуляет его) | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | **Управление** |||| | ##[[osa:ref:allservices:OS_Csem_Signal|OS_Csem_Signal]]## | ''(csem)'' | Увеличивает значение семафора на 1 (с ожиданием при переполнении) | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Csem_Signal_Now|OS_Csem_Signal_Now]]## | ''(csem)'' | Увеличивает значение семафора на 1 (без ожидания при переполнении). | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Csem_Set|OS_Csem_Set]]## | ''(csem)'' | Устанавливаем счетный семафор в 1. | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Csem_SetValue|OS_Csem_SetValue]]## | ''(csem, value)'' | Устанавливаем счетный семафор в конкретное значение //value//. | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Csem_Reset|OS_Csem_Reset]]## | ''(csem)'' | Обнуляем счетный семафор | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Проверка** |||| | ##[[osa:ref:allservices:OS_Csem_Accept|OS_Csem_Accept]]## | ''(csem)'' | Принимаем счетный семафор (уменьшаем его на 1). | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Csem_Check|OS_Csem_Check]]## | ''(csem)'' | Смотрим, установлен ли семафор (д.б. != 0) | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Csem_Wait|OS_Csem_Wait]]## | ''(csem)'' | Ожидаем установки семафора в ненулевое значение. Уменьшает значение семафора на 1. | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Csem_Wait_TO|OS_Csem_Wait_TO]]## | ''(csem, timeout)'' | Ожидаем установки семафора с таймаутом. | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Сообщения ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание** |||| | ##[[osa:ref:allservices:OS_Msg_Create|OS_Msg_Create]]## | ''(msg_cb)'' | Создает сообщение. | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | **Отправка** |||| | ##[[osa:ref:allservices:OS_Msg_Send|OS_Msg_Send]]## | ''(msg_cb, message)'' | Отправляем сообщение //msg_cb// (тип ##[[osa:ref:description:data_types#OST_MSG_CB|OST_MSG_CB]]##) с ожиданием освобождения | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Msg_Send_TO|OS_Msg_Send_TO]]## | ''(msg_cb, message, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Msg_Send|OS_Msg_Send]]## с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Msg_Send_Now|OS_Msg_Send_Now]]## | ''(msg_cb, message)'' | Отправляем сообщение //msg_cb// без ожидания освобождения | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Проверка** |||| | ''bool ''\\ ##[[osa:ref:allservices:OS_Msg_Check|OS_Msg_Check]]## | ''(msg_cb)'' | Проверить, активно ли сообщение (присутствует ли оно). | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Msg_Accept|OS_Msg_Accept]]## | ''(msg_cb, os_msg_type_var)'' | Принять существующее сообщение. | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Msg_Wait|OS_Msg_Wait]]## | ''(msg_cb, os_msg_type_var)'' | Ожидаем сообщение msg_cb. | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Msg_Wait_TO|OS_Msg_Wait_TO]]## | ''(msg_cb, os_msg_type_var, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Msg_Wait|OS_Msg_Wait]]##, с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Короткие сообщения ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание** |||| | ##[[osa:ref:allservices:OS_Smsg_Create|OS_Smsg_Create]]## | ''(smsg)'' | Создает короткое сообщение (фактически - просто обнуляет его) | | | **Отправка** |||| | ##[[osa:ref:allservices:OS_Smsg_Send|OS_Smsg_Send]]## | ''(smsg, smessage)'' | Отправляем сообщение //smsg// с содержимым //smessage// с ожиданием освобождения | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Smsg_Send_TO|OS_Smsg_Send_TO]]## | ''(smsg, smessage, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Smsg_Send|OS_Smsg_Send]]##, но с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Smsg_Send_Now|OS_Smsg_Send_Now]]## | ''(smsg, smessage)'' | Отправляем короткое сообщение //smsg// с содержимым //smessage// без ожидания освобождения | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Проверка** |||| | ''bool ''\\ ##[[osa:ref:allservices:OS_Smsg_Check|OS_Smsg_Check]]## | ''(smsg)'' | Проверить, активно ли сообщение (присутствует ли оно). | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Smsg_Accept|OS_Smsg_Accept]]## | ''(smsg, os_smsg_type_var)'' | Принять существующее сообщение | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Smsg_Wait|OS_Smsg_Wait]]## | ''(smsg, os_smsg_type_var)'' | Ожидаем короткое сообщение //smsg//. | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Smsg_Wait_TO|OS_Smsg_Wait_TO]]## | ''(smsg, os_smsg_type_var, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Smsg_Wait|OS_Smsg_Wait]]##, с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Очередь сообщений ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание** |||| | ##[[osa:ref:allservices:OS_Queue_Create|OS_Queue_Create]]## | ''(queue, buffer, size)'' | Создаем очередь сообщений queue, указывая буфер и его размер | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | **Отправка** |||| | ##[[osa:ref:allservices:OS_Queue_Send|OS_Queue_Send]]## | ''(queue, message)'' | Отправляем сообщение с содержимым message в очередь queue с ожиданием свободной ячейки | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Queue_Send_TO|OS_Queue_Send_TO]]## | ''(queue, message, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Queue_Send|OS_Queue_Send]]##, но с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Queue_Send_Now|OS_Queue_Send_Now]]## | ''(queue, message)'' | Отправляем сообщение с содержимым message в очередь queue без ожидания свободной ячейки | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Проверка** |||| | ''bool ''\\ ##[[osa:ref:allservices:OS_Queue_Check|OS_Queue_Check]]## | ''(queue)'' | Проверить, есть ли сообщение в очереди. | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Queue_IsFull|OS_Queue_IsFull]]## | ''(queue)'' | Проверка переполненности буфера | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Queue_Wait|OS_Queue_Wait]]## | ''(queue, os_msg_type_var)'' | Ожидаем сообщение из очереди queue | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Queue_Wait_TO|OS_Queue_Wait_TO]]## | ''(queue, os_msg_type_var, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Queue_Wait|OS_Queue_Wait]]##, но с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Очередь коротких сообщений ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание** |||| | ##[[osa:ref:allservices:OS_Squeue_Create|OS_Squeue_Create]]## | ''(squeue, buffer, size)'' | Создаем очередь коротких сообщений squeue, указывая буфер и его размер | {{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | **Отправка** |||| | ##[[osa:ref:allservices:OS_Squeue_Send|OS_Squeue_Send]]## | ''(squeue, smessage)'' | Отправляем сообщение с содержимым smessage в очередь squeue с ожиданием свободной ячейки | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Squeue_Send_TO|OS_Squeue_Send_TO]]## | ''(squeue, smessage, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Squeue_Send|OS_Squeue_Send]]##, но с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Squeue_Send_Now|OS_Squeue_Send_Now]]## | ''(squeue, smessage)'' | Отправляем сообщение с содержимым smessage в очередь squeue без ожидания свободной ячейки | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Проверка** |||| | ''bool ''\\ ##[[osa:ref:allservices:OS_Squeue_Check|OS_Squeue_Check]]## | ''(squeue)'' | Проверить, есть ли сообщение в очереди. | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Squeue_IsFull|OS_Squeue_IsFull]]## | ''(squeue)'' | Проверка переполненности буфера. Возвращает true, если в очереди нет места. | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Squeue_Wait|OS_Squeue_Wait]]## | ''(squeue, os_smsg_type_var)'' | Ожидаем сообщение из очереди squeue | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Squeue_Wait_TO|OS_Squeue_Wait_TO]]## | ''(squeue, os_smsg_type_var, timeout)'' | То же, что и ##[[osa:ref:allservices:OS_Squeue_Wait|OS_Squeue_Wait]]##, но с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Флаги ===== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание** |||| | ##[[osa:ref:allservices:OS_Flag_Create|OS_Flag_Create]]## | ''(flags)'' | Создает флаги (фактически просто сбрасывает все флаги) | | | **Управление** |||| | ##[[osa:ref:allservices:OS_Flag_Init|OS_Flag_Init]]## | ''(flags, value)'' | Устанавливает все флаги в заданное значение | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Flag_Set|OS_Flag_Set]]## | ''(flags, mask)'' | Установка флагов по маске | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ##[[osa:ref:allservices:OS_Flag_Clear|OS_Flag_Clear]]## | ''(flags, mask)'' | Сброс флагов по маске | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Проверка** |||| | ''bool ''\\ ##[[osa:ref:allservices:OS_Flag_Check_AllOn|OS_Flag_Check_AllOn]]## | ''(flags, mask)'' | Проверить, все ли флаги по маске установлены | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Flag_Check_On|OS_Flag_Check_On]]## | ''(flags, mask)'' | Проверить, есть ли хотя бы один установленный флаг по маске | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Flag_Check_AllOff|OS_Flag_Check_AllOff]]## | ''(flags, mask)'' | Проверить, все ли флаги по маске сброшены | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Flag_Check_Off|OS_Flag_Check_Off]]## | ''(flags, mask)'' | Проверить, есть ли хотя бы один сброшенный флаг по маске | {{osa:ref:attr_call_can_int.png|Есть расширенный сервис с суффиксом _I для работы в прерывании}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Flag_Wait_AllOn|OS_Flag_Wait_AllOn]]## | ''(flags, mask)'' | Ожидаем установки всех флагов по маске | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Flag_Wait_On|OS_Flag_Wait_On]]## | ''(flags, mask)'' | Ожидаем установки хотя бы одного флага из маски | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Flag_Wait_AllOff|OS_Flag_Wait_AllOff]]## | ''(flags, mask)'' | Ожидаем сброса всех флагов по маске | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Flag_Wait_Off|OS_Flag_Wait_Off]]## | ''(flags, mask)'' | Ожидаем сброса хотя бы одного флага из маски | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Flag_Wait_AllOn_TO|OS_Flag_Wait_AllOn_TO]]## | ''(flags, mask, timeout)'' | Ожидаем установки всех флагов по маске с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Flag_Wait_On_TO|OS_Flag_Wait_On_TO]]## | ''(flags, mask, timeout)'' | Ожидаем установки хотя бы одного флага из маски с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Flag_Wait_AllOff_TO|OS_Flag_Wait_AllOff_TO]]## | ''(flags, mask, timeout)'' | Ожидаем сброса всех флагов по маске с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Flag_Wait_Off_TO|OS_Flag_Wait_Off_TO]]## | ''(flags, mask, timeout)'' | Ожидаем сброса хотя бы одного флага из маски с выходом по таймауту | {{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}}{{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Таймеры ===== ==== Таймеры задач ==== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Управление** |||| | ##[[osa:ref:allservices:OS_Ttimer_Run|OS_Ttimer_Run]]## | ''(time)'' | Запустить таймер текущей задачи на отсчет времени time. Флаг переполнения сбрасывается. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task_plus.png|Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности)}} | | ##[[osa:ref:allservices:OS_Ttimer_Break|OS_Ttimer_Break]]## | ''(qtimer)'' | Останавливаем таймер. Флаг переполнения устанавливается | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task_plus.png|Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности)}} | | ##[[osa:ref:allservices:OS_Ttimer_Wait|OS_Ttimer_Wait]]## | ''()'' | Ожидаем завершения счета таймера текущей задачи. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Ttimer_Delay|OS_Ttimer_Delay]]## | ''(delay)'' | (то же, что и ##[[osa:ref:allservices:OS_Delay|OS_Delay]]##) Выдержать задержку с применением таймера текущей задачи | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | **Проверка** |||| | ''[[osa:ref:description:data_types#_OST_TTIMER|_OST_TTIMER]] ''\\ ##[[osa:ref:allservices:OS_Ttimer_Get|OS_Ttimer_Get]]## | ''()'' | Получить оставшееся время счета (необходимо запрещать прерывания или приостанавливать счет) | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task_plus.png|Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности)}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Ttimer_Check|OS_Ttimer_Check]]## | ''()'' | Проверить, закончил ли таймер текущей задачи счет. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task_plus.png|Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности)}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Ttimer_IsRun|OS_Ttimer_IsRun]]## | ''()'' | Проверить, считает ли таймер текущей задачи | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task_plus.png|Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности)}} | | **Дополнительно** |||| | ##[[osa:ref:allservices:OS_Ttimer_Pause|OS_Ttimer_Pause]]## | ''()'' | Останавливаем таймер текущей задачи. Флаг переполнения утсанавливается. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task_plus.png|Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности)}} | | ##[[osa:ref:allservices:OS_Ttimer_Continue|OS_Ttimer_Continue]]## | ''()'' | Восстанавливаем счет таймера. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task_plus.png|Разрешается вызов из задачи и функций, вызываемых задачей (любой вложенности)}} | ~~UP~~ ==== Статические таймеры ==== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание/удаление** |||| | ##[[osa:ref:allservices:OS_Stimer_Alloc|OS_Stimer_Alloc]]## | ''(var_stimer_id)'' | Выделяет не занятый на данный момент времени таймер и возвращает его номер | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} | | ##[[osa:ref:allservices:OS_Stimer_Free|OS_Stimer_Free]]## | ''(stimer_id)'' | Помечает таймер как свободный | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Stimer_Found|OS_Stimer_Found]]## | ''()'' | Проверяет, есть ли свободный статический таймер | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}} | | **Управление** |||| | ##[[osa:ref:allservices:OS_Stimer_Run|OS_Stimer_Run]]## | ''(stimer_id, time)'' | Запустить таймер stimer_id на отсчет времени time. Флаг переполнения сбрасывается. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Stimer_Break|OS_Stimer_Break]]## | ''(qtimer)'' | Останавливаем таймер. Флаг переполнения устанавливается | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Stimer_Wait|OS_Stimer_Wait]]## | ''(stimer_id)'' | Ожидаем завершения счета таймера. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Stimer_Delay|OS_Stimer_Delay]]## | ''(stimer_id, delay)'' | Выдержать задержку с применением статического таймера stimer_id | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | **Проверка** |||| | ''[[osa:ref:description:data_types#_OST_STIMER|_OST_STIMER]] ''\\ ##[[osa:ref:allservices:OS_Stimer_Get|OS_Stimer_Get]]## | ''(stimer_id)'' | Получить оставшееся время счета (необходимо запрещать прерывания) | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Stimer_Check|OS_Stimer_Check]]## | ''(stimer_id)'' | Проверить, было ли переполнение. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Stimer_IsRun|OS_Stimer_IsRun]]## | ''(stimer_id)'' | Проверить, считает ли таймер | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | **Дополнительно** ||| | ##[[osa:ref:allservices:OS_Stimer_Pause|OS_Stimer_Pause]]## | ''(stimer_id)'' | Останавливаем таймер. Флаг переполнения утсанавливается. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Stimer_Continue|OS_Stimer_Continue]]## | ''(stimer_id)'' | Восстанавливаем счет таймера. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ==== Очередь таймеров ==== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание/Удаление** |||| | ##[[osa:ref:allservices:OS_Qtimer_Create|OS_Qtimer_Create]]## | ''(qtimer)'' | Добавляет qtimer в очередь активных таймеров. После создания таймер обнулен остановлен, флаг переполнения сброшен. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | ##[[osa:ref:allservices:OS_Qtimer_Delete|OS_Qtimer_Delete]]## | ''(qtimer)'' | Удаляет qtimer из очереди активных таймеров. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | **Управление** |||| | ##[[osa:ref:allservices:OS_Qtimer_Run|OS_Qtimer_Run]]## | ''(qtimer, time)'' | Запустить qtimer на отсчет времени time с момента вызова этого сервиса. Флаг переполнения сбрасывается. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Qtimer_Break|OS_Qtimer_Break]]## | ''(qtimer)'' | Останавливаем таймер. Флаг переполнения устанавливается | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Qtimer_Wait|OS_Qtimer_Wait]]## | ''(qtimer)'' | Ожидаем завершения счета таймера. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Qtimer_Delay|OS_Qtimer_Delay]]## | ''(qtimer, time)'' | Выдержать задержку с использованием таймера qtimer | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | **Проверка** |||| | ''[[osa:ref:description:data_types#_OST_QTIMER|_OST_QTIMER]] ''\\ ##[[osa:ref:allservices:OS_Qtimer_Get|OS_Qtimer_Get]]## | ''(qtimer)'' | Получить оставшееся время счета (необходимо запрещать прерывания) | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Qtimer_Check|OS_Qtimer_Check]]## | ''(qtimer)'' | Проверить, было ли переполнение. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Qtimer_IsRun|OS_Qtimer_IsRun]]## | ''(qtimer)'' | Проверить, считает ли таймер | {{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ===== Таймеры (устаревшие) ===== ==== Динамические таймеры ==== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Создание/Удаление** |||| | ##[[osa:ref:allservices:OS_Dtimer_Create|OS_Dtimer_Create]]## | ''(dtimer)'' | Добавляет dtimer в очередь активных таймеров. После создания таймер обнулен остановлен, флаг переполнения сброшен. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | ##[[osa:ref:allservices:OS_Dtimer_Delete|OS_Dtimer_Delete]]## | ''(dtimer)'' | Удаляет dtimer из очереди активных таймеров. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}} | | **Управление** |||| | ##[[osa:ref:allservices:OS_Dtimer_Run|OS_Dtimer_Run]]## | ''(dtimer, newtime)'' | Запустить dtimer на отсчет времени newtime с момента вызова этого сервиса. Флаг переполнения сбрасывается. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Dtimer_Break|OS_Dtimer_Break]]## | ''(dtimer)'' | Останавливаем таймер. Он остается активным, но не увеличивается при выполнении ##[[osa:ref:allservices:OS_Timer|OS_Timer]]##(). Флаг переполнения устанавливается. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Dtimer_Wait|OS_Dtimer_Wait]]## | ''(dtimer)'' | Ожидаем завершения счета таймера. | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | ##[[osa:ref:allservices:OS_Dtimer_Delay|OS_Dtimer_Delay]]## | ''(dtimer, delay)'' | Выдержать задержку с использованием динамического таймера dtimer | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | | **Проверка** |||| | ''[[osa:ref:description:data_types#_OST_DTIMER|_OST_DTIMER]] ''\\ ##[[osa:ref:allservices:OS_Dtimer_Get|OS_Dtimer_Get]]## | ''(dtimer)'' | Получить оставшееся время счета (необходимо запрещать прерывания) | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Dtimer_Check|OS_Dtimer_Check]]## | ''(dtimer)'' | Проверить, было ли переполнение. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Dtimer_IsRun|OS_Dtimer_IsRun]]## | ''(dtimer)'' | Проверить, считает ли таймер | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | **Дополнительно** |||| | ##[[osa:ref:allservices:OS_Dtimer_Pause|OS_Dtimer_Pause]]## | ''(dtimer)'' | Останавливаем таймер. Он остается активным, но не увеличивается при выполнении ##[[osa:ref:allservices:OS_Timer|OS_Timer]]##(). Флаг переполнения остается без изменений. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Dtimer_Continue|OS_Dtimer_Continue]]## | ''(dtimer)'' | Восстанавливаем счет таймера. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Dtimer_Update|OS_Dtimer_Update]]## | ''(dtimer, time)'' | Запустить таймер на отсчет времени time с момента последнего переполнения. Флаг переполнения сбрасывается. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Dtimer_Add|OS_Dtimer_Add]]## | ''(dtimer, addtime)'' | Добавить время к таймеру во время счета. Флаг переполнения остается без изменений. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Dtimer_IsActive|OS_Dtimer_IsActive]]## | ''(dtimer)'' | Проверить, есть ли таймер в списке активных таймеров. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ''bool ''\\ ##[[osa:ref:allservices:OS_Dtimer_IsStopped|OS_Dtimer_IsStopped]]## | ''(dtimer)'' | Проверить, остановлен ли таймер | {{osa:ref:attr_call_to.png|Использует системный таймер}} | ~~UP~~ ==== Статические таймеры старого типа ==== ^ Сервис ^ Аргументы ^ Описание ^ Свойства ^ | **Управление** |||| | ##[[osa:ref:allservices:OS_Oldtimer_Run8|OS_Oldtimer_Run8]]## | ''(timer8_id, time)'' | Запустить 8-разрядный таймер для отсчета | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Oldtimer_Run16|OS_Oldtimer_Run16]]## | ''(timer16_id, time)'' | Запустить 16-разрядный таймер для отсчета | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Oldtimer_Run24|OS_Oldtimer_Run24]]## | ''(timer24_id, time)'' | Запустить 24-разрядный таймер для отсчета | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Oldtimer_Run32|OS_Oldtimer_Run32]]## | ''(timer32_id, time)'' | Запустить 32-разрядный таймер для отсчета | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | ##[[osa:ref:allservices:OS_Oldtimer_Stop|OS_Oldtimer_Stop]]## | ''(timer_id)'' | Останавливаем таймер (при этом устанавливается флаг Timeout для этого таймера) | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | **Проверка** |||| | ''bool ''\\ ##[[osa:ref:allservices:OS_Oldtimer_Check|OS_Oldtimer_Check]]## | ''(timer_id)'' | Проверить, закончил ли таймер счет. | {{osa:ref:attr_call_to.png|Использует системный таймер}} | | **Ожидание** |||| | ##[[osa:ref:allservices:OS_Oldtimer_Wait|OS_Oldtimer_Wait]]## | ''(timer_id)'' | Ожидаем завершения счета таймера | {{osa:ref:attr_call_to.png|Использует системный таймер}}{{osa:ref:attr_call_task.png|Разрешен вызов только в контексте задачи}}{{osa:ref:attr_call_ct_sw.png|Переключает контекст}} | ~~UP~~