Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   .: Atomuhr :. (https://www.delphipraxis.net/57385-atomuhr.html)

ichbins 21. Nov 2005 15:01

Re: .: Atomuhr :.
 
hmmm... bei der Version ohne XPStyle ist der XPStyle dabei...

Die Komponente xpman ist nämlich garnicht so wichtig für den XPStyle. Der XPStyle ist in wirklichkeit in einer res-Datei vorhanden, die per Unit xpman eingebunden wird. Du musst diese Unit aus den Uses rausnehmen.

zum Link: geh einfach auf luckies homepage http://www.luckie-online.de und such dir das Programm raus.

St.Pauli 21. Nov 2005 16:10

Re: .: Atomuhr :.
 
Zitat:

Zitat von Chrissi91
Zitat:

Zitat von Matze
Wenn man sich die Atomzeit aus dem Internet holt, nimmt die Übertragung ja ein wenig Zeit in Anspruch. Dann müsste es doch so sein, dass die Zeit, die dein Programm verarbeitet etwas nach geht, oder ist dies nicht der Fall?

Ja, aber das ist bei jedem Rechner unterschiedlich ;) Bei einem 56 K Modem und einem Pentium 1 Rechner müsste ich schon 3 Sekunden dazu rechnen ;) bei einem 3,6 GHz Rechner mit DSL 6000 sinds aber nur ein paar 100stel Sekunden ;)

Du darfst die Zeit nicht schätzen, du musst sie messen...

Tubos 21. Nov 2005 16:19

Re: .: Atomuhr :.
 
Zitat:

Ja, aber das ist bei jedem Rechner unterschiedlich Bei einem 56 K Modem und einem Pentium 1 Rechner müsste ich schon 3 Sekunden dazu rechnen bei einem 3,6 GHz Rechner mit DSL 6000 sinds aber nur ein paar 100stel Sekunden
Was hat die Round Trip Time mit der Rechengeschwindigkeit des sendenden Rechners zu tun?
Und mit der Bandbreite hat sie nicht direkt etwas zu tun.

Am besten verwendest du NTP, das Protokoll enthält einen Algorithmus der unabhängig von der Pingzeit eine genaue Synchronisierung ermöglicht. Ich glaube, bei den Indys ist eine NTP-Komponente dabei.

hardy1234 19. Feb 2006 06:27

Re: .: Atomuhr :.
 
Zitat:

Zitat von Tubos
Zitat:

Ja, aber das ist bei jedem Rechner unterschiedlich Bei einem 56 K Modem und einem Pentium 1 Rechner müsste ich schon 3 Sekunden dazu rechnen bei einem 3,6 GHz Rechner mit DSL 6000 sinds aber nur ein paar 100stel Sekunden
Was hat die Round Trip Time mit der Rechengeschwindigkeit des sendenden Rechners zu tun?
Und mit der Bandbreite hat sie nicht direkt etwas zu tun.

Am besten verwendest du NTP, das Protokoll enthält einen Algorithmus der unabhängig von der Pingzeit eine genaue Synchronisierung ermöglicht. Ich glaube, bei den Indys ist eine NTP-Komponente dabei.

Naja, den Indys trau ich auch nicht immer. Man kann auch die Internetzeit 20mal holen und den Mittelwert der Abfragezeit bilden. Das kann man dann durch synctime:= synctime + InetTimeDiff div 2 errechenen. Anders machen das die Indys auch nicht.

T3rm1n4T0r 19. Feb 2006 17:18

Re: .: Atomuhr :.
 
Ich frage mich, wie man das Atomuhr nennen kann. Wenn du die Zeit von irgendeinem Server abfragst, dann hat man doch immer eine gewisse Verzögerung. Auch wenn das nur 13 ms sind, so sind das bei einer Atomuhr doch recht viel.

Cöster 4. Jul 2006 14:39

Re: .: Atomuhr :.
 
Zitat:

Zitat von Chrissi91
Zitat:

Zitat von Jelly
Zitat:

Zitat von Chrissi91
Delphi-Quellcode:
edit1.text:=IdHTTP1.Get('http://mlutime.uni-halle.de/cgi-bin/meinberg.cgi');
label1.caption:=copy(edit1.Text,447,10);
label2.caption:=copy(edit1.Text,458,8);

Was machst Du denn wenn die Uni aus Halle morgen eine neue Seite mit neuem Layout ins Netz stellt. Meinst du wirklich dass dann Datum ab Position 447 und Zeit ab 458 zu finden ist. :gruebel:

Ganz einfach, das System nutze ich schon seit Jahr ... da hat sich noch nie etwas geändert ;)

Darauf würde ich mich aber nicht unbedingt verlassen. Mach's doch so, dann kannst du dir immer sicher sein:
Delphi-Quellcode:
i:=0;
repeat
 i:=i+1;
until (Edit1.Text[i+2]=':') and (Edit1.Text[i+5]=':');
Label2.Caption:=Copy(edit1.Text,i,8);

Luckie 4. Jul 2006 14:40

Re: .: Atomuhr :.
 
Und warum wird nicht die Indy Komponente genommen, die direkt die Zeit von einem Zeitserver holt?

negaH 4. Jul 2006 16:07

Re: .: Atomuhr :.
 
Interessantes Thema !

1.) müssen wir uns fragen was wir mit dieser Atomzeit genauerer machen wollen als es schon ist. Man kann davon ausgehen das auf heutigen Rechnern die Zeit durch das BIOS "gemessen" wird. Das ist dann ein RTC Chip der mit ca. 1.6MHz getaktet wird. Dieser Quartz hat eine Ungenauigkeit von +-10ppm. Das ergäbe hoch gerechnet eine Ungenauigkeit von +-1 Sekunde innerhalb von 44.4 Stunden. Wollen wir es 100'tel Sekunden genau also dann 26.6 Minuten. Daraus ergibt sich die minimal notwenige Synchromisationszeit von ca. 30 Minuten. Du solltest also alle 30 Minuten die Systemzeit synchronisieren, ein kürzeres Interval wäre nicht mehr meßbar noch hätte es einen Sinn.

2.) wie synchronisieren wir die Systemzeit so das wir sie exakt zum richtigen Zeitpunkt nachjustieren ? Das geht nur wenn du den Zeitfehler der Systemzeit ausrechnen kannst. Das muß dann folgende Fehlerquellen ausgleichen:
a.) Antwortzeiten im Netzwerk, ergo du musst diesen Fehler absolut messen können
b.) Gangungenauigkeiten des Quarzes der RTC
c.) eventl. Laufzeitdifferenzen der beteiligten BIOS und Betriebsystem Software

Das bedeutet: du musst ab dem Moment der Synchronisation mit dem Zeitserver die Zeit mit Hilfe der Systemuhr stoppen und diesen Wert als Differenz zur empfangenen Serverzeit so hochrechnen das du den exakten Zeitpunkt wann und mit welchem Zeitoffset du die Systemzeit aktualisierst.

Bleibt noch ein gravierendes Problem: nämlich die Genauigkeit der zeitlichen Ausführungspriorität deines Codes der die Systemzeit ändert. Sprich ein Task wir von OS nur mit Zeitscheiben an Prozessorzeit ausgeführt, und das OS kann mittendrinnen in deiner Aktuialiserung der Systemzeit deinen Task schlafen legen. Du kannst das mit höheren Prioritäten versuchen zu verhindern, aber real verlassen kannst du dich nur darauf das due einen zeitlichen Fehler von +-20 Millisekunden hast. Sogesehen auf 100'tel Sekunden genau zu synchroniseren ist meiner Meinung nach schon hart an der Grenze des Machbaren.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz