OS_Queue_Send_TO (queue, message, timeout)
OS_Queue_Send_I (queue, message, timeout)
Отправляем сообщение с содержимым message в очередь queue. Если очередь переполнена, то в течение заданного времени ждем, когда появится свободное место. Если так и не дождались, то выходим из ожидания по таймауту.
Для использования очередей сообщений в файле OSAcfg.h должна быть определена константа OS_ENABLE_QUEUE.
Только из задачи
queue |
Дескриптор очереди сообщений. Переменная типа OST_QUEUE. |
message |
указатель на тело сообщения (тип OST_MSG) |
timeout |
Время ожидания. Задается в системных тиках - периодах вызова сервиса OS_Timer |
таймаут |
Если вышли из ожидания по таймауту, то сервис OS_IsTimeout возвратит true |
OST_QUEUE queue; void Task (void) { static char Data[5]; for (;;) { /*...*/ // В течение 100 тиков пытаемся отправить сообщение в очередь. OS_Queue_Send_TO (queue, Data, 100); if (OS_IsTimeout()) { // Сообщение не отправлено /*...*/ } /*...*/ } }
OS_SendQMsgTimeout