Also see our previous post FreeRTOS task queue minimal example which also has examples for how to send & receive with a queue. The post you’re currently viewing is just about xQueueCreateStatic()
enum class MQTTTaskType : uint8_t { SendStatus = 0, SendInfo }; // This struct will be inserted into the queue struct MQTTTask { MQTTTaskType task; // The type of work that is requested from the received // TODO add your custom fields here if requred }; constexpr size_t MQTT_TASK_QUEUE_LENGTH = 6; static QueueHandle_t mqttTaskQueue; static StaticQueue_t mqttTaskQueueStatic; static uint8_t mqttTaskQueueStorageArea[ MQTT_TASK_QUEUE_LENGTH * sizeof(MQTTTask) ]; void setup() { // Create task queue mqttTaskQueue = xQueueCreateStatic( MQTT_TASK_QUEUE_LENGTH, sizeof(MQTTTask), mqttTaskQueueStorageArea, &mqttTaskQueueStatic ); }