• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Модификация/исправление бага в библиотеке 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, из соображений совместимости.
 
Сверху Снизу