GyverNTP не работает проверка онлайна.

selan61

✩✩✩✩✩✩✩
18 Сен 2023
5
1
Добрый день. Изучаю работу GyverNTP и столкнулся с тем что не работает проверка онлайна или я делаю что то не так. Запускаю пример GyverNTP_demo и отключаю на роутере доступ для ESP8266. Проверяю ежесекундно WiFi.status() и NTP.online() и NTP.statusChanged(). WiFi.status() меняется от CONNECTED на DISCONNECTED и снова CONNECTED, NTP.online() и NTP.statusChanged() не реагируют. Глянул библиотеку, вроде написано всё правильно, но не работает. Может кто подскажет, в чем причина.
C++:
----------------------------------- NTP.online(): 1
WiFi.status(): 3
NTP.toString() 12.02.2025 18:57:36
NTP.timeToString() 18:57:36
NTP.dateToString() 12.02.2025
12-2-2025
18:57:36
----------------------------------- NTP.online(): 1
WiFi.status(): 6
NTP.toString() 12.02.2025 18:57:37
NTP.timeToString() 18:57:37
NTP.dateToString() 12.02.2025
12-2-2025
18:57:37
----------------------------------- NTP.online(): 1

----------------------------------- NTP.online(): 1
WiFi.status(): 6
NTP.toString() 12.02.2025 18:57:50
NTP.timeToString() 18:57:50
NTP.dateToString() 12.02.2025
12-2-2025
18:57:50
----------------------------------- NTP.online(): 1
WiFi.status(): 3
NTP.toString() 12.02.2025 18:57:51
NTP.timeToString() 18:57:51
NTP.dateToString() 12.02.2025
12-2-2025
18:57:51
----------------------------------- NTP.online(): 1
 

selan61

✩✩✩✩✩✩✩
18 Сен 2023
5
1
Если я вас правильно понял, период опроса сервера по умолчанию 1 час, и когда библиотека увидит что сервер не ответил, появится ошибка приема синхронизации, тогда и упадет флаг NTP.online(), а флаг NTP.statusChanged() поднимется. Так? В таком случае для оперативного отслеживания коннекта, надо делать синхронизацию хотя бы раз в минуту и в этом случае смысл асинхронного режима NTP теряется. Какая то ерунда получается или асинхронный режим или проверка онлайна, а вместе они не работают. Неужели так задумано или недоработка?
 

Сотнег

★★★★★★★
15 Янв 2020
4,498
1,533
@selan61,
я не знаю, какая у автора была задумка.
Он сам предусмотрел в коде, чтобы не беспокоить NTP-сервер чаще, чем раз в пол часа.
Как в этот подход укладывается "проверка онлайна" - не догадываюсь даже.
 

sqrtly

✩✩✩✩✩✩✩
18 Фев 2025
1
0
@selan61,
Проблема в том, что NTP.online() и NTP.statusChanged() не реагируют на отключение Wi-Fi. Видимо, библиотека не обновляет статус NTP при потере сети.

Попробуй вручную вызывать NTP.update() после изменения состояния Wi-Fi

@selan61,
Если не поможет, обнови библиотеку или проверь доступность NTP-сервера.