очередь отправки данных
- Войдите на сайт для отправки комментариев
Здравствуйте.
Учусь, решил сам сделать небольшой проект.
Мой устройство esp32s подключается к Wi-Fi, раз в 5 минут, отправляет данные на сервер :тех информация, время и показания.
Проблем нету, сервер принимает GET запрос, сравнивает пару id и пароль. Если в базе есть и связка верна разрешает добавление данных в базу данных .
Бывает что нету интернета. А данные терять нельзя.
Сервер не отвечает, esp32s это видит и "ругается".
Как организовать добавление в очередь и отправку этих данных после появления линка ?
Думаю готового решения не найду, но подскажите пожалуйста- в какую сторону "копать" ?
Может есть смысл в такие моменты данные записывать в eeprom (у esp32s чуть другой) ?
уж очень не хочется терять данные ..
Алгоритм и т.п
Look for FIFO on Google
Спасибо за наводку
Заодно и LIFO проштудируй, пригодится.
Там ведь FreeRTOS, всё уже сделано за нас.
Сначала создаете очередь xQueueCreate, без этого ни как. Некуда отправлять и читать будет.
Отправляете сообщение, вызвав xQueueSend, не забывайте проверять возвращаемое значение, если очередь не обрабатывается (не вызывается xQueueReceive) она переполнится, можете при вызове xQueueSend получить результат не равный pdPASS.
Получить количество элементов в очереди можете через uxQueueMessagesWaiting или просто вызовите xQueuePeek, если вернул pdTRUE значит сообщение из очереди получили, но оно ещё там (в очереди) осталось.
Обработали успешно, выполните xQueueReceive и этого сообщения сообщения в очереди больше нет.
Look for FIFO on Google
Проще посмотреть на подмножество - кольцевой буффер. Вот, например, вариант реализации - http://we.easyelectronics.ru/Soft/kolcevoy-bufer-na-s-dlya-mk.html