You are here

FreeRTOS ИПП: xQueueSelectFromSet()

Перевод может содержать ошибки. Читайте первоисточник: FreeRTOS Queue Set API Functions - xQueueSelectFromSet()

Назад: [xQueueRemoveFromSet()] Вверх: [ИПП: Наборы очередей] Вперёд: [xQueueSelectFromSetFromISR()]

 

xQueueSelectFromSet()

Функция объявляется в файле queue.h

QueueSetMemberHandle_t xQueueSelectFromSet
                       (
                             QueueSetHandle_t xQueueSet,
                             const TickType_t xTicksToWait
                        );

Настройка configUSE_QUEUE_SETS в файле FreeRTOSConfig.h должна быть установлена в 1 для включения в код функций работы с наборами очередей.

Функция xQueueSelectFromSet() выбирает из набора очередей очередь или семафор, который содержит данные (в случае очереди) или доступен для взятия (в случае семафора). xQueueSelectFromSet() позволяет блокировать задачу на операции чтения из всех очередей и получении семафоров в наборе очередей одновременно.

Эту функцию нельзя вызывать из контекста прерывания. Для вызова из прерывания существует похожая функция xQueueSelectFromSetFromISR().

Параметры

 xQueueSet Указатель на набор очередей, на котором задача потенциально может быть заблокирована.
xTicksToWait Максимальное время (в тиках ОСРВ), в течение которого задача может находиться в заблокированном состоянии (при выполнении других задач ОСРВ), ожидая пока один из членов набора очередей не будет готов к выполнению операции чтения из очереди или взятия семафора.

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

xQueueSelectFromSet() возвращает указатель на очередь (приведённый к типу QueueSetMemberHandle_t), являющуюся членом набора очередей, которая содержит данные, или указатель на семафор (также приведённый к типу QueueSetMemberHandle_t), являющийся членом набора очередей, который доступен для взятия, или NULL, если таких очередей или семафоров не появилось до истечения указанного времени блокировки.

Пример использования

Пример использования находится на странице xQueueCreateSet() документации.

Hobby's category: