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