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