ActiveX: AtomicClock      (Filnamn: SLATOMIC.OCX)
 

  
AtomicClock är en ActiveX-komponent som hämtar aktuell tid från en tidsserver någonstans i världen. Dessa tidservrar är ofta baserade på atomklockor och ger därför mycket exakt tid. AtomicClock kan användas för att synkronisera systemklockan med en atomklocksbaserad tid. Noggrannheten på tiden beror på hur snabb förbindelsen är och hur snabbt servern svarar. Men en noggrannhet på 0,1 sekunder eller bättre går att utföra med rätt teknik. Tiden kan erhållas både i lokal tid och GMT-tid (Greenwich Mean Time).

Datatyperna nedan är angivna enligt VB 6.0 standard. I VB.NET ska Integer ersättas med Short (16 bitar) och Long ersättas med Integer (32 bitar). 
 
 
Egenskaper
 
Namn Datatyp Beskrivning
Correction Long Anger hur mycket den erhållna tiden ska korrigeras i millisekunder. Pga att det tar en viss tid för informationen att transporteras från tidsservern till din dator kan det ibland krävas viss justering av den erhållna tiden.
.
DateStr String Returnerar det datum som tidsservern har returnerat enligt lokal tid.
.
DelayBetweenReads Long Anger hur många millisekunder som får gå mellan två läsningar. Om ett nytt läsförsök görs på kortare tid än detta värde utförs ingen läsning av tidsservern. Det bör alltid förflyta en viss tid mellan två läsningar, annars kan nya läsningar blockeras av vissa tidsservrar.
.
GMTDateStr String Returnerar det datum som tidsservern har returnerat enligt GMT-tid (Greenwich Mean Time).
.
GMTTimeStr String Returnerar det klockslag som tidsservern har returnerat enligt GMT-tid (Greenwich Mean Time).
.
RemotePort Long Anger vilken port hos tidsservern som ska avläsas. För NIST-servrar används oftast port 13 och för NTP-servrar används oftast port 37.
.
ServerName String Specificerar domännamn eller IP-nummer för den tidsserver som ska avläsas.
.
ServerType Integer Specificerar vilken typ av server som ska avläsas. 0 = NIST och 1 = NTP.
.
SyncSystemTime Boolean Anger om datorns systemklocka ska justeras efter atomklockans tid. Sätts egenskapen till True kommer datorklockan att justeras till den inkommande tiden från en tidsserver. Sätts egenskapen till False sker ingen sådan justering.
.
TimeStr String Returnerar det datum som tidsservern har returnerat enligt lokal tid.
.
 
 
Händelser
 
Namn Beskrivning
TimeReceived Denna händelse aktiveras när tidsinformation har anlänt till din dator. Du kan läsa av tiden via egenskaperna DateStr och TimeStr.
.
 
 
Metoder
 

CancelRead () As Boolean

Avbryter väntan på att ett datapaket med tidsinformation ska anlända från en tidsserver.  

GetLastError () As Long

Returnerar senast inträffade felet i komponenten.

GetNumNISTServers () As Integer

Returnerar antal NIST-servrar som finns i ActiveX-komponentens interna server-lista.

GetNumNTPServers () As Integer

Returnerar antal NTP-servrar som finns i ActiveX-komponentens interna server-lista.

GetNumServers () As Integer

Returnerar antal tidsservrar som finns i ActiveX-komponentens interna server-lista för aktuell servertyp.

GetServerResponseTime () As Long

Returnerar hur många millisekunder det tagit för tidsinformationen att anlända efter att en förfrågan gjorts. Denna metod kan användas för att välja bort servrar som har långa svarstider. Är svarstiden över 700 ms bör en annan server väljas.

ReadTime () As Boolean

Utför en avläsning av tiden från en tidsserver. Angivna inställningar används. När svaret anländer till din lokala dator aktiveras händelsen TimeReceived och tiden kan därefter läsas av från egenskaperna TimeStr och DateStr.

SelectServer (ServerIndex As Integer)

Väljer en tidsserver från den internta server-listan. Egenskapen ServerName sätts till det valda servernamnet. Lägsta värde för ServerIndex är 0 och då väljs den första servern i den interna listan. Det högsta värdet kan erhållas genom att anropa metoden GetNumServers och sedan dra av 1 från returvärdet.
.

Exempel

Se exempelprogrammet AtomicSync för exempel på hur man använder denna komponent. Du hittar ett Visual Basic 6.0 exempel i mappen \Examples VB6\AtomicSync och ett Visual Basic .NET exempel i mappen \Examples .NET 2003\AtomicSync.
   
   

SamLogic