SnapshotBus
Канал обмена данными между задачами RTOS по принципу seqlock: один издатель пишет состояние, много читателей получают снимки
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:01b447848b7a43bd490170d79412e1e90fb6e194d9ceba4903c03371ac3f01e6SnapshotBus-1.3.0-01b44784.zipОписание
Канал передачи данных между задачами в RTOS, построенный по принципу seqlock — одновременно пишет в канал один издатель, а читать может много потребителей. Вместо очередей, которые нужны для потоков событий, SnapshotBus хранит просто последнее состояние и раздаёт его снимки. Ядро библиотеки не выделяет память динамически и не имеет зависимостей. В комплекте есть InputModel для обнаружения фронтов, а также встроенные в SnapshotRTOS публикаторы (start_frame_publisher, start_frame_publisher_cb), которые автоматически запускают отдельную задачу и выбирают, отправлять ли данные при изменении или по расписанию — heartbeat. Работает на ESP32, ESP8266, SAMD (MKR/Zero). SnapshotRTOS требует FreeRTOS, тестирован в основном на ESP32, прочие платформы могут компилироваться, но не гарантированы.