README.parse_clocks revision 7c478bd95313f5f23a4c958a745db2134aa03244
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ident "%Z%%M% %I% %E% SMI"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncThe parse driver currently supports several clocks with different
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncquery mechanisms. In order for you to find a sample that might be
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncsimilar to a clock you might want to integrate into parse i'll sum
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncup the major features of the clocks (this information is distributed
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsyncin the parse/clk_*.c and xntpd/refclock_parse.c files).
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync---
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync Meinberg: 127.127.8. 0- 3 (PZF535TCXO)
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync 127.127.8. 4- 7 (PZF535OCXO)
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync 127.127.8. 8-11 (DCFUA31)
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync 127.127.8.28-31 (GPS166)
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync Meinberg: start=<STX>, end=<ETX>, sync on start
5c65eaa08f2ec993a19c9bef6e5463918e40e0ebvboxsync pattern="\2D: . . ;T: ;U: . . ; \3"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync pattern="\2 . . ; ; : : ; \3"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync pattern="\2 . . ; ; : : ; : ; ; . . "
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Meinberg is a german manufacturer of time code receivers. Those clocks
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync have a pretty common output format in the stock version. In order to
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync support NTP Meinberg was so kind to produce some special versions of
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync the firmware for the use with NTP. So, if you are going to use a
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Meinberg clock please ask whether there is a special Uni Erlangen
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync version.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync General characteristics:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Meinberg clocks primarily output pulse per second and a describing
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ASCII string. This string can be produced in two modes. either upon
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync the reception of a question mark or every second. NTP uses the latter
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync mechanism. The DCF77 variants have a pretty good relationship between
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync RS232 time code and the PPS signal while the GPS receiver has no fixed
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync timeing between the datagram and the pulse (you need to use PPS with
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync GPS!) on DCF77 you might get away without the PPS signal.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The preferred tty setting for Meinberg is:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync CFLAG (B9600|CS7|PARENB|CREAD|HUPCL)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync IFLAG (IGNBRK|IGNPAR|ISTRIP)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync OFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync LFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The clock is run at datagram once per second.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Stock dataformat is:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <STX>D:<dd>.<mm>.<yy>;T:<w>;U:<hh>:<mm>:<ss>;<S><F><D><A><ETX>
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync pos: 0 00 00 0 00 0 11 111 1 111 12 2 22 2 22 2 2 2 3 3 3
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 1 23 45 6 78 9 01 234 5 678 90 1 23 4 56 7 8 9 0 1 2
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <STX> = '\002' ASCII start of text
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <ETX> = '\003' ASCII end of text
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <dd>,<mm>,<yy> = day, month, year(2 digits!!)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <w> = day of week (sunday= 0)
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync <hh>,<mm>,<ss> = hour, minute, second
9c0076729ec8138e89ce8a6af9a772b68f1f8dc7vboxsync <S> = '#' if never synced since powerup else ' ' for DCF U/A 31
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync '#' if not PZF sychronisation available else ' ' for PZF 535
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <F> = '*' if time comes from internal quartz else ' '
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <D> = 'S' if daylight saving time is active else ' '
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <A> = '!' during the hour preceeding an daylight saving time
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync start/end change
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync For the university of Erlangen a special format was implemented to support
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync LEAP announcement and anouncement of alternate antenna.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Version for UNI-ERLANGEN Software is: PZFUERL V4.6 (Meinberg)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The use of this software release (or higher) is *ABSOLUTELY*
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync recommended (ask for PZFUERL version as some minor HW fixes have
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync been introduced) due to the LEAP second support and UTC indication.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The standard timecode does not indicate when the timecode is in
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync UTC (by front panel configuration) thus we have no chance to find
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync the correct utc offset. For the standard format do not ever use
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync UTC display as this is not detectable in the time code !!!
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <STX><dd>.<mm>.<yy>; <w>; <hh>:<mm>:<ss>; <U><S><F><D><A><L><R><ETX>
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync pos: 0 00 0 00 0 00 11 1 11 11 1 11 2 22 22 2 2 2 2 2 3 3 3
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 1 23 4 56 7 89 01 2 34 56 7 89 0 12 34 5 6 7 8 9 0 1 2
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <STX> = '\002' ASCII start of text
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <ETX> = '\003' ASCII end of text
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <dd>,<mm>,<yy> = day, month, year(2 digits!!)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <w> = day of week (sunday= 0)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <hh>,<mm>,<ss> = hour, minute, second
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <U> = 'U' UTC time display
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <S> = '#' if never synced since powerup else ' ' for DCF U/A 31
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync '#' if not PZF sychronisation available else ' ' for PZF 535
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <F> = '*' if time comes from internal quartz else ' '
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <D> = 'S' if daylight saving time is active else ' '
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <A> = '!' during the hour preceeding an daylight saving time
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync start/end change
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <L> = 'A' LEAP second announcement
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <R> = 'R' alternate antenna
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Meinberg GPS166 receiver
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync You must get the Uni-Erlangen firmware for the GPS receiver support
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync to work to full satisfaction !
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <STX><dd>.<mm>.<yy>; <w>; <hh>:<mm>:<ss>; <+/-><00:00>; <U><S><F><D><A><L><R><L>; <position...><ETX>
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 000000000111111111122222222223333333333444444444455555555556666666
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 123456789012345678901234567890123456789012345678901234567890123456
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync \x0209.07.93; 5; 08:48:26; +00:00; ; 49.5736N 11.0280E 373m\x03
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync *
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <STX> = '\002' ASCII start of text
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <ETX> = '\003' ASCII end of text
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <dd>,<mm>,<yy> = day, month, year(2 digits!!)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <w> = day of week (sunday= 0)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <hh>,<mm>,<ss> = hour, minute, second
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <+/->,<00:00> = offset to UTC
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <S> = '#' if never synced since powerup else ' ' for DCF U/A 31
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync '#' if not PZF sychronisation available else ' ' for PZF 535
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <U> = 'U' UTC time display
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <F> = '*' if time comes from internal quartz else ' '
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <D> = 'S' if daylight saving time is active else ' '
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <A> = '!' during the hour preceeding an daylight saving time
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync start/end change
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <L> = 'A' LEAP second announcement
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <R> = 'R' alternate antenna (reminiscent of PZF535) usually ' '
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync <L> = 'L' on 23:59:60
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync For the Meinberg parse look into clock_meinberg.c
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync---
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync RAWDCF: 127.127.8.20-23 (Conrad receiver module - delay 210ms)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 127.127.8.24-27 (FAU receiver - delay 258ms)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync RAWDCF: end=TIMEOUT>1.5s, sync each char (any char),generate psuedo time
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync codes, fixed format
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync direct DCF77 code input
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync In Europe it is relatively easy/cheap the receive the german time code
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync transmitter DCF77. The simplest version to process its signal is to
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync feed the 100/200ms pulse of the demodulated AM signal via a level
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync converter to an RS232 port at 50Baud. parse/clk_rawdcf.c holds all
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync necessary decoding logic for the time code which is transmitted each
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync minute for one minute. A bit of the time code is sent once a second.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The preferred tty setting is:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync CFLAG (B50|CS8|CREAD|CLOCAL)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync IFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync OFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync LFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync DCF77 raw time code
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync From "Zur Zeit", Physikalisch-Technische Bundesanstalt (PTB), Braunschweig
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync und Berlin, Maerz 1989
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Timecode transmission:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync AM:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync time marks are send every second except for the second before the
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync next minute mark
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync time marks consist of a reduction of transmitter power to 25%
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync of the nominal level
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync the falling edge is the time indication (on time)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync time marks of a 100ms duration constitute a logical 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync time marks of a 200ms duration constitute a logical 1
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync FM:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync see the spec. (basically a (non-)inverted psuedo random phase shift)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Encoding:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Second Contents
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 0 - 10 AM: free, FM: 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 11 - 14 free
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 15 R - alternate antenna
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 16 A1 - expect zone change (1 hour before)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 17 - 18 Z1,Z2 - time zone
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 0 0 illegal
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 0 1 MEZ (MET)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 1 0 MESZ (MED, MET DST)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 1 1 illegal
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 19 A2 - expect leap insertion/deletion (1 hour before)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 20 S - start of time code (1)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 21 - 24 M1 - BCD (lsb first) Minutes
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 25 - 27 M10 - BCD (lsb first) 10 Minutes
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 28 P1 - Minute Parity (even)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 29 - 32 H1 - BCD (lsb first) Hours
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 33 - 34 H10 - BCD (lsb first) 10 Hours
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 35 P2 - Hour Parity (even)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 36 - 39 D1 - BCD (lsb first) Days
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 40 - 41 D10 - BCD (lsb first) 10 Days
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 42 - 44 DW - BCD (lsb first) day of week (1: Monday -> 7: Sunday)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 45 - 49 MO - BCD (lsb first) Month
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 50 MO0 - 10 Months
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 51 - 53 Y1 - BCD (lsb first) Years
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 54 - 57 Y10 - BCD (lsb first) 10 Years
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 58 P3 - Date Parity (even)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 59 - usually missing (minute indication), except for leap insertion
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync---
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Schmid clock: 127.127.8.16-19
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Schmid clock: needs poll, binary input, end='\xFC', sync start
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The Schmid clock is a DCF77 receiver that sends a binary
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync time code at the reception of a flag byte. The contents
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync if the flag byte determined the time code format. The
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync binary time code is delimited by the byte 0xFC.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync TTY setup is:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync CFLAG (B1200|CS8|CREAD|CLOCAL)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync IFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync OFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync LFLAG 0
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The command to Schmid's DCF77 clock is a single byte; each bit
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync allows the user to select some part of the time string, as follows (the
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync output for the lsb is sent first).
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Bit 0: time in MEZ, 4 bytes *binary, not BCD*; hh.mm.ss.tenths
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Bit 1: date 3 bytes *binary, not BCD: dd.mm.yy
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Bit 2: week day, 1 byte (unused here)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Bit 3: time zone, 1 byte, 0=MET, 1=MEST. (unused here)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Bit 4: clock status, 1 byte, 0=time invalid,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 1=time from crystal backup,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 3=time from DCF77
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Bit 5: transmitter status, 1 byte,
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync bit 0: backup antenna
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync bit 1: time zone change within 1h
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync bit 3,2: TZ 01=MEST, 10=MET
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync bit 4: leap second will be
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync added within one hour
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync bits 5-7: Zero
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Bit 6: time in backup mode, units of 5 minutes (unused here)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync---
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Trimble SV6: 127.127.8.32-35
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Trimble SV6: needs poll, ascii timecode, start='>', end='<',
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync query='>QTM<', eol='<'
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Trimble SV6 is a GPS receiver with PPS output. It needs to be polled.
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync It also need a special tty mode setup (EOL='<').
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync TTY setup is:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync CFLAG (B4800|CS8|CREAD)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync IFLAG (BRKINT|IGNPAR|ISTRIP|ICRNL|IXON)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync OFLAG (OPOST|ONLCR)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync LFLAG (ICANON|ECHOK)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Special flags are:
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync PARSE_F_PPSPPS - use CIOGETEV for PPS time stamping
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync PARSE_F_PPSONSECOND - the time code is not related to
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync the PPS pulse (so use the time code
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync only for the second epoch)
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Timecode
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 0000000000111111111122222222223333333 / char
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync 0123456789012345678901234567890123456 \ posn
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync >RTMhhmmssdddDDMMYYYYoodnnvrrrrr;*xx< Actual
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ----33445566600112222BB7__-_____--99- Parse
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync >RTM 1 ;* <", Check
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync---
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ELV DCF7000: 127.127.8.12-15
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync ELV DCF7000: end='\r', pattern=" - - - - - - - \r"
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync The ELV DCF7000 is a cheap DCF77 receiver sending each second
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync a time code (though not very precise!) delimited by '`r'
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync Timecode
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync YY-MM-DD-HH-MM-SS-FF\r
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync FF&0x1 - DST
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync FF&0x2 - DST switch warning
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync FF&0x4 - unsynchronised
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync
320484435d67c1fb90dca3e8836d81bf939c8ba2vboxsync