OSA : OS_Squeue_Wait_TO

OS_Squeue_Wait_TO (squeue, os_smsg_type_var, timeout)

Разрешен вызов только в контексте задачиПереключает контекстСервис использует таймаут

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

Для использования очередей коротких однобайтовых сообщений в файле OSAcfg.h должна быть определена константа OS_ENABLE_SQUEUE.

Для PIC16 переменная squeue может размещаться в памяти только в bank0 или bank1

Разрешен вызов:

Только из задачи

Параметры функции:

squeue Дескриптор очереди коротких сообщений. Переменная типа OST_SQUEUE.
os_smsg_type_var Переменная типа OST_SMSG, куда будет помещено короткое сообщение
timeout Время ожидания. Задается в системных тиках - периодах вызова сервиса OS_Timer

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

таймаут Если вышли из ожидания по таймауту, то сервис OS_IsTimeout возвратит true

Пример вызова:

OST_SQUEUE squeue;
 
void Task (void)
{
    OST_SMSG data;
    for (;;) {
        /*...*/
        // В течение 100 системных тиков ждем короткое сообщение
        OS_Squeue_Wait_TO (squeue, data, 100);
        if (!OS_IsTimeout()) {
            // Приняли сообщение, обрабатываем его
            switch (data) {
            /*...*/
            }
        }
        /*...*/
    }
}

Old style name

OS_WaitQSMsgTimeout

См. также