Система таймеров на ESP
Во всех прошивках ESP начиная от версии 627 используется система таймеров, позволяющая выполнять действия через определенное время и определенное количество раз не блокируя ресурсы ESP.
Основание для разработки
Допустим, надо 5 раз моргнуть светодиодной лентой в процессе игры.
Без системы таймеров есть 2 варианта реализации:
-
Отсчитывать количество морганий и время на сервере и на каждое загорание и погашение светодиодки отправлять по событию. Как итог получаем большую нагрузку на сервер, все устройства, получающие лишние события, WiFi сеть и Socket.
-
Отправлять 1 событие на моргание 5 раз и выставлять задержки в пределах одной алгоритмической линии. В этом случае ESP не может принимать события Socket.IO и выполнять что-либо кроме моргания светодиодки. (проверку сенсоров, управление лазерами, калибровку и др.)
Принцип работы
При системе таймеров есть возможность по 1 событию добавить в очередь задач всего 2 функции (загорание и погашение светодиодки) и установить данному таймеру следующие свойства:
- выполняемая функция
- время до первого выполнения
- интервал между повторениями
- количество повторений
- действие, выполняемое после последнего выполнения функции
Далее в процессе выполнения кода в цикле проверяются все функции, которые еще предстоит выполнить и сравнивается по времени работы контроллера, не пришло ли время выполнить функцию.
Posts
subscribe via RSS