RingBufCPP
Кольцевой буфер C++ для безопасной передачи данных между прерываниями и основным циклом без выделения памяти в runtime
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:faf4975f6f143ea2b5bce0a570c873bcf0be81835fca78321a115fef0d97bcb9RingBufCPP-1.3.0-faf4975f.zipОписание
Кольцевой буфер на C++ для захвата данных в прерываниях и асинхронной обработки в основном цикле. Особенно полезен, когда нужно быстро записать состояния выводов, временные метки или другие события прямо в ISR, а потом спокойно их разобрать в loop(), когда микроконтроллер свободен. Буфер работает с любыми типами данных — целые числа, дроби, структуры, объекты — благодаря С++ шаблонам, без странного приведения указателей. Конкурентность уже встроена, так что операции внутри прерывания безопасны. Вся память выделяется на этапе компиляции, кучу не трогает. Поддерживает AVR и ESP8266, и обычно работает на других платформах, если реализовать пару макросов для атомарности.