<p>The parse driver currently supports several clocks with different query mechanisms. In order for you to find a sample that might be similar to a clock you might want to integrate into parse I'll sum up the major features of the clocks (this information is distributed in the parse/clk_*.c and ntpd/refclock_parse.c files).</p>
Meinberg: start=<STX>, end=<ETX>, sync on start
pattern="\2D: . . ;T: ;U: . . ; \3"
pattern="\2 . . ; ; : : ; \3"
pattern="\2 . . ; ; : : ; : ; ; . . "
</pre>
<p>Meinberg is a German manufacturer of time code receivers. Those clocks have a pretty common output format in the stock version. In order to support NTP Meinberg was so kind to produce some special versions of the firmware for the use with NTP. So, if you are going to use a Meinberg clock please ask whether there is a special Uni Erlangen version. You can reach <ahref="http://www.meinberg.de/">Meinberg</a> via the Web. Information can also be ordered via eMail from <ahref="mailto:%20info@meinberg.de">info@meinberg.de</a></p>
Meinberg clocks primarily output pulse per second and a describing ASCII string. This string can be produced in two modes: either upon the reception of a question mark or every second. NTP uses the latter mechanism. DCF77 AM clocks have a limited accuracy of a few milliseconds. The DCF77 PZF5xx variants provide higher accuracy and have a pretty good relationship between RS232 time code and the PPS signal. Except for early versions of the old GPS166 receiver type, Meinberg GPS receivers have a very good timing relationship between the datagram and the pulse. The beginning of the start bit of the first character has basically the same accuracy as the PPS signal, plus a jitter of up to 1 bit time depending on the selected baud rate, i.e. 52 μs @ 19200. PPS support should always be used, if possible, in order to yield the highest possible accuracy.</p>
<p>The preferred tty setting for Meinberg DCF77 receivers is 9600/7E2:</p>
<p>The Uni Erlangen formats should be used preferably. Newer Meinberg GPS receivers can be configured to transmit that format, for older devices there may be a special firmware version available.</p>
<p>For the Meinberg parse look into clk_meinberg.c<br><br></p>
<p>RAWDCF: end=TIMEOUT>1.5s, sync each char (any char),generate psuedo time codes, fixed format</p>
<p>direct DCF77 code input</p>
<p>In Europe it is relatively easy/cheap the receive the german time code transmitter DCF77. The simplest version to process its signal is to feed the 100/200ms pulse of the demodulated AM signal via a level converter to an RS232 port at 50Baud. parse/clk_rawdcf.c holds all necessary decoding logic for the time code which is transmitted each minute for one minute. A bit of the time code is sent once a second.</p>
<p>The Schmid clock is a DCF77 receiver that sends a binary time code at the reception of a flag byte. The contents if the flag byte determined the time code format. The binary time code is delimited by the byte 0xFC.</p>
<pre>
TTY setup is:
CFLAG (B1200|CS8|CREAD|CLOCAL)
IFLAG 0
OFLAG 0
LFLAG 0
</pre>
<p>The command to Schmid's DCF77 clock is a single byte; each bit allows the user to select some part of the time string, as follows (the output for the lsb is sent first).</p>
<pre>
Bit 0: time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
Bit 1: date 3 bytes *binary, not BCD: dd.mm.yy
Bit 2: week day, 1 byte (unused here)
Bit 3: time zone, 1 byte, 0=MET, 1=MEST. (unused here)
Bit 4: clock status, 1 byte, 0=time invalid,
1=time from crystal backup,
3=time from DCF77
Bit 5: transmitter status, 1 byte,
bit 0: backup antenna
bit 1: time zone change within 1h
bit 3,2: TZ 01=MEST, 10=MET
bit 4: leap second will be
added within one hour
bits 5-7: Zero
Bit 6: time in backup mode, units of 5 minutes (unused here)
<p>The ELV DCF7000 is a cheap DCF77 receiver sending each second a time code (though not very precise!) delimited by '`r'</p>
<pre>
Timecode
YY-MM-DD-HH-MM-SS-FF\r
FF&0x1 - DST
FF&0x2 - DST switch warning
FF&0x4 - unsynchronised
</pre>
<hr>
<h4>HOPF 6021 und Kompatible</h4>
<p>HOPF Funkuhr 6021 mit serieller Schnittstelle Created by F.Schnekenbuehl <frank@comsys.dofn.de> from clk_rcc8000.c Nortel DASA Network Systems GmbH, Department: ND250 A Joint venture of Daimler-Benz Aerospace and Nortel.</p>
<pre>
hopf Funkuhr 6021
used with 9600,8N1,
UTC via serial line
"Sekundenvorlauf" ON
ETX zum Sekundenvorlauf ON
dataformat 6021
output time and date
transmit with control characters
transmit evry second
</pre>
<p>Type 6021 Serial Output format</p>
<pre>
000000000011111111 / char
012345678901234567 \ position
sABHHMMSSDDMMYYnre Actual
C4110046231195 Parse
s enr Check
s = STX (0x02), e = ETX (0x03)
n = NL (0x0A), r = CR (0x0D)
A B - Status and weekday
A - Status
8 4 2 1
x x x 0 - no announcement
x x x 1 - Summertime - wintertime - summertime announcement
x x 0 x - Wintertime
x x 1 x - Summertime
0 0 x x - Time/Date invalid
0 1 x x - Internal clock used
1 0 x x - Radio clock
1 1 x x - Radio clock highprecision
B - 8 4 2 1
0 x x x - MESZ/MEZ
1 x x x - UTC
x 0 0 1 - Monday
x 0 1 0 - Tuesday
x 0 1 1 - Wednesday
x 1 0 0 - Thursday
x 1 0 1 - Friday
x 1 1 0 - Saturday
x 1 1 1 - Sunday
</pre>
<hr>
<h4>Diem Computime Clock</h4>
<p>The Computime receiver sends a datagram in the following format every minute</p>
<pre>
Timestamp T:YY:MM:MD:WD:HH:MM:SSCRLF
Pos 0123456789012345678901 2 3
0000000000111111111122 2 2
Parse T: : : : : : : \r\n
T Startcharacter "T" specifies start of the timestamp
YY Year MM Month 1-12
MD Day of the month
WD Day of week
HH Hour
MM Minute
SS Second
CR Carriage return
LF Linefeed
</pre>
<hr>
<h4>WHARTON 400A Series Clock with a 404.2 Serial interface</h4>
<p>The WHARTON 400A Series clock is able to send date/time serial messages in 7 output formats. We use format 1 here because it is the shortest. We set up the clock to send a datagram every second. For use with this driver, the WHARTON 400A Series clock must be set-up as follows :</p>
<pre>
Programmable Selected
Option No Option
BST or CET display 3 9 or 11
No external controller 7 0
Serial Output Format 1 9 1
Baud rate 9600 bps 10 96
Bit length 8 bits 11 8
Parity even 12 E
</pre>
<p>WHARTON 400A Series output format 1 is as follows :</p>
<pre>
Timestamp STXssmmhhDDMMYYSETX
Pos 0 12345678901234
0 00000000011111
STX start transmission (ASCII 0x02)
ETX end transmission (ASCII 0x03)
ss Second expressed in reversed decimal (units then tens)
mm Minute expressed in reversed decimal
hh Hour expressed in reversed decimal
DD Day of month expressed in reversed decimal
MM Month expressed in reversed decimal (January is 1)
YY Year (without century) expressed in reversed decimal