xref: /freebsd/contrib/ntp/html/parsedata.html (revision 416ba5c74546f32a993436a99516d35008e9f384)
19c2daa00SOllivier Robert<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
29c2daa00SOllivier Robert
39c2daa00SOllivier Robert<html>
49c2daa00SOllivier Robert
59c2daa00SOllivier Robert	<head>
6ea906c41SOllivier Robert		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
79c2daa00SOllivier Robert		<meta name="generator" content="HTML Tidy, see www.w3.org">
89c2daa00SOllivier Robert		<title>NTP PARSE clock data formats</title>
99c2daa00SOllivier Robert		<link href="scripts/style.css" type="text/css" rel="stylesheet">
109c2daa00SOllivier Robert	</head>
119c2daa00SOllivier Robert
129c2daa00SOllivier Robert	<body>
139c2daa00SOllivier Robert		<h3>NTP PARSE clock data formats</h3>
14ea906c41SOllivier Robert		<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>
15*2b15cb3dSCy Schubert<p>Last update:
16*2b15cb3dSCy Schubert  <!-- #BeginDate format:En2m -->21-Oct-2010  23:44<!-- #EndDate -->
17*2b15cb3dSCy Schubert    UTC</p>
189c2daa00SOllivier Robert		<hr>
199c2daa00SOllivier Robert		<h4>Meinberg clocks</h4>
209c2daa00SOllivier Robert		<pre>
219c2daa00SOllivier RobertMeinberg: start=&lt;STX&gt;, end=&lt;ETX&gt;, sync on start
229c2daa00SOllivier Robert      pattern=&quot;\2D:  .  .  ;T: ;U:  .  .  ;    \3&quot;
239c2daa00SOllivier Robert      pattern=&quot;\2  .  .  ;  ;   :  :  ;        \3&quot;
249c2daa00SOllivier Robert      pattern=&quot;\2  .  .  ;  ;   :  :  ;    :  ;        ;   .         .       &quot;
259c2daa00SOllivier Robert</pre>
269c2daa00SOllivier Robert		<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 <a href="http://www.meinberg.de/">Meinberg</a> via the Web. Information can also be ordered via eMail from <a href="mailto:%20info@meinberg.de">info@meinberg.de</a></p>
279c2daa00SOllivier Robert		<p>General characteristics:<br>
28ea906c41SOllivier Robert			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 &mu;s @ 19200. PPS support should always be used, if possible, in order to yield the highest possible accuracy.</p>
29ea906c41SOllivier Robert		<p>The preferred tty setting for Meinberg DCF77 receivers is 9600/7E2:</p>
309c2daa00SOllivier Robert		<pre>
319c2daa00SOllivier Robert		CFLAG		(B9600|CS7|PARENB|CREAD|HUPCL)
329c2daa00SOllivier Robert		IFLAG		(IGNBRK|IGNPAR|ISTRIP)
339c2daa00SOllivier Robert		OFLAG		0
349c2daa00SOllivier Robert		LFLAG		0
359c2daa00SOllivier Robert        </pre>
36ea906c41SOllivier Robert		<p>The tty setting for Meinberg GPS16x/17x receivers is 19200/8N1:</p>
379c2daa00SOllivier Robert		<pre>
389c2daa00SOllivier Robert		CFLAG		(B19200|CS8|PARENB|CREAD|HUPCL)
399c2daa00SOllivier Robert		IFLAG		(IGNBRK|IGNPAR|ISTRIP)
409c2daa00SOllivier Robert		OFLAG		0
419c2daa00SOllivier Robert		LFLAG		0
429c2daa00SOllivier Robert        </pre>
43ea906c41SOllivier Robert		<p>All clocks should be run at datagram once per second.<br><br></p>
44ea906c41SOllivier Robert		<p>Format of the Meinberg standard time string:</p>
459c2daa00SOllivier Robert<pre>
46ea906c41SOllivier Robert        <b><i>&lt;STX&gt;</i>D:<i>dd.mm.yy</i>;T:<i>w</i>;U:<i>hh.mm.ss</i>;<i>uvxy</i><i>&lt;ETX&gt;</i></b>
479c2daa00SOllivier Robert    pos:  0  000000001111111111222222222233  3
489c2daa00SOllivier Robert          1  234567890123456789012345678901  2
499c2daa00SOllivier Robert
50ea906c41SOllivier Robert    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
51ea906c41SOllivier Robert    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
52ea906c41SOllivier Robert    <i>w</i>             = day of week (1..7, Monday = 1)
53ea906c41SOllivier Robert    <i>hh:mm:ss</i>      = hour, minute, second, separated by dots
54ea906c41SOllivier Robert    <i>u</i>             = '#' for GPS receivers: time is <b>not</b> synchronized
55ea906c41SOllivier Robert                           '#' for older PZF5xx receivers: no correlation, not synchronized
56ea906c41SOllivier Robert                           '#' for other devices: never sync'ed since powerup
57ea906c41SOllivier Robert                           ' ' if nothing of the above applies
58ea906c41SOllivier Robert    <i>v</i>             = '*' for GPS receivers: position has <b>not</b> been verified
59ea906c41SOllivier Robert                           '*' for other devices: freewheeling based on internal quartz
60ea906c41SOllivier Robert                           ' ' if nothing of the above applies
61ea906c41SOllivier Robert    <i>x</i>             = 'U' if UTC time is transmitted
62ea906c41SOllivier Robert                           'S' if daylight saving time is active
63ea906c41SOllivier Robert                           ' ' if nothing of the above applies
64ea906c41SOllivier Robert    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time
65ea906c41SOllivier Robert                           'A' during the hour preceding a leap second
66ea906c41SOllivier Robert                           ' ' if nothing of the above applies
67ea906c41SOllivier Robert    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
689c2daa00SOllivier Robert</pre>
69ea906c41SOllivier Robert		<p>Format of the Uni Erlangen time string for PZF5xx receivers:</p>
709c2daa00SOllivier Robert<pre>
71ea906c41SOllivier Robert        <b><i>&lt;STX&gt;</i><i>dd.mm.yy</i>; <i>w</i>; <i>hh:mm:ss</i>; <i>tuvxyza</i><i>&lt;ETX&gt;</i></b>
729c2daa00SOllivier Robert    pos:  0  000000001111111111222222222233  3
739c2daa00SOllivier Robert          1  234567890123456789012345678901  2
74ea906c41SOllivier Robert
75ea906c41SOllivier Robert    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
76ea906c41SOllivier Robert    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
77ea906c41SOllivier Robert    <i>w</i>             = day of week (1..7, Monday = 1)
78ea906c41SOllivier Robert    <i>hh:mm:ss</i>      = hour, minute, second, separated by colons
79ea906c41SOllivier Robert
80ea906c41SOllivier Robert    <i>t</i>             = 'U' if UTC time is transmitted, else ' '
81ea906c41SOllivier Robert    <i>u</i>             = '#' for older PZF5xx receivers: no correlation, not synchronized
82ea906c41SOllivier Robert                           '#' for PZF511 and newer: never sync'ed since powerup
83ea906c41SOllivier Robert                           ' ' if nothing of the above applies
84ea906c41SOllivier Robert    <i>v</i>             = '*' if freewheeling based on internal quartz, else ' '
85ea906c41SOllivier Robert    <i>x</i>             = 'S' if daylight saving time is active, else ' '
86ea906c41SOllivier Robert    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time, else ' '
87ea906c41SOllivier Robert    <i>z</i>             = 'A' during the hour preceding a leap second, else ' '
88ea906c41SOllivier Robert    <i>a</i>             = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
89ea906c41SOllivier Robert    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
909c2daa00SOllivier Robert</pre>
91ea906c41SOllivier Robert		<p>Format of the Uni Erlangen time string for GPS16x/GPS17x receivers:</p>
929c2daa00SOllivier Robert<pre>
93ea906c41SOllivier Robert        <b><i>&lt;STX&gt;</i><i>dd.mm.yy</i>; <i>w</i>; <i>hh:mm:ss</i>; <i>+uu:uu</i>; <i>uvxyzab</i>; <i>ll.lllln</i> <i>lll.lllle</i> <i>hhhh</i>m<i>&lt;ETX&gt;</i></b>
94ea906c41SOllivier Robert    pos:  0  0000000011111111112222222222333333333344444444445555555555666666  6
959c2daa00SOllivier Robert          1  2345678901234567890123456789012345678901234567890123456789012345  6
969c2daa00SOllivier Robert
97ea906c41SOllivier Robert    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
98ea906c41SOllivier Robert    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
99ea906c41SOllivier Robert    <i>w</i>             = day of week (1..7, Monday = 1)
100ea906c41SOllivier Robert    <i>hh:mm:ss</i>      = hour, minute, second, separated by colons
101ea906c41SOllivier Robert    <i>+uu:uu</i>        = offset to UTC in hours and minutes, preceded by + or -
102ea906c41SOllivier Robert    <i>u</i>             = '#' if time is <b>not</b> synchronized, else ' '
103ea906c41SOllivier Robert    <i>v</i>             = '*' if position has <b>not</b> been verified, else ' '
104ea906c41SOllivier Robert    <i>x</i>             = 'S' if daylight saving time is active, else ' '
105ea906c41SOllivier Robert    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time, else ' '
106ea906c41SOllivier Robert    <i>z</i>             = 'A' during the hour preceding a leap second, else ' '
107ea906c41SOllivier Robert    <i>a</i>             = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
108ea906c41SOllivier Robert    <i>b</i>             = 'L' during a leap second, i.e. if the seconds field is 60, else ' '
109ea906c41SOllivier Robert    <i>ll.lllln</i>      = position latitude in degrees, 'n' can actually be 'N' or 'S', i.e. North or South
110ea906c41SOllivier Robert    <i>lll.lllle</i>     = position longitude in degrees, 'e' can actually be 'E' or 'W', i.e. East or West
111ea906c41SOllivier Robert    <i>hhhh</i>          = position altitude in meters, always followed by 'm'
112ea906c41SOllivier Robert    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
1139c2daa00SOllivier Robert</pre>
114ea906c41SOllivier Robert		<p>Examples for Uni Erlangen strings from GPS receivers:</p>
115ea906c41SOllivier Robert<pre>
116ea906c41SOllivier Robert        \x02 09.07.93; 5; 08:48:26; +00:00;        ; 49.5736N  11.0280E  373m \x03
117ea906c41SOllivier Robert        \x02 08.11.06; 3; 14:39:39; +00:00;        ; 51.9828N   9.2258E  176m \x03
118ea906c41SOllivier Robert</pre>
119ea906c41SOllivier Robert		<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>
120ea906c41SOllivier Robert		<p>For the Meinberg parse look into clk_meinberg.c<br><br></p>
121ea906c41SOllivier Robert		<hr>
1229c2daa00SOllivier Robert		<h4>Raw DCF77 Data via serial line</h4>
1239c2daa00SOllivier Robert		<p>RAWDCF: end=TIMEOUT&gt;1.5s, sync each char (any char),generate psuedo time codes, fixed format</p>
1249c2daa00SOllivier Robert		<p>direct DCF77 code input</p>
1259c2daa00SOllivier Robert		<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>
1269c2daa00SOllivier Robert		<pre>
1279c2daa00SOllivier Robert	The preferred tty setting is:
1289c2daa00SOllivier Robert		CFLAG           (B50|CS8|CREAD|CLOCAL)
1299c2daa00SOllivier Robert		IFLAG		0
1309c2daa00SOllivier Robert		OFLAG		0
1319c2daa00SOllivier Robert 		LFLAG		0
1329c2daa00SOllivier Robert</pre>
1339c2daa00SOllivier Robert		<h4>DCF77 raw time code</h4>
134ea906c41SOllivier Robert		<p>From &quot;Zur Zeit&quot;, Physikalisch-Technische Bundesanstalt (PTB), Braunschweig und Berlin, M&auml;rz 1989<br>
1359c2daa00SOllivier Robert		</p>
1369c2daa00SOllivier Robert		<p>Timecode transmission:</p>
1379c2daa00SOllivier Robert		<pre>
1389c2daa00SOllivier Robert	AM:
1399c2daa00SOllivier Robert
1409c2daa00SOllivier Robert	time marks are send every second except for the second before the
1419c2daa00SOllivier Robert	next minute mark
1429c2daa00SOllivier Robert	time marks consist of a reduction of transmitter power to 25%
1439c2daa00SOllivier Robert	of the nominal level
1449c2daa00SOllivier Robert	the falling edge is the time indication (on time)
1459c2daa00SOllivier Robert	time marks of a 100ms duration constitute a logical 0
1469c2daa00SOllivier Robert	time marks of a 200ms duration constitute a logical 1
1479c2daa00SOllivier Robert</pre>
1489c2daa00SOllivier Robert		<p>see the spec. (basically a (non-)inverted psuedo random phase shift) encoding:</p>
1499c2daa00SOllivier Robert		<pre>
1509c2daa00SOllivier Robert	FM:
1519c2daa00SOllivier Robert
1529c2daa00SOllivier Robert	Second	Contents
1539c2daa00SOllivier Robert	0  - 10	AM: free, FM: 0
1549c2daa00SOllivier Robert	11 - 14	free
1559c2daa00SOllivier Robert	15		R     - alternate antenna
1569c2daa00SOllivier Robert	16		A1    - expect zone change (1 hour before)
1579c2daa00SOllivier Robert	17 - 18	Z1,Z2 - time zone
1589c2daa00SOllivier Robert		 0  0 illegal
1599c2daa00SOllivier Robert		 0  1 MEZ  (MET)
1609c2daa00SOllivier Robert		 1  0 MESZ (MED, MET DST)
1619c2daa00SOllivier Robert		 1  1 illegal
1629c2daa00SOllivier Robert	19	A2    - expect leap insertion/deletion (1 hour before)
1639c2daa00SOllivier Robert	20	S     - start of time code (1)
1649c2daa00SOllivier Robert	21 - 24	M1    - BCD (lsb first) Minutes
1659c2daa00SOllivier Robert	25 - 27	M10   - BCD (lsb first) 10 Minutes
1669c2daa00SOllivier Robert	28	P1    - Minute Parity (even)
1679c2daa00SOllivier Robert	29 - 32	H1    - BCD (lsb first) Hours
1689c2daa00SOllivier Robert	33 - 34	H10   - BCD (lsb first) 10 Hours
1699c2daa00SOllivier Robert	35	P2    - Hour Parity (even)
1709c2daa00SOllivier Robert	36 - 39	D1    - BCD (lsb first) Days
1719c2daa00SOllivier Robert	40 - 41	D10   - BCD (lsb first) 10 Days
1729c2daa00SOllivier Robert	42 - 44	DW    - BCD (lsb first) day of week (1: Monday -&gt; 7: Sunday)
173ea906c41SOllivier Robert	45 - 49	MO1   - BCD (lsb first) Month
174ea906c41SOllivier Robert	50	MO10  - 10 Months
1759c2daa00SOllivier Robert	51 - 53	Y1    - BCD (lsb first) Years
1769c2daa00SOllivier Robert	54 - 57	Y10   - BCD (lsb first) 10 Years
1779c2daa00SOllivier Robert	58 	P3    - Date Parity (even)
1789c2daa00SOllivier Robert	59	      - usually missing (minute indication), except for leap insertion
1799c2daa00SOllivier Robert</pre>
1809c2daa00SOllivier Robert		<hr>
1819c2daa00SOllivier Robert		<h4>Schmid clock</h4>
1829c2daa00SOllivier Robert		<p>Schmid clock: needs poll, binary input, end='\xFC', sync start</p>
1839c2daa00SOllivier Robert		<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>
1849c2daa00SOllivier Robert		<pre>
1859c2daa00SOllivier Robert	TTY setup is:
1869c2daa00SOllivier Robert		CFLAG		(B1200|CS8|CREAD|CLOCAL)
1879c2daa00SOllivier Robert		IFLAG		0
1889c2daa00SOllivier Robert		OFLAG		0
1899c2daa00SOllivier Robert 		LFLAG		0
1909c2daa00SOllivier Robert
1919c2daa00SOllivier Robert</pre>
1929c2daa00SOllivier Robert		<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>
1939c2daa00SOllivier Robert		<pre>
1949c2daa00SOllivier Robert	Bit 0:	time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
1959c2daa00SOllivier Robert	Bit 1:	date 3 bytes *binary, not BCD: dd.mm.yy
1969c2daa00SOllivier Robert	Bit 2:	week day, 1 byte (unused here)
1979c2daa00SOllivier Robert	Bit 3:	time zone, 1 byte, 0=MET, 1=MEST. (unused here)
1989c2daa00SOllivier Robert	Bit 4:	clock status, 1 byte,	0=time invalid,
1999c2daa00SOllivier Robert					1=time from crystal backup,
2009c2daa00SOllivier Robert					3=time from DCF77
2019c2daa00SOllivier Robert	Bit 5:	transmitter status, 1 byte,
2029c2daa00SOllivier Robert					bit 0: backup antenna
2039c2daa00SOllivier Robert					bit 1: time zone change within 1h
2049c2daa00SOllivier Robert					bit 3,2: TZ 01=MEST, 10=MET
2059c2daa00SOllivier Robert					bit 4: leap second will be
2069c2daa00SOllivier Robert						added within one hour
2079c2daa00SOllivier Robert					bits 5-7: Zero
2089c2daa00SOllivier Robert	Bit 6:	time in backup mode, units of 5 minutes (unused here)
2099c2daa00SOllivier Robert</pre>
2109c2daa00SOllivier Robert		<hr>
2119c2daa00SOllivier Robert		<h4>Trimble SV6 ASCII time code (TAIP)</h4>
2129c2daa00SOllivier Robert		<p>Trimble SV6: needs poll, ascii timecode, start='&gt;', end='&lt;', query='&gt;QTM&lt;', eol='&lt;'</p>
2139c2daa00SOllivier Robert		<p>Trimble SV6 is a GPS receiver with PPS output. It needs to be polled. It also need a special tty mode setup (EOL='&lt;').</p>
2149c2daa00SOllivier Robert		<pre>
2159c2daa00SOllivier Robert	TTY setup is:
2169c2daa00SOllivier Robert		CFLAG            (B4800|CS8|CREAD)
2179c2daa00SOllivier Robert		IFLAG            (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON)
2189c2daa00SOllivier Robert		OFLAG            (OPOST|ONLCR)
2199c2daa00SOllivier Robert		LFLAG            (ICANON|ECHOK)
2209c2daa00SOllivier Robert</pre>
2219c2daa00SOllivier Robert		<p>Special flags are:</p>
2229c2daa00SOllivier Robert		<pre>		PARSE_F_PPSPPS	    - use CIOGETEV for PPS time stamping
2239c2daa00SOllivier Robert		PARSE_F_PPSONSECOND - the time code is not related to
2249c2daa00SOllivier Robert				      the PPS pulse (so use the time code
2259c2daa00SOllivier Robert				      only for the second epoch)
2269c2daa00SOllivier Robert
2279c2daa00SOllivier Robert	Timecode
2289c2daa00SOllivier Robert	0000000000111111111122222222223333333	/ char
2299c2daa00SOllivier Robert	0123456789012345678901234567890123456	\ posn
2309c2daa00SOllivier Robert	&gt;RTMhhmmssdddDDMMYYYYoodnnvrrrrr;*xx&lt;	Actual
2319c2daa00SOllivier Robert	----33445566600112222BB7__-_____--99-	Parse
2329c2daa00SOllivier Robert	&gt;RTM                      1     ;*  &lt; 	Check
2339c2daa00SOllivier Robert</pre>
2349c2daa00SOllivier Robert		<hr>
2359c2daa00SOllivier Robert		<h4>ELV DCF7000</h4>
2369c2daa00SOllivier Robert		<p>ELV DCF7000: end='\r', pattern=&quot; - - - - - - - \r&quot;</p>
2379c2daa00SOllivier Robert		<p>The ELV DCF7000 is a cheap DCF77 receiver sending each second a time code (though not very precise!) delimited by '`r'</p>
2389c2daa00SOllivier Robert		<pre>
2399c2daa00SOllivier Robert	Timecode
2409c2daa00SOllivier Robert	  YY-MM-DD-HH-MM-SS-FF\r
2419c2daa00SOllivier Robert
2429c2daa00SOllivier Robert		FF&amp;0x1	- DST
2439c2daa00SOllivier Robert		FF&amp;0x2	- DST switch warning
2449c2daa00SOllivier Robert		FF&amp;0x4  - unsynchronised
2459c2daa00SOllivier Robert</pre>
2469c2daa00SOllivier Robert		<hr>
2479c2daa00SOllivier Robert		<h4>HOPF 6021 und Kompatible</h4>
2489c2daa00SOllivier Robert		<p>HOPF Funkuhr 6021 mit serieller Schnittstelle Created by F.Schnekenbuehl &lt;frank@comsys.dofn.de&gt; from clk_rcc8000.c Nortel DASA Network Systems GmbH, Department: ND250 A Joint venture of Daimler-Benz Aerospace and Nortel.</p>
2499c2daa00SOllivier Robert		<pre>
2509c2daa00SOllivier Robert hopf Funkuhr 6021
2519c2daa00SOllivier Robert      used with 9600,8N1,
2529c2daa00SOllivier Robert      UTC via serial line
2539c2daa00SOllivier Robert      &quot;Sekundenvorlauf&quot; ON
2549c2daa00SOllivier Robert      ETX zum Sekundenvorlauf ON
2559c2daa00SOllivier Robert      dataformat 6021
2569c2daa00SOllivier Robert      output time and date
2579c2daa00SOllivier Robert      transmit with control characters
2589c2daa00SOllivier Robert      transmit evry second
2599c2daa00SOllivier Robert </pre>
2609c2daa00SOllivier Robert		<p>Type 6021 Serial Output format</p>
2619c2daa00SOllivier Robert		<pre>
2629c2daa00SOllivier Robert      000000000011111111 / char
2639c2daa00SOllivier Robert      012345678901234567 \ position
2649c2daa00SOllivier Robert      sABHHMMSSDDMMYYnre  Actual
2659c2daa00SOllivier Robert       C4110046231195     Parse
2669c2daa00SOllivier Robert      s              enr  Check
2679c2daa00SOllivier Robert
2689c2daa00SOllivier Robert  s = STX (0x02), e = ETX (0x03)
2699c2daa00SOllivier Robert  n = NL  (0x0A), r = CR  (0x0D)
2709c2daa00SOllivier Robert
2719c2daa00SOllivier Robert  A B - Status and weekday
2729c2daa00SOllivier Robert
2739c2daa00SOllivier Robert  A - Status
2749c2daa00SOllivier Robert
2759c2daa00SOllivier Robert      8 4 2 1
2769c2daa00SOllivier Robert      x x x 0  - no announcement
2779c2daa00SOllivier Robert      x x x 1  - Summertime - wintertime - summertime announcement
2789c2daa00SOllivier Robert      x x 0 x  - Wintertime
2799c2daa00SOllivier Robert      x x 1 x  - Summertime
2809c2daa00SOllivier Robert      0 0 x x  - Time/Date invalid
2819c2daa00SOllivier Robert      0 1 x x  - Internal clock used
2829c2daa00SOllivier Robert      1 0 x x  - Radio clock
2839c2daa00SOllivier Robert      1 1 x x  - Radio clock highprecision
2849c2daa00SOllivier Robert
2859c2daa00SOllivier Robert  B - 8 4 2 1
2869c2daa00SOllivier Robert      0 x x x  - MESZ/MEZ
2879c2daa00SOllivier Robert      1 x x x  - UTC
2889c2daa00SOllivier Robert      x 0 0 1  - Monday
2899c2daa00SOllivier Robert      x 0 1 0  - Tuesday
2909c2daa00SOllivier Robert      x 0 1 1  - Wednesday
2919c2daa00SOllivier Robert      x 1 0 0  - Thursday
2929c2daa00SOllivier Robert      x 1 0 1  - Friday
2939c2daa00SOllivier Robert      x 1 1 0  - Saturday
2949c2daa00SOllivier Robert      x 1 1 1  - Sunday
2959c2daa00SOllivier Robert</pre>
2969c2daa00SOllivier Robert		<hr>
2979c2daa00SOllivier Robert		<h4>Diem Computime Clock</h4>
2989c2daa00SOllivier Robert		<p>The Computime receiver sends a datagram in the following format every minute</p>
2999c2daa00SOllivier Robert		<pre>
3009c2daa00SOllivier Robert   Timestamp	T:YY:MM:MD:WD:HH:MM:SSCRLF
3019c2daa00SOllivier Robert   Pos          0123456789012345678901 2 3
3029c2daa00SOllivier Robert		0000000000111111111122 2 2
3039c2daa00SOllivier Robert   Parse        T:  :  :  :  :  :  :  \r\n
3049c2daa00SOllivier Robert
3059c2daa00SOllivier Robert   T	Startcharacter &quot;T&quot; specifies start of the timestamp
3069c2daa00SOllivier Robert   YY	Year MM	Month 1-12
3079c2daa00SOllivier Robert   MD	Day of the month
3089c2daa00SOllivier Robert   WD	Day of week
3099c2daa00SOllivier Robert   HH	Hour
3109c2daa00SOllivier Robert   MM   Minute
3119c2daa00SOllivier Robert   SS   Second
3129c2daa00SOllivier Robert   CR   Carriage return
3139c2daa00SOllivier Robert   LF   Linefeed
3149c2daa00SOllivier Robert</pre>
3159c2daa00SOllivier Robert		<hr>
3169c2daa00SOllivier Robert		<h4>WHARTON 400A Series Clock with a 404.2 Serial interface</h4>
3179c2daa00SOllivier Robert		<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>
3189c2daa00SOllivier Robert		<pre>
3199c2daa00SOllivier Robert  					Programmable	Selected
3209c2daa00SOllivier Robert  					Option No	Option
3219c2daa00SOllivier Robert	BST or CET display		3		9 or 11
3229c2daa00SOllivier Robert	No external controller		7		0
3239c2daa00SOllivier Robert	Serial Output Format 1		9		1
3249c2daa00SOllivier Robert	Baud rate 9600 bps		10		96
3259c2daa00SOllivier Robert	Bit length 8 bits		11		8
3269c2daa00SOllivier Robert	Parity even			12		E
3279c2daa00SOllivier Robert</pre>
3289c2daa00SOllivier Robert		<p>WHARTON 400A Series output format 1 is as follows :</p>
3299c2daa00SOllivier Robert		<pre>
3309c2daa00SOllivier Robert   Timestamp	STXssmmhhDDMMYYSETX
3319c2daa00SOllivier Robert   Pos		0  12345678901234
3329c2daa00SOllivier Robert  		0  00000000011111
3339c2daa00SOllivier Robert
3349c2daa00SOllivier Robert   STX	start transmission (ASCII 0x02)
3359c2daa00SOllivier Robert   ETX	end transmission (ASCII 0x03)
3369c2daa00SOllivier Robert   ss	Second expressed in reversed decimal (units then tens)
3379c2daa00SOllivier Robert   mm	Minute expressed in reversed decimal
3389c2daa00SOllivier Robert   hh	Hour expressed in reversed decimal
3399c2daa00SOllivier Robert   DD	Day of month expressed in reversed decimal
3409c2daa00SOllivier Robert   MM	Month expressed in reversed decimal (January is 1)
3419c2daa00SOllivier Robert   YY	Year (without century) expressed in reversed decimal
3429c2daa00SOllivier Robert   S	Status byte : 0x30 +
3439c2daa00SOllivier Robert		bit 0	0 = MSF source		1 = DCF source
3449c2daa00SOllivier Robert		bit 1	0 = Winter time		1 = Summer time
3459c2daa00SOllivier Robert		bit 2	0 = not synchronised	1 = synchronised
3469c2daa00SOllivier Robert		bit 3	0 = no early warning	1 = early warning
3479c2daa00SOllivier Robert</pre>
3489c2daa00SOllivier Robert		<hr>
3499c2daa00SOllivier Robert		<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
3509c2daa00SOllivier Robert	</body>
3519c2daa00SOllivier Robert
3529c2daa00SOllivier Robert</html>
353