LionTask
Кооперативный планировщик задач для ESP8266 и AVR на основе run-to-completion модели
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:24f29bc52d0c73b740a42a20c31842ba058ff6eb4b6fb89b29a94f6a01ea649aLionTask-1.0.0-24f29bc5.zipОписание
Простой кооперативный планировщик задач для ESP8266 и классических AVR-микроконтроллеров. Вместо вытесняющей многозадачности каждая задача работает без прерываний до завершения на основном контексте — это означает, что если задача зависнет, зависнет всё. Вы вызываете LionTask::Loop() из loop() и регистрируете задачи, наследуя LionTimerTask, LionShortTimerTask, LionCrudeTimerTask или LionCriticalTask с переопределением TaskInnerBody(). На ESP8266 можно обойтись без наследования, используя LionSimpleTask для запуска lambda-функции напрямую. Критические задачи выполняются не только в основном цикле, но и во время вызовов Yield()/Delay(). На ESP32 нужна настоящая FreeRTOS-версия (LionRtosTask), здесь кооперативный подход просто не имеет смысла. Зависит от LionArray.