GyverNTP + RTCLib (DS3231): по каким критерием считать полученное время-дата, как истинное и передать его (записать) в RTC?...

SoftFelix

✩✩✩✩✩✩✩
16 Фев 2020
24
4
Всем привет.

GyverNTP + RTCLib (DS3231)

Парни, подскажите, пожалуйста, по каким критериям считать полученное время-дата, как истинное и передать его (записать) в RTC?

Достаточно только проверять не нулевое значение после ntp.updateNow() ?
C++:
while (ntp.updateNow() != 0);

Как записать полученное точное время в RTC вроде понятно:
C++:
DateTime now(ntp.year(), ntp.month(), ntp.day(), ntp.hour(), ntp.minute(), ntp.second());
    rtc.adjust(now);
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,845
593
44
по каким критериям считать полученное время-дата, как истинное
Если имеется в виду проверка на целостность данных, то на сколько помнится, NTP не предусматривает такое.
Можно сделать проверку времени полученным через NTP и текущим временем в систем, если разница очень большая, то скорее всего получены неправильные данные.
 
  • Лойс +1
Реакции: SoftFelix

SoftFelix

✩✩✩✩✩✩✩
16 Фев 2020
24
4
@Геннадий П, нет, не целостность, а именно корректность данных. Т.е. что получено правильное время-дата и этими данными (с учётом GMT) можно настроить микросхему RTC.
 

vortigont

★★★★★✩✩
24 Апр 2020
916
491
Saint-Petersburg, Russia
В esp8266/esp32 есть встроенные в ядро средства работы с датой/веременем и синхронизацией с ntp, в том числе вызов коллбэк функиий по событию установки времени. Под эти платформы использовать сторонние либы - моветон. Проверка истинности времени полученного от нтп не имеет смысла - если вы обращаетесь к серверу за временем, значит вы ему уже доверяете. В ответе сервера есть параметр stratum где сервер сам сообщает насколько "достоверным" он себя считает.
 

SoftFelix

✩✩✩✩✩✩✩
16 Фев 2020
24
4
У меня к ESP32 уже подключены DS3231. Так что работаю с ними. Изначально был вопрос по библиотеке GyverNTP и каким образом правильно проверять статус после её вызова.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,845
593
44
Изначально был вопрос по библиотеке GyverNTP и каким образом правильно проверять статус после её вызова.
Не забивайте мозги и проверяйте разницу между полученным временем и текущим в системе(RTC). Да, придется один раз поставить вручную время, либо установить без учета разницы.
Если не ошибаюсь, раньше даже Windows ошибку выдавал при синхронизации времени, если была большая разница.
 

vortigont

★★★★★✩✩
24 Апр 2020
916
491
Saint-Petersburg, Russia
GyverNTP и каким образом правильно проверять статус после её вызова
статус чего? Сатус самой библиотеки что она вам не врёт или то что вам не попался нтп сервер который врёт намеренно? Опросите 3 разрых сервера и выберите 2 ответа с минимальной разницей.