Available Languages?:

OSA : OS_Smsg_Wait_TO

OS_Smsg_Wait_TO (smsg, os_smsg_type_var, timeout)

Разрешен вызов только в контексте задачи

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

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

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

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

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

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

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

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

OST_SMSG button_smsg;
 
void Task (void)
{
    OST_SMSG smessage;
    for (;;) {
        /*...*/
        // В течение 100 тиков ждем сообщение от клавиатуры
        OS_Smsg_Wait_TO (button_smsg, smessage, 100);
        if (!OS_IsTimeout()) {       // Если оно пришло,
            switch (smessage) {      // то обрабатываем сообщение
            /*...*/
            }
        }
        /*...*/
    }
}

Old style name

OS_WaitSMsgTimeout

См. также

 
osa/ref/allservices/os_smsg_wait_to.txt · Последние изменения: 07.10.2010 13:53 (внешнее изменение)
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki