Модификация/исправление бага в библиотеке NTP-master

SashoTM

New member
В библиотеке NTP-master, автор Stefan Staub, имеется неприятный баг, с которым мне пришлось столкнуться. Функция begin(), в случае невозможности соединения с ntp-сервером, уходит в бесконечный цикл.
Для исправления бага функция begin() изменена, с добавлением счетчика количества попыток, после заполнения которого, попытки связаться с сервером прекращаются и функция возвращает 'false', для чего изменен и ее тип с 'void' на 'bool'. В случае успешного соединения и получения ответа, возвращается 'true'. Количество попыток задается как параметр, типа uint8_t, при вызове функции.
Для сохранения совместимости, добавлена безаргументная одноименная функция, при которой количество попыток зафиксировано и равно 255.

Для коррекции бага достаточно заменить приложенными файлами NTP.h и NTP.cpp из архива NTP, оригинальные файлы в библиотеке.
 

Вложения

enjoynering

Well-known member
Зачем вы используете эту древнюю копипасту? С версии v2.7 Arduino ESP8266 появилась нативная подержка NTP протокола из lwIP. Время с сервера получаем 3-я строчками кода!
 

SashoTM

New member
В конкретном случае мне пришлось использовать более старую версию, в частности 2.4.2, из соображений совместимости.
 
Сверху Снизу