diff options
author | roberto <roberto@FreeBSD.org> | 2004-07-20 15:19:51 +0000 |
---|---|---|
committer | roberto <roberto@FreeBSD.org> | 2004-07-20 15:19:51 +0000 |
commit | 52f0477edd81105d995864898a64a601b67d66d8 (patch) | |
tree | 3528c92623def79de13bd8f8caaa5639362dd64b /contrib/ntp/html/parsedata.htm | |
parent | 4155ac9f07c2f1986843c07b428ac66e6f11ffe0 (diff) | |
download | FreeBSD-src-52f0477edd81105d995864898a64a601b67d66d8.zip FreeBSD-src-52f0477edd81105d995864898a64a601b67d66d8.tar.gz |
Merge conflicts.
Lots of added files, some removed and quite a large number of renames :(
Diffstat (limited to 'contrib/ntp/html/parsedata.htm')
-rw-r--r-- | contrib/ntp/html/parsedata.htm | 407 |
1 files changed, 0 insertions, 407 deletions
diff --git a/contrib/ntp/html/parsedata.htm b/contrib/ntp/html/parsedata.htm deleted file mode 100644 index a756079..0000000 --- a/contrib/ntp/html/parsedata.htm +++ /dev/null @@ -1,407 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN"> -<TITLE>NTP PARSE clock data formats</TITLE> -<h1>NTP PARSE clock data formats</h1> - -<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). - -<hr> -<h2>Meinberg clocks</h2> -<pre> -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 <A HREF="http://www.meinberg.de/">Meinberg</A> via the Web. - Information can also be ordered via eMail from <A HREF="mailto: info@meinberg.de">info@meinberg.de</A> - - <p> - General characteristics: - <br> - 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. The DCF77 variants have a pretty good relationship between - RS232 time code and the PPS signal while the GPS receiver has no fixed - timeing between the datagram and the pulse (you need to use PPS with - GPS!) on DCF77 you might get away without the PPS signal. - <pre> - The preferred tty setting for Meinberg is: - CFLAG (B9600|CS7|PARENB|CREAD|HUPCL) - IFLAG (IGNBRK|IGNPAR|ISTRIP) - OFLAG 0 - LFLAG 0 - </pre> - <pre> - The tty setting for Meinberg GPS 166/167 receivers is: - CFLAG (B19200|CS8|PARENB|CREAD|HUPCL) - IFLAG (IGNBRK|IGNPAR|ISTRIP) - OFLAG 0 - LFLAG 0 - </pre> - - <p> - The clock is run at datagram once per second. - Stock dataformat is: - <pre> - <STX>D:<dd>.<mm>.<yy>;T:<w>;U:<hh>:<mm>:<ss>;<S><F><D><A><ETX> -pos: 0 00 00 0 00 0 11 111 1 111 12 2 22 2 22 2 2 2 3 3 3 - 1 23 45 6 78 9 01 234 5 678 90 1 23 4 56 7 8 9 0 1 2 - -<STX> = '\002' ASCII start of text -<ETX> = '\003' ASCII end of text -<dd>,<mm>,<yy> = day, month, year(2 digits!!) -<w> = day of week (sunday= 0) -<hh>,<mm>,<ss> = hour, minute, second -<S> = '#' if never synced since powerup else ' ' for DCF U/A 31 - '#' if not PZF sychronisation available else ' ' for PZF 535 -<F> = '*' if time comes from internal quartz else ' ' -<D> = 'S' if daylight saving time is active else ' ' -<D> = 'U' if UTC time code is deliverd else ' ' -<A> = '!' during the hour preceeding an daylight saving time - start/end change -<A> = 'A' if a leap second is announced -</pre> - - <pre> - <STX><dd>.<mm>.<yy>; <w>; <hh>:<mm>:<ss>; <U><S><F><D><A><L><R><ETX> - pos: 0 00 0 00 0 00 11 1 11 11 1 11 2 22 22 2 2 2 2 2 3 3 3 - 1 23 4 56 7 89 01 2 34 56 7 89 0 12 34 5 6 7 8 9 0 1 2 - <STX> = '\002' ASCII start of text - <ETX> = '\003' ASCII end of text - <dd>,<mm>,<yy> = day, month, year(2 digits!!) - <w> = day of week (sunday= 0) - <hh>,<mm>,<ss> = hour, minute, second - <U> = 'U' UTC time display - <S> = '#' if never synced since powerup else ' ' for DCF U/A 31 - '#' if not PZF sychronisation available else ' ' for PZF 535 - <F> = '*' if time comes from internal quartz else ' ' - <D> = 'S' if daylight saving time is active else ' ' - <A> = '!' during the hour preceeding an daylight saving time - start/end change - <L> = 'A' LEAP second announcement - <R> = 'R' alternate antenna -</pre> -<p>Meinberg GPS166 receiver -<br> - You must get the Uni-Erlangen firmware for the GPS receiver support - to work to full satisfaction ! -<pre> - <STX><dd>.<mm>.<yy>; <w>; <hh>:<mm>:<ss>; <+/-><00:00>; <U><S><F><D><A><L><R><L>; <position...><ETX> - * - 000000000111111111122222222223333333333444444444455555555556666666 - 123456789012345678901234567890123456789012345678901234567890123456 - \x0209.07.93; 5; 08:48:26; +00:00; ; 49.5736N 11.0280E 373m\x03 - * - - <STX> = '\002' ASCII start of text - <ETX> = '\003' ASCII end of text - <dd>,<mm>,<yy> = day, month, year(2 digits!!) - <w> = day of week (sunday= 0) - <hh>,<mm>,<ss> = hour, minute, second - <+/->,<00:00> = offset to UTC - <S> = '#' if never synced since powerup else ' ' for DCF U/A 31 - '#' if not PZF sychronisation available else ' ' for PZF 535 - <U> = 'U' UTC time display - <F> = '*' if time comes from internal quartz else ' ' - <D> = 'S' if daylight saving time is active else ' ' - <A> = '!' during the hour preceeding an daylight saving time - start/end change - <L> = 'A' LEAP second announcement - <R> = 'R' alternate antenna (reminiscent of PZF535) usually ' ' - <L> = 'L' on 23:59:60 -</pre> - -<p>For the Meinberg parse look into clock_meinberg.c - -<br> -<h2>Raw DCF77 Data via serial line</h2> -<p>RAWDCF: end=TIMEOUT>1.5s, sync each char (any char),generate psuedo time - codes, fixed format -<p> - direct DCF77 code input - - <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. - -<pre> - The preferred tty setting is: - CFLAG (B50|CS8|CREAD|CLOCAL) - IFLAG 0 - OFLAG 0 - LFLAG 0 -</pre> - -<h2>DCF77 raw time code</h2> - - -<p>From "Zur Zeit", Physikalisch-Technische Bundesanstalt (PTB), Braunschweig -und Berlin, März 1989 -<br> -<pre> - Timecode transmission: - - AM: - - time marks are send every second except for the second before the - next minute mark - time marks consist of a reduction of transmitter power to 25% - of the nominal level - the falling edge is the time indication (on time) - time marks of a 100ms duration constitute a logical 0 - time marks of a 200ms duration constitute a logical 1 - - FM: - - see the spec. (basically a (non-)inverted psuedo random phase shift) - - Encoding: - - Second Contents - 0 - 10 AM: free, FM: 0 - 11 - 14 free - 15 R - alternate antenna - 16 A1 - expect zone change (1 hour before) - 17 - 18 Z1,Z2 - time zone - 0 0 illegal - 0 1 MEZ (MET) - 1 0 MESZ (MED, MET DST) - 1 1 illegal - 19 A2 - expect leap insertion/deletion (1 hour before) - 20 S - start of time code (1) - 21 - 24 M1 - BCD (lsb first) Minutes - 25 - 27 M10 - BCD (lsb first) 10 Minutes - 28 P1 - Minute Parity (even) - 29 - 32 H1 - BCD (lsb first) Hours - 33 - 34 H10 - BCD (lsb first) 10 Hours - 35 P2 - Hour Parity (even) - 36 - 39 D1 - BCD (lsb first) Days - 40 - 41 D10 - BCD (lsb first) 10 Days - 42 - 44 DW - BCD (lsb first) day of week (1: Monday -> 7: Sunday) - 45 - 49 MO - BCD (lsb first) Month - 50 MO0 - 10 Months - 51 - 53 Y1 - BCD (lsb first) Years - 54 - 57 Y10 - BCD (lsb first) 10 Years - 58 P3 - Date Parity (even) - 59 - usually missing (minute indication), except for leap insertion -</pre> - -<hr> -<h2>Schmid clock</h2> - -<p> - Schmid clock: needs poll, binary input, end='\xFC', sync start - - <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. -<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). - -<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) -</pre> - -<hr> -<h2>Trimble SV6 ASCII time code (TAIP)</h2> - -<p> - Trimble SV6: needs poll, ascii timecode, start='>', end='<', - query='>QTM<', eol='<' - -<p> Trimble SV6 is a GPS receiver with PPS output. It needs to be polled. - It also need a special tty mode setup (EOL='<'). -<pre> - TTY setup is: - CFLAG (B4800|CS8|CREAD) - IFLAG (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON) - OFLAG (OPOST|ONLCR) - LFLAG (ICANON|ECHOK) - - Special flags are: - PARSE_F_PPSPPS - use CIOGETEV for PPS time stamping - PARSE_F_PPSONSECOND - the time code is not related to - the PPS pulse (so use the time code - only for the second epoch) - - Timecode - 0000000000111111111122222222223333333 / char - 0123456789012345678901234567890123456 \ posn - >RTMhhmmssdddDDMMYYYYoodnnvrrrrr;*xx< Actual - ----33445566600112222BB7__-_____--99- Parse - >RTM 1 ;* < Check -</pre> - -<hr> -<h2>ELV DCF7000</h2> -<p> - ELV DCF7000: end='\r', pattern=" - - - - - - - \r" -<p> - The ELV DCF7000 is a cheap DCF77 receiver sending each second - a time code (though not very precise!) delimited by '`r' -<pre> - Timecode - YY-MM-DD-HH-MM-SS-FF\r - - FF&0x1 - DST - FF&0x2 - DST switch warning - FF&0x4 - unsynchronised -</pre> -<hr> -<h2>HOPF 6021 und Kompatible</h2> - -<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. - -<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 - - Type 6021 Serial Output format - - 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> -<h2>Diem Computime Clock</h2> - -<p> - The Computime receiver sends a datagram in the following format every minute -<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> -<h2>WHARTON 400A Series Clock with a 404.2 Serial interface</h2> - -<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 : -<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> - WHARTON 400A Series output format 1 is as follows : -<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 - S Status byte : 0x30 + - bit 0 0 = MSF source 1 = DCF source - bit 1 0 = Winter time 1 = Summer time - bit 2 0 = not synchronised 1 = synchronised - bit 3 0 = no early warning 1 = early warning -</pre> |