Radig WebServer ETH_M32_EX_SOFT - NTP Zeitumwandlung

OP #1050601
Lesenswert?

Da ich aus dem vom NTP Server gelieferten Zeitstempel mehr als nur die 
Uhrzeit rausholen will, habe ich ein paar Zeilen Programmcode 
zusammengestrickt welche diese 32Bit Zahl in ein für Menschen 
verständliches Format umwandeln.

Als Vorlage setze ich auf die Funktionen gmtime und localtime der 
Standardbibliothek auf.

Die zwei wichtigsten Funktionen und die Unterschiede zu ihren "Eltern".
1
struct tm;
Da in der AVR-LibC keine entsprechende Struktur definiert ist habe ich 
diese selbst definiert.
1
struct tm *gmntptime(unsigned long ntptime);
Liefert einen Zeiger auf eine statische struct tm zurück.
In der Struktur stehen nach dem Aufruf das Datum und die Uhrzeit im 
UTC-Format.
Im Unterschied zur Vorlage "gmtime(time_t *t)" wird kein Zeiger auf den 
Zeitstempel übergeben, sondern der Wert.
1
struct tm *localntptime(unsigned long ntptime);
Liefert einen Zeiger auf eine statische struct tm zurück.
In der Struktur stehen nach dem Aufruf das Datum und die Uhrzeit der 
Lokalen Zeitzone. Sommer/Winterzeitumschaltung wird berücksichtigt, 
wobei das Verhalten and den Umschalttagen rund um die Umschaltzeitpunkte 
noch nicht genauer untersucht worden ist.
Im Unterschied zur Vorlage "localtime(time_t *t)" wird kein Zeiger auf 
den Zeitstempel übergeben, sondern der Wert.

Nochmaliger Hinweis:
gmntptime und localntptime liefern beide IMMER einen Zeiger auf den 
gleichen Speicherbereich zurück.

 A C H T U N G :
      In ntp.c muss in der Funktion ntp_get() die Zeile

      ntp->rx_timestamp += GMT_TIME_CORRECTION; //  UTC +1h

      auskommentert werden !!!

Viel Spass.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren