Trimble Clock Output Format
Lines starting with 2 numbers and an IP-address (usually 127.127.31.0) are produced by the GPS receiver. They give the current status of the GPS receiver and are produced about once every 64 seconds. The numbers and address are followed by a keyword and several data fields separated by spaces. The keywords are:
- C1: Comprehensive time
Loads of information about the clock's state, happiness and accuracy. Currently output every poll period. Could back off.
- L1: UTC leap second parameters
Used to determine when a leap second has to be inserted. Output whenever utc_flags (in U1) , e.g. once at daemon startup and then very infrequently.
- S1: satellite tracking data
For installation verification, and the "sats available" plots. One record per channel receiving a satellite. Currently output every poll period. Could back off.
- U1: Primary UTC time
This is used to determine the time down to second granularity. Output every poll period. (64s tyically, it never seems to back off?!?)
The digits in the record identifiers are intended to identify any future variants of the particular records.
Further I compiled a general purpose TSIP parser and printer from Trimble into the clock code. This is used to print any other information sent by the clock in user readable format (well engineer readable). So programs processing clockstats must make sure they positively identify the regular output formats explained in more detail below.
C1: Comprehensive time
Format: C1 dd.mm.yy hh:mm:ss mode bias biasunc rate rateu utcoff lat lon alt sats
Example: C1 8.12.2000 17:24:44 6 346571 68.6 -112 33.4 13 52d22.376219N 4d53.268635E 66 -30 -17 0 6 -1 22 25 -10
- 0 - 2D
- 1 - 3D
- 2 - 1 satellite
- 3 - automatic
- 6 - overdetermined clock
- Bias: The offset between GPS time and the receiver's local time base [unit: ns]. The clock keeps this below 500us. The PPS output is corrected for this value! So it is here only for info and we do not use it.
- Biasunc: The "uncertainty" of the bias value [unit: ns]. Unfortunately Trimble chose not to tell us what exactly this is. So I can only say that it is an estimation of how far the bias value could be off. If this is above ~1000 (1us) the PPS gets turned off. **** This is an important quality indicator! ****
- rate: the rate of change of bias [unit: ppb]
- rateu: "uncertainty" of rate
- lat: latitude of position [unit: degrees, decimal minutes]
- lon: longitude of position [unit: degrees, decimal minutes]
- alt: altitude of position [unit: m]
- sats: satellites (PRNs) tracked. Positive PRN means that the satellite is used in the soloution, negative means it is not.
L1: UTC leap second parameters
format: L1 (dt_lsf-dt_ls), dt_ls, dt_lsf, a0, a1, tot, wn_t, wn_lsf, dn
example: L1 0 13 13 0 0 61440 1091 990 5
Definitions for the variables are best found in the GPS spec (ICD-200). The one that we use is the first one which tells us the amount of "leap" to insert at the next leap event time. Basically whether to add (normal) or subtract (not expected) a second at the time the leap event is scheduled.
U1: Primary UTC time
format: U1 dd.mm.yyyy hh:mm:ss dt_ls UTC_flags
example: U1 8.12.2000 17:24:44 13 01
- dt_ls: current whole second offset between GPS and UTC times
- bit 0 - UTC available, e.g. we know the difference between GPS and UTC times. The clock will not be deemed reachable for ntp purposes unless this is on.
- bit 4 - leap scheduled, e.g. leap event time is in the future
- bit 5 - leap pending, leap event at the end of current day this is signalled to the ntp clock machinery
- bit 6 - leap warning, set from +/- 6h before until +/- 6h after a leap event
- bit 7 - leap event in progress
S1: Satellite Tracking Data
Format: S1 prn chan aqflag ephstat snr azinuth elevation
Example: S1 30 1 2 02 24.6 118.1 33.7
- prn: sat PRN
- chan: receiver channel used
- aqflag: aquisition flag. 1 aquired and used in solution, don't rememebr the others
- ephst: ephemeris stat, bit 1 - epemeris decoded and available
I would look at it like this: If U1 has flags 1 it is a good sign reception is acceptable. If C1 has biasunc is and stays below -say- 300ns you are done and everything else is for satisfying you curiosity. If it is not you can use the S1 records to find out if it sees any satellites at all and if yes how many.