OSA : OS_Smsg_Send_TO

OS_Smsg_Send_TO (smsg, smessage, timeout)
OS_Smsg_Send_I (smsg, smessage, timeout)

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

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

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

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

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

smsg Дескриптор короткого сообщения. Переменная типа OST_SMSG
smessage Тело отправляемого сообщения (тип OST_SMSG)
timeout Время ожидания. Задается в системных тиках - периодах вызова сервиса OS_Timer

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

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

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

OST_SMSG smsg;
 
void Task (void)
{
    for (;;) {
        /*...*/
        OS_Smsg_Send_TO (smsg, (OST_SMSG)15, 100); // В течение 100 тиков пытаемся
                                                      // отправить сообщение 0xF
        if (OS_IsTimeout()) {
            // Сообщение не отправлено
            /*...*/
        }
        /*...*/
    }
}

Old style name

OS_SendSMsgTimeout

См. также