ntptime — prosty klient NTP

Ten moduł udostępnia niewielkiego klienta protokołu Network Time Protocol (NTP), przydatnego do pobierania bieżącego czasu UTC z internetowego serwera czasu oraz opcjonalnie do ustawiania wbudowanego zegara czasu rzeczywistego. Wykonuje pojedyncze żądanie UDP do serwera NTP i dekoduje zwrócony 64-bitowy znacznik czasu.

Ten moduł wymaga działającego połączenia sieciowego. Jego 32-bitowy znacznik czasu przesyłany w sieci jest automatycznie korygowany pod kątem przepełnienia NTP w 2036 roku, dzięki czemu implementacja pozostaje poprawna aż do lutego 2160 roku.

Funkcje

ntptime.time() int

Odpytuje skonfigurowany serwer NTP (host) i zwraca bieżący czas UTC jako całkowitą liczbę sekund od epoki MicroPython.

Epoka MicroPython jest wykrywana w czasie działania za pomocą time.gmtime(). Obsługiwane są zarówno epoka 1970 (Unix), jak i 2000; każda inna epoka powoduje zgłoszenie wyjątku Exception.

Błędy sieciowe są propagowane do wywołującego; gniazdo bazowe jest zawsze zamykane przed zwróceniem sterowania.

ntptime.settime() None

Pobiera bieżący czas za pomocą time() i odpowiednio ustawia wbudowany RTC poprzez machine.RTC.

Należy pamiętać, że MicroPython nie obsługuje stref czasowych: RTC jest zawsze ustawiany w UTC.

Stałe

ntptime.host: str

Nazwa hosta serwera NTP do odpytania. Domyślnie "pool.ntp.org". Można ją nadpisać w czasie działania, np. ntptime.host = "time.google.com".

ntptime.timeout: int

Limit czasu gniazda w sekundach stosowany do żądania UDP NTP. Domyślnie 1. Należy zwiększyć w wolnych sieciach lub sieciach o dużym opóźnieniu.