Hejsan alla p} SP.

S} h{r ser datablocken och protokollet ut f|r pratet mellan Styrdator
och NTPdator. Den h{r lilla servern kan endast ta emot offset/drift och
sen uppdatera microsteppern med dessa v{rden.
Servern lagrar mottagna offset/driftv{rden + tidpunkten n{r dessa togs emot
i en liten fil. ( /etc/microd.offset ) Vid omstart l{ser den in filen och
r{knar ut vilken offset den ska anv{nda. Likas} r{knar den ut ny offset
varje minut med hj{lp av senast mottagna offset/driftv{rden.

Offset {r i nanosekunder som vi kom |verens om. Driftv{rdet har jag dock
tagit mig friheten att {ndra till pikosekunder per dygn f|r att kunna f}
b{ttre uppl|sning vid offsetber{kningen. S{g till om ni vill {ndra tillbaks
till nanosekunder per dygn.

Jag skickar med koden till det testprogram jag har anv{nt f|r test. Det
skickar |ver offset/drift och nollst{llda f{lt f|r skottekund/status till
servern och skriver ut den den felkod servern returnerar.

Som testprogrammet visar, s} pratar man med servern genom att |ppna
en tcpsocket till port 273 p} servern. Sen skickar man |ver ett offset-
kommando och v{ntar p} svar. Om svaret {r OK, har microsteppern uppdaterats
och det mottagna offset/driftv{rdet + tidpunkten sparats i /etc/microd.offset.
N{r svaret har mottagits kopplas f|rbindelsen ner.
Samtliga f{lt i datablocken {r i "network order" d.v.s. alla v{rden bredare
{n 8 bits {r i "big endian order".


Offsetkommando :	16 bits l{ngd.			L{ngdf{ltet exkluderat.
			16 bits kommandotyp.		CLK_OFFSET = 1.
			32 bits offset.
			32 bits drift.
			16 bits skottsekundindikator.	Oanv{nt.
			16 bits status.			Oanv{nt.

Svar fr}n servern :	16 bits l{ngd.
			16 bits kommandotyp.		CLK_ECODE = 0.
			16 bits felkod.			OK = 0.


Datastrukturer och konstantv{rden finns i filen microd.h.
