queueToSignal Helper

template<typename T, size_t MaxDeps = 8, typename Filter = std::not_equal_to<T>, size_t HistorySize = 0>
Status RxESP32::Helpers::Utility::queueToSignal(QueueHandle_t &queue, Signal<T, MaxDeps, Filter, HistorySize> &target)

Connect FreeRTOS queue to Signal.

Registers a queue with the dispatcher so that items from the queue automatically update the target Signal. Non-blocking read.

Since

v0.1.0

QueueHandle_t data_queue = xQueueCreate(10, sizeof(int));
Signal<int> data_signal(0);

queueToSignal(data_queue, data_signal);
// Now queue items automatically update data_signal

Note

  • Requires RXESP32_ENABLE_QUEUE_TO_SIGNAL to be enabled.

  • Queue is read non-blocking (0 timeout).

  • Dispatcher polls registered queues.

Template Parameters:
typename T

Value type.

Parameters:
QueueHandle_t &queue

FreeRTOS queue handle.

Signal<T, MaxDeps, Filter, HistorySize> &target

Target Signal to update.

Returns:

Status::Ok on success, error code otherwise.

See Also