OS_Squeue_Wait_TO (squeue, os_smsg_type_var, timeout)
Ожидаем сообщение из очереди squeue в течение заданного времени. Если так и не дождались, то выходим из ожидания по таймауту.
Для использования очередей коротких однобайтовых сообщений в файле OSAcfg.h должна быть определена константа OS_ENABLE_SQUEUE.
Только из задачи
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) { /*...*/ } } /*...*/ } }
OS_WaitQSMsgTimeout