GyverLamp
GyverLamp copied to clipboard
проблема с таймингом без интернета
При отсутствии интернета вызов метода timeClient.update();
вешает обработку тика эффекта на секунду. В итоге нет реакции на изменение скорости и т.п.
В библиотечном методе NTPClient::forceUpdate()
есть кусок кода:
byte timeout = 0;
int cb = 0;
do {
delay ( 10 );
cb = this->_udp->parsePacket();
if (timeout > 100) return false; // timeout after 1000 ms
timeout++;
} while (cb == 0);
В итоге при каждом выполнении цикла эффекта мы попадаем на таймаут, а так как используется delay
, а не millis
, то мы попадаем с эффектами лампы.
Надо как-то это учесть в работе самой лампы и возможно стоит как-то переписать это на millis()