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