This driver supports the Ultralink Model 320 RS-232 powered WWVB receiver. PDF specs available on www.ulio.com. This driver also supports the Model 330,331,332 decoders in both polled or continous time code mode. Leap second and quality are supported.
Most of this code is originally from refclock_wwvb.c with thanks. Any mistakes are mine. Any improvements are welcome.
The Model 320 timecode format is: <cr><lf>SQRYYYYDDD+HH:MM:SS.mmLT<cr> where: S = 'S' -- sync'd in last hour, '0'-'9' - hours x 10 since last update, else '?' Q = Number of correlating time-frames, from 0 to 5 R = 'R' -- reception in progress, 'N' -- Noisy reception, ' ' -- standby mode YYYY = year from 1990 to 2089 DDD = current day from 1 to 366 + = '+' if current year is a leap year, else ' ' HH = UTC hour 0 to 23 MM = Minutes of current hour from 0 to 59 SS = Seconds of current minute from 0 to 59 mm = 10's milliseconds of the current second from 00 to 99 L = Leap second pending at end of month -- 'I' = inset, 'D'=delete T = DST <-> STD transition indicators
Note that this driver does not do anything with the T flag.
The M320 also has a 'U' command which returns UT1 correction information. It is not used in this driver.
The Model 33x timecode format is: S9+D 00 YYYY+DDDUTCS HH:MM:SSl+5 Where: S = sync indicator S insync N not in sync the sync flag is WWVB decoder sync nothing to do with time being correct 9+ = signal level 0 thru 9+ If over 9 indicated as 9+ D = data bit ( fun to watch but useless ;-) space 00 = hours since last GOOD WWVB frame sync space YYYY = current year + = leap year indicator DDD = day of year UTC = timezone (always UTC) S = daylight savings indicator space HH = hours : = This is the REAL in sync indicator (: = insync) MM = minutes : = : = in sync ? = NOT in sync SS = seconds L = leap second flag +5 = UT1 correction (sign + digit ))
This driver ignores UT1 correction,DST indicator,Leap year and signal level.
flag1 polling enable (1=poll 0=no poll)