-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: [C/C++] Raspi Systemzeit: aus Internet geupdated oder von File gelesen und expoliert?

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.431

    [C/C++] Raspi Systemzeit: aus Internet geupdated oder von File gelesen und expoliert?

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    hallo,
    wie ist das mit der Raspi Systemzeit:
    wie kann ich aus einem C/C++ Programm feststellen, ob die derzeit ermittelte Systemzeit übers Internet geupdated wurde oder ob (ohne Internet) ein alter gesicherter Wert von einem SD-File gelesen und expoliert wurde?

    Gibt es so etwas wie ein Raspi system flag wie
    _SYSTEMTIME_UPDATED_ // (1==current time updated, 0==last time base read from file)


    Oder kann man selber auf andere Weise per Software feststellen, wie "zuverlässig" die momentane System-Zeit ist ?
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    59
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von HaWe Beitrag anzeigen
    Oder kann man selber auf andere Weise per Software feststellen, wie "zuverlässig" die momentane System-Zeit ist ?
    Du kannst die lokale Zeit mit der Zeit im Internet vergleichen.
    Hört sich jetzt blöd an.

    Aber wenn du kein Internet hast, kann die aktuelle Zeit nicht aus dem Internet stammen.
    Andernfalls kannst du direkt vergleichen ob die Zeit stimmt.

    Neben dem Internet, bekommt man die Atomzeit auch über einen DCF 77 Empfänger oder vom GPS, sofern vorhanden.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.431
    das ist zwar richtig - aber es könnte ja auch sein, dass die letzte Systemzeit vor - sagen wir - 2 Stunden aus dem Internet geholt wurde, und nur momentan kein Internet vorhanden ist. Trotzdem wird sie dann stimmen.

    Extra Hardware ist momentan für diese Fragestellung keine Option.

    Immerhin ist es ein erster Schritt mit dem Versuch der Internet-Zeitabfrage -
    wie mache ish das denn genau (C/C++ Code), was du vorschlägst?
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    599
    Hallo,

    laut dieser Doku
    http://manpages.ubuntu.com/manpages/....2freebsd.html
    müsste bei ntp_gettime() der Rückgabewert TIME_ERROR kommen, wenn
    Clock not synchronized
    Ob das sicher funktioniert, kann ich nicht sagen. Auf der Kommandozeile sehe ich bei meinem Raspi ein paar Merkwürdigkeiten.

    Ein
    timedatectl status
    liefert falscherweise "NTP enabled : no" und erst nach einiger Laufzeit "NTP synchronized : yes".

    Sicherer scheint ein
    ntpq -p
    wenn da Einträge mit einem (Sekunden-)Wert in der "when" Spalte stehen, hat er mit diesem Server gesprochen.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.431
    sorry, verstehe ich nicht ganz...

    könntest du das bitte mal in C/C++ Code beschreiben?

    so in der Art?

    Code:
    #include <stdio.h> 
    #include <sys/timex.h> 
    
    int main() {
       // ...?
       // ...?
      printf("Zeit zuletzt aktualisiert per Internet (ja/nein) %d", ntp_gettime() );
    
      getchar();
      return 0;
    
    }

    grrrrr... wieder keine Code-Tags...


    irgendwas scheint aber noch zu fehlen...:
    error: too few arguments to function ntp_gettime()




    ein timex t als Argument nimmt er auch nicht:

    timex t;
    ..
    printf("Zeit zuletzt aktualisiert per Internet (ja/nein) %d", ntp_gettime(t) );
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    599
    Ja, da bist du schon auf dem richtigen Weg. Die Klammern habe ich geschrieben, um zu zeigen, dass das eine Funktion ist. Da müssen schon die Parameter rein.

    Beispiel ist C++ ! Übersetzen mit g++ -std=c++11
    Code:
    #include <sys/timex.h>
    #include <iostream>
    
    using namespace std;
    
    int main()
    {
        ntptimeval dummy;
    
        int result = ntp_gettime(&dummy);
    
        if (result == TIME_OK) {
            cout << "Hat Netzzeit" << endl;
        }
        else if (result == TIME_ERROR) {
            cout << "Keine Netzzeit" << endl;
        }
        else {
            cout << "Was anderes" << endl;
        }
    
        return 0;
    }
    Nur ob das sich auch richtig verhält, wenn keine Netzzeit da ist, darfst du selber ausprobieren.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.431
    danke, c++11 geht schlecht, aber g++ nehme ich auch immer schon!
    ich probiers mal mit dem normalen g++ aus...

    - - - Aktualisiert - - -

    Haha...!
    sieht verdammt gut aus...
    Hat Netzzeit


    jetzt wird mal abgeklemmt und neu gestartet... 8-)

    - - - Aktualisiert - - -

    hmmmm... schade.

    Auch nach runterfahren, Strom aus, Wifi raus, Strom rein, Neustart....

    auch ohne inet sagt er leider wieder

    Hat Netzzeit
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    599
    Da bin ich jetzt leider überfragt. Notfalls musst du die Sourcen von ntpq durchsuchen. Oder das Programm aus deinem aufrufen und die Ausgabe zerlegen ...

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.431
    -std=c++11
    hab ich jetzt auch ausprobiert, macht aber keinen Unterschied, angeblich immer "hat Netzzeit"

    Vlt hat noch wer eine Idee?

    Vielen Dank aber für deine Hilfe!
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    2.431
    wie kann ich von einem C/C++ Programm aus feststellen, ob eine Internetverbindung besteht (z.B. irgendwas anpingen) ?
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 63
    Letzter Beitrag: 18.02.2016, 08:43
  2. MATLAB Simulink-Stateflow: dll File aus mdl File erstellen
    Von danionbike im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 11.01.2008, 18:24
  3. Unsere Forumregeln - Sollte man mal gelesen haben
    Von Frank im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 23.09.2005, 20:09
  4. HEX FILE MIT ODER OHNE EEPROM??
    Von sebastian.heyn im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 15.06.2005, 16:16
  5. asm Code in Hex oder Bin File wandeln?
    Von Octi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 03.11.2004, 22:46

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •