### Ultralink Clock

#### Synopsis

Address: 127.127.34.u
Reference ID: `WWVB`
Driver ID: `ULINK`
Serial Port: `/dev/wwvbu`; 9600 bps, 8-bits, no parity
Features: `(none)`

#### Description

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.

    Fudge factors
    	 flag1  polling enable (1=poll 0=no poll)

Last modified: Tue Sep 14 05:53:08 EDT 1999