~ubuntu-branches/debian/squeeze/ntp/squeeze-201010051545

« back to all changes in this revision

Viewing changes to html/parsedata.html

  • Committer: Bazaar Package Importer
  • Author(s): Kurt Roeckx
  • Date: 2009-01-05 21:10:03 UTC
  • mfrom: (1.2.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090105211003-mh6zc3um4k1uhsj7
Tags: 1:4.2.4p4+dfsg-8
It did not properly check the return value of EVP_VerifyFinal
which results in an malformed DSA signature being treated as
a good signature rather than as an error.  (CVE-2009-0021)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
<html>
4
4
 
5
 
    <head>
6
 
        <meta name="generator" content="HTML Tidy, see www.w3.org">
7
 
        <title>NTP PARSE clock data formats</title>
8
 
        <link href="scripts/style.css" type="text/css" rel="stylesheet">
9
 
    </head>
 
5
        <head>
 
6
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
 
7
                <meta name="generator" content="HTML Tidy, see www.w3.org">
 
8
                <title>NTP PARSE clock data formats</title>
 
9
                <link href="scripts/style.css" type="text/css" rel="stylesheet">
 
10
        </head>
10
11
 
11
 
    <body>
12
 
        <h3>NTP PARSE clock data formats</h3>
13
 
        <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>
14
 
        <hr>
15
 
        <h4>Meinberg clocks</h4>
16
 
        <pre>
 
12
        <body>
 
13
                <h3>NTP PARSE clock data formats</h3>
 
14
                <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
                <hr>
 
16
                <h4>Meinberg clocks</h4>
 
17
                <pre>
17
18
Meinberg: start=&lt;STX&gt;, end=&lt;ETX&gt;, sync on start
18
19
      pattern=&quot;\2D:  .  .  ;T: ;U:  .  .  ;    \3&quot;
19
20
      pattern=&quot;\2  .  .  ;  ;   :  :  ;        \3&quot;
20
21
      pattern=&quot;\2  .  .  ;  ;   :  :  ;    :  ;        ;   .         .       &quot;
21
22
</pre>
22
 
        <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>
23
 
        <p>General characteristics:<br>
24
 
            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.</p>
25
 
        <p>The preferred tty setting for Meinberg is:</p>
26
 
        <pre>
 
23
                <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>
 
24
                <p>General characteristics:<br>
 
25
                        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>
 
26
                <p>The preferred tty setting for Meinberg DCF77 receivers is 9600/7E2:</p>
 
27
                <pre>
27
28
                CFLAG           (B9600|CS7|PARENB|CREAD|HUPCL)
28
29
                IFLAG           (IGNBRK|IGNPAR|ISTRIP)
29
30
                OFLAG           0
30
31
                LFLAG           0
31
32
        </pre>
32
 
        <p>The tty setting for Meinberg GPS 166/167 receivers is:</p>
33
 
        <pre>
 
33
                <p>The tty setting for Meinberg GPS16x/17x receivers is 19200/8N1:</p>
 
34
                <pre>
34
35
                CFLAG           (B19200|CS8|PARENB|CREAD|HUPCL)
35
36
                IFLAG           (IGNBRK|IGNPAR|ISTRIP)
36
37
                OFLAG           0
37
38
                LFLAG           0
38
39
        </pre>
39
 
        <p>The clock is run at datagram once per second. Stock dataformat is:</p>
40
 
        <pre>
41
 
    &lt;STX&gt;D:&lt;dd&gt;.&lt;mm&gt;.&lt;yy&gt;;T:&lt;w&gt;;U:&lt;hh&gt;:&lt;mm&gt;:&lt;ss&gt;;&lt;S&gt;&lt;F&gt;&lt;D&gt;&lt;A&gt;&lt;ETX&gt;
42
 
pos:  0  00 00 0 00 0 11 111 1 111 12 2 22 2 22 2 2  2  3  3   3
43
 
      1  23 45 6 78 9 01 234 5 678 90 1 23 4 56 7 8  9  0  1   2
44
 
 
45
 
&lt;STX&gt;           = '\002' ASCII start of text
46
 
&lt;ETX&gt;           = '\003' ASCII end of text
47
 
&lt;dd&gt;,&lt;mm&gt;,&lt;yy&gt;  = day, month, year(2 digits!!)
48
 
&lt;w&gt;             = day of week (sunday= 0)
49
 
&lt;hh&gt;,&lt;mm&gt;,&lt;ss&gt;  = hour, minute, second
50
 
&lt;S&gt;             = '#' if never synced since powerup else ' ' for DCF U/A 31
51
 
                  '#' if not PZF sychronisation available else ' ' for PZF 535
52
 
&lt;F&gt;             = '*' if time comes from internal quartz else ' '
53
 
&lt;D&gt;             = 'S' if daylight saving time is active else ' '
54
 
&lt;D&gt;             = 'U' if UTC time code is deliverd else ' '
55
 
&lt;A&gt;             = '!' during the hour preceeding an daylight saving time
56
 
                      start/end change
57
 
&lt;A&gt;             = 'A' if a leap second is announced
58
 
</pre>
59
 
        <pre>
60
 
        &lt;STX&gt;&lt;dd&gt;.&lt;mm&gt;.&lt;yy&gt;; &lt;w&gt;; &lt;hh&gt;:&lt;mm&gt;:&lt;ss&gt;; &lt;U&gt;&lt;S&gt;&lt;F&gt;&lt;D&gt;&lt;A&gt;&lt;L&gt;&lt;R&gt;&lt;ETX&gt;
61
 
    pos:  0   00 0 00 0 00 11 1 11 11 1 11 2 22 22 2  2  2  2  2  3  3   3
62
 
          1   23 4 56 7 89 01 2 34 56 7 89 0 12 34 5  6  7  8  9  0  1   2
63
 
    &lt;STX&gt;           = '\002' ASCII start of text
64
 
    &lt;ETX&gt;           = '\003' ASCII end of text
65
 
    &lt;dd&gt;,&lt;mm&gt;,&lt;yy&gt;  = day, month, year(2 digits!!)
66
 
    &lt;w&gt;             = day of week (sunday= 0)
67
 
    &lt;hh&gt;,&lt;mm&gt;,&lt;ss&gt;  = hour, minute, second
68
 
    &lt;U&gt;             = 'U' UTC time display
69
 
    &lt;S&gt;             = '#' if never synced since powerup else ' ' for DCF U/A 31
70
 
                      '#' if not PZF sychronisation available else ' ' for PZF 535
71
 
    &lt;F&gt;             = '*' if time comes from internal quartz else ' '
72
 
    &lt;D&gt;             = 'S' if daylight saving time is active else ' '
73
 
    &lt;A&gt;             = '!' during the hour preceeding an daylight saving time
74
 
                          start/end change
75
 
    &lt;L&gt;             = 'A' LEAP second announcement
76
 
    &lt;R&gt;             = 'R' alternate antenna
77
 
</pre>
78
 
        <p>Meinberg GPS166 receiver<br>
79
 
            You must get the Uni-Erlangen firmware for the GPS receiver support to work to full satisfaction !</p>
80
 
        <pre>
81
 
        &lt;STX&gt;&lt;dd&gt;.&lt;mm&gt;.&lt;yy&gt;; &lt;w&gt;; &lt;hh&gt;:&lt;mm&gt;:&lt;ss&gt;; &lt;+/-&gt;&lt;00:00&gt;; &lt;U&gt;&lt;S&gt;&lt;F&gt;&lt;D&gt;&lt;A&gt;&lt;L&gt;&lt;R&gt;&lt;L&gt;; &lt;position...&gt;&lt;ETX&gt;
82
 
 *
83
 
           000000000111111111122222222223333333333444444444455555555556666666
84
 
           123456789012345678901234567890123456789012345678901234567890123456
85
 
        \x0209.07.93; 5; 08:48:26; +00:00;        ; 49.5736N  11.0280E  373m\x03
86
 
 *
87
 
    
88
 
    &lt;STX&gt;           = '\002' ASCII start of text
89
 
    &lt;ETX&gt;           = '\003' ASCII end of text
90
 
    &lt;dd&gt;,&lt;mm&gt;,&lt;yy&gt;  = day, month, year(2 digits!!)
91
 
    &lt;w&gt;             = day of week (sunday= 0)
92
 
    &lt;hh&gt;,&lt;mm&gt;,&lt;ss&gt;  = hour, minute, second
93
 
    &lt;+/-&gt;,&lt;00:00&gt;   = offset to UTC
94
 
    &lt;S&gt;             = '#' if never synced since powerup else ' ' for DCF U/A 31
95
 
                      '#' if not PZF sychronisation available else ' ' for PZF 535
96
 
    &lt;U&gt;             = 'U' UTC time display
97
 
    &lt;F&gt;             = '*' if time comes from internal quartz else ' '
98
 
    &lt;D&gt;             = 'S' if daylight saving time is active else ' '
99
 
    &lt;A&gt;             = '!' during the hour preceeding an daylight saving time
100
 
                          start/end change
101
 
    &lt;L&gt;             = 'A' LEAP second announcement
102
 
    &lt;R&gt;             = 'R' alternate antenna (reminiscent of PZF535) usually ' '
103
 
    &lt;L&gt;              = 'L' on 23:59:60
104
 
</pre>
105
 
        <p>For the Meinberg parse look into clock_meinberg.c</p>
106
 
        <h4>Raw DCF77 Data via serial line</h4>
107
 
        <p>RAWDCF: end=TIMEOUT&gt;1.5s, sync each char (any char),generate psuedo time codes, fixed format</p>
108
 
        <p>direct DCF77 code input</p>
109
 
        <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>
110
 
        <pre>
 
40
                <p>All clocks should be run at datagram once per second.<br><br></p>
 
41
                <p>Format of the Meinberg standard time string:</p>
 
42
<pre>
 
43
        <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>
 
44
    pos:  0  000000001111111111222222222233  3
 
45
          1  234567890123456789012345678901  2
 
46
 
 
47
    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
 
48
    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
 
49
    <i>w</i>             = day of week (1..7, Monday = 1)
 
50
    <i>hh:mm:ss</i>      = hour, minute, second, separated by dots
 
51
    <i>u</i>             = '#' for GPS receivers: time is <b>not</b> synchronized
 
52
                           '#' for older PZF5xx receivers: no correlation, not synchronized
 
53
                           '#' for other devices: never sync'ed since powerup
 
54
                           ' ' if nothing of the above applies
 
55
    <i>v</i>             = '*' for GPS receivers: position has <b>not</b> been verified
 
56
                           '*' for other devices: freewheeling based on internal quartz
 
57
                           ' ' if nothing of the above applies
 
58
    <i>x</i>             = 'U' if UTC time is transmitted
 
59
                           'S' if daylight saving time is active
 
60
                           ' ' if nothing of the above applies
 
61
    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time
 
62
                           'A' during the hour preceding a leap second
 
63
                           ' ' if nothing of the above applies
 
64
    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
 
65
</pre>
 
66
                <p>Format of the Uni Erlangen time string for PZF5xx receivers:</p>
 
67
<pre>
 
68
        <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>
 
69
    pos:  0  000000001111111111222222222233  3
 
70
          1  234567890123456789012345678901  2
 
71
 
 
72
    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
 
73
    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
 
74
    <i>w</i>             = day of week (1..7, Monday = 1)
 
75
    <i>hh:mm:ss</i>      = hour, minute, second, separated by colons
 
76
 
 
77
    <i>t</i>             = 'U' if UTC time is transmitted, else ' '
 
78
    <i>u</i>             = '#' for older PZF5xx receivers: no correlation, not synchronized
 
79
                           '#' for PZF511 and newer: never sync'ed since powerup
 
80
                           ' ' if nothing of the above applies
 
81
    <i>v</i>             = '*' if freewheeling based on internal quartz, else ' '
 
82
    <i>x</i>             = 'S' if daylight saving time is active, else ' '
 
83
    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time, else ' '
 
84
    <i>z</i>             = 'A' during the hour preceding a leap second, else ' '
 
85
    <i>a</i>             = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
 
86
    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
 
87
</pre>
 
88
                <p>Format of the Uni Erlangen time string for GPS16x/GPS17x receivers:</p>
 
89
<pre>
 
90
        <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>
 
91
    pos:  0  0000000011111111112222222222333333333344444444445555555555666666  6
 
92
          1  2345678901234567890123456789012345678901234567890123456789012345  6
 
93
 
 
94
    <i>&lt;STX&gt;</i>         = start-of-text, ASCII code 0x02
 
95
    <i>dd.mm.yy</i>      = day of month, month, year of the century, separated by dots
 
96
    <i>w</i>             = day of week (1..7, Monday = 1)
 
97
    <i>hh:mm:ss</i>      = hour, minute, second, separated by colons
 
98
    <i>+uu:uu</i>        = offset to UTC in hours and minutes, preceded by + or -
 
99
    <i>u</i>             = '#' if time is <b>not</b> synchronized, else ' '
 
100
    <i>v</i>             = '*' if position has <b>not</b> been verified, else ' '
 
101
    <i>x</i>             = 'S' if daylight saving time is active, else ' '
 
102
    <i>y</i>             = '!' during the hour preceding start or end of daylight saving time, else ' '
 
103
    <i>z</i>             = 'A' during the hour preceding a leap second, else ' '
 
104
    <i>a</i>             = 'R' alternate antenna (reminiscent of PZF5xx), usually ' ' for GPS receivers
 
105
    <i>b</i>             = 'L' during a leap second, i.e. if the seconds field is 60, else ' '
 
106
    <i>ll.lllln</i>      = position latitude in degrees, 'n' can actually be 'N' or 'S', i.e. North or South
 
107
    <i>lll.lllle</i>     = position longitude in degrees, 'e' can actually be 'E' or 'W', i.e. East or West
 
108
    <i>hhhh</i>          = position altitude in meters, always followed by 'm'
 
109
    <i>&lt;ETX&gt;</i>         = end-of-text, ASCII code 0x03
 
110
</pre>
 
111
                <p>Examples for Uni Erlangen strings from GPS receivers:</p>
 
112
<pre>
 
113
        \x02 09.07.93; 5; 08:48:26; +00:00;        ; 49.5736N  11.0280E  373m \x03
 
114
        \x02 08.11.06; 3; 14:39:39; +00:00;        ; 51.9828N   9.2258E  176m \x03
 
115
</pre>
 
116
                <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>
 
117
                <p>For the Meinberg parse look into clk_meinberg.c<br><br></p>
 
118
                <hr>
 
119
                <h4>Raw DCF77 Data via serial line</h4>
 
120
                <p>RAWDCF: end=TIMEOUT&gt;1.5s, sync each char (any char),generate psuedo time codes, fixed format</p>
 
121
                <p>direct DCF77 code input</p>
 
122
                <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>
 
123
                <pre>
111
124
        The preferred tty setting is:
112
125
                CFLAG           (B50|CS8|CREAD|CLOCAL)
113
126
                IFLAG           0
114
127
                OFLAG           0
115
128
                LFLAG           0
116
129
</pre>
117
 
        <h4>DCF77 raw time code</h4>
118
 
        <p>From &quot;Zur Zeit&quot;, Physikalisch-Technische Bundesanstalt (PTB), Braunschweig und Berlin, M&#132;rz 1989<br>
119
 
        </p>
120
 
        <p>Timecode transmission:</p>
121
 
        <pre>
 
130
                <h4>DCF77 raw time code</h4>
 
131
                <p>From &quot;Zur Zeit&quot;, Physikalisch-Technische Bundesanstalt (PTB), Braunschweig und Berlin, M&auml;rz 1989<br>
 
132
                </p>
 
133
                <p>Timecode transmission:</p>
 
134
                <pre>
122
135
        AM:
123
136
 
124
137
        time marks are send every second except for the second before the
129
142
        time marks of a 100ms duration constitute a logical 0
130
143
        time marks of a 200ms duration constitute a logical 1
131
144
</pre>
132
 
        <p>see the spec. (basically a (non-)inverted psuedo random phase shift) encoding:</p>
133
 
        <pre>
 
145
                <p>see the spec. (basically a (non-)inverted psuedo random phase shift) encoding:</p>
 
146
                <pre>
134
147
        FM:
135
148
 
136
149
        Second  Contents
143
156
                 0  1 MEZ  (MET)
144
157
                 1  0 MESZ (MED, MET DST)
145
158
                 1  1 illegal
146
 
        19              A2    - expect leap insertion/deletion (1 hour before)
147
 
        20              S     - start of time code (1)
 
159
        19      A2    - expect leap insertion/deletion (1 hour before)
 
160
        20      S     - start of time code (1)
148
161
        21 - 24 M1    - BCD (lsb first) Minutes
149
162
        25 - 27 M10   - BCD (lsb first) 10 Minutes
150
 
        28              P1    - Minute Parity (even)
 
163
        28      P1    - Minute Parity (even)
151
164
        29 - 32 H1    - BCD (lsb first) Hours
152
 
        33 - 34      H10   - BCD (lsb first) 10 Hours
153
 
        35              P2    - Hour Parity (even)
 
165
        33 - 34 H10   - BCD (lsb first) 10 Hours
 
166
        35      P2    - Hour Parity (even)
154
167
        36 - 39 D1    - BCD (lsb first) Days
155
168
        40 - 41 D10   - BCD (lsb first) 10 Days
156
169
        42 - 44 DW    - BCD (lsb first) day of week (1: Monday -&gt; 7: Sunday)
157
 
        45 - 49 MO    - BCD (lsb first) Month
158
 
        50           MO0   - 10 Months
 
170
        45 - 49 MO1   - BCD (lsb first) Month
 
171
        50      MO10  - 10 Months
159
172
        51 - 53 Y1    - BCD (lsb first) Years
160
173
        54 - 57 Y10   - BCD (lsb first) 10 Years
161
 
        58              P3    - Date Parity (even)
162
 
        59                    - usually missing (minute indication), except for leap insertion
 
174
        58      P3    - Date Parity (even)
 
175
        59            - usually missing (minute indication), except for leap insertion
163
176
</pre>
164
 
        <hr>
165
 
        <h4>Schmid clock</h4>
166
 
        <p>Schmid clock: needs poll, binary input, end='\xFC', sync start</p>
167
 
        <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>
168
 
        <pre>
 
177
                <hr>
 
178
                <h4>Schmid clock</h4>
 
179
                <p>Schmid clock: needs poll, binary input, end='\xFC', sync start</p>
 
180
                <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>
 
181
                <pre>
169
182
        TTY setup is:
170
183
                CFLAG           (B1200|CS8|CREAD|CLOCAL)
171
184
                IFLAG           0
173
186
                LFLAG           0
174
187
 
175
188
</pre>
176
 
        <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>
177
 
        <pre>
 
189
                <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>
 
190
                <pre>
178
191
        Bit 0:  time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
179
192
        Bit 1:  date 3 bytes *binary, not BCD: dd.mm.yy
180
193
        Bit 2:  week day, 1 byte (unused here)
191
204
                                        bits 5-7: Zero
192
205
        Bit 6:  time in backup mode, units of 5 minutes (unused here)
193
206
</pre>
194
 
        <hr>
195
 
        <h4>Trimble SV6 ASCII time code (TAIP)</h4>
196
 
        <p>Trimble SV6: needs poll, ascii timecode, start='&gt;', end='&lt;', query='&gt;QTM&lt;', eol='&lt;'</p>
197
 
        <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>
198
 
        <pre>
 
207
                <hr>
 
208
                <h4>Trimble SV6 ASCII time code (TAIP)</h4>
 
209
                <p>Trimble SV6: needs poll, ascii timecode, start='&gt;', end='&lt;', query='&gt;QTM&lt;', eol='&lt;'</p>
 
210
                <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>
 
211
                <pre>
199
212
        TTY setup is:
200
213
                CFLAG            (B4800|CS8|CREAD)
201
214
                IFLAG            (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON)
202
215
                OFLAG            (OPOST|ONLCR)
203
216
                LFLAG            (ICANON|ECHOK)
204
217
</pre>
205
 
        <p>Special flags are:</p>
206
 
        <pre>           PARSE_F_PPSPPS      - use CIOGETEV for PPS time stamping
 
218
                <p>Special flags are:</p>
 
219
                <pre>           PARSE_F_PPSPPS      - use CIOGETEV for PPS time stamping
207
220
                PARSE_F_PPSONSECOND - the time code is not related to
208
221
                                      the PPS pulse (so use the time code
209
222
                                      only for the second epoch)
215
228
        ----33445566600112222BB7__-_____--99-   Parse
216
229
        &gt;RTM                      1     ;*  &lt;     Check
217
230
</pre>
218
 
        <hr>
219
 
        <h4>ELV DCF7000</h4>
220
 
        <p>ELV DCF7000: end='\r', pattern=&quot; - - - - - - - \r&quot;</p>
221
 
        <p>The ELV DCF7000 is a cheap DCF77 receiver sending each second a time code (though not very precise!) delimited by '`r'</p>
222
 
        <pre>
 
231
                <hr>
 
232
                <h4>ELV DCF7000</h4>
 
233
                <p>ELV DCF7000: end='\r', pattern=&quot; - - - - - - - \r&quot;</p>
 
234
                <p>The ELV DCF7000 is a cheap DCF77 receiver sending each second a time code (though not very precise!) delimited by '`r'</p>
 
235
                <pre>
223
236
        Timecode
224
237
          YY-MM-DD-HH-MM-SS-FF\r
225
238
 
227
240
                FF&amp;0x2      - DST switch warning
228
241
                FF&amp;0x4  - unsynchronised
229
242
</pre>
230
 
        <hr>
231
 
        <h4>HOPF 6021 und Kompatible</h4>
232
 
        <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>
233
 
        <pre>
 
243
                <hr>
 
244
                <h4>HOPF 6021 und Kompatible</h4>
 
245
                <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>
 
246
                <pre>
234
247
 hopf Funkuhr 6021 
235
248
      used with 9600,8N1,
236
249
      UTC via serial line
241
254
      transmit with control characters
242
255
      transmit evry second
243
256
 </pre>
244
 
        <p>Type 6021 Serial Output format</p>
245
 
        <pre>
 
257
                <p>Type 6021 Serial Output format</p>
 
258
                <pre>
246
259
      000000000011111111 / char
247
260
      012345678901234567 \ position
248
261
      sABHHMMSSDDMMYYnre  Actual
277
290
      x 1 1 0  - Saturday
278
291
      x 1 1 1  - Sunday
279
292
</pre>
280
 
        <hr>
281
 
        <h4>Diem Computime Clock</h4>
282
 
        <p>The Computime receiver sends a datagram in the following format every minute</p>
283
 
        <pre>   
 
293
                <hr>
 
294
                <h4>Diem Computime Clock</h4>
 
295
                <p>The Computime receiver sends a datagram in the following format every minute</p>
 
296
                <pre>   
284
297
   Timestamp    T:YY:MM:MD:WD:HH:MM:SSCRLF 
285
298
   Pos          0123456789012345678901 2 3
286
299
                0000000000111111111122 2 2
296
309
   CR   Carriage return 
297
310
   LF   Linefeed
298
311
</pre>
299
 
        <hr>
300
 
        <h4>WHARTON 400A Series Clock with a 404.2 Serial interface</h4>
301
 
        <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>
302
 
        <pre>
 
312
                <hr>
 
313
                <h4>WHARTON 400A Series Clock with a 404.2 Serial interface</h4>
 
314
                <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>
 
315
                <pre>
303
316
                                        Programmable    Selected
304
317
                                        Option No       Option
305
318
        BST or CET display              3               9 or 11
309
322
        Bit length 8 bits               11              8
310
323
        Parity even                     12              E
311
324
</pre>
312
 
        <p>WHARTON 400A Series output format 1 is as follows :</p>
313
 
        <pre>
 
325
                <p>WHARTON 400A Series output format 1 is as follows :</p>
 
326
                <pre>
314
327
   Timestamp    STXssmmhhDDMMYYSETX
315
328
   Pos          0  12345678901234
316
329
                0  00000000011111
329
342
                bit 2   0 = not synchronised    1 = synchronised
330
343
                bit 3   0 = no early warning    1 = early warning
331
344
</pre>
332
 
        <hr>
333
 
        <script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
334
 
    </body>
 
345
                <hr>
 
346
                <script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
 
347
        </body>
335
348
 
336
349
</html>
 
 
b'\\ No newline at end of file'