Lines Matching full:pps
18 * - To work properly, this driver needs PPS and TPV/TOFF sentences
20 * PPS signal.
31 * This driver works slightly different from most others, as the PPS
33 * connection. This makes using both the PPS data and the serial data
35 * raw PPS stream to the core of NTPD.
41 * secondary unit is feed with the PPS samples only and can act as a PPS
71 * ?WATCH={"device":"/dev/gps0","enable":true,"json":true,"pps":true};<CRLF>
175 * + STRICT means only feed clock samples when a valid STI/PPS pair is
177 * from PPS. Masks the serial data jitter as long PPS is available,
178 * but can rapidly deteriorate once PPS drops out.
180 * + AUTO tries to use STI/PPS pairs if available for some time, and if
181 * this fails for too long switches back to STI only until the PPS
202 /* Primary channel PPS avilability dance:
203 * Every good PPS sample gets us a credit of PPS_INCCOUNT points, every
204 * bad/missing PPS sample costs us a debit of PPS_DECCOUNT points. When
206 * PPS-augmented samples are fed to the core; when the account drops to
210 * PPS-augmented time stamps.
216 /* The secondary (PPS) channel uses a different strategy to avoid old
217 * PPS samples in the median filter.
288 /* data for the secondary PPS channel */
300 /* PPS time stamps primary + secondary channel */
301 l_fp pps_local; /* when we received the PPS message */
306 int ppscount; /* PPS counter (primary unit) */
307 int ppscount2; /* PPS counter (secondary unit) */
316 int16_t pps_prec; /* PPS precision from GPSD or above */
319 l_fp pps_fudge; /* PPS fudge primary channel */
320 l_fp pps_fudge2; /* PPS fudge secondary channel */
327 int fl_pps2 : 1; /* valid pulse seen for PPS channel */
332 int pf_nsec : 1; /* have nanosec PPS info */
347 u_int tc_pps_recv;/* received PPS timing info records */
886 /* Reduce the count by one. Flush sample buffer and clear PPS in timer_secondary()
983 /* use TPV reference time + PPS receive time */ in eval_strict()
994 /* PPS processing for the secondary channel. GPSD provides us with full
1009 /* PPS peer flag logic */ in eval_pps_secondary()
1048 /* check how to handle STI+PPS: Can PPS be used to augment STI in eval_auto()
1050 * temporary missing PPS signal, or do we feed on STI time in eval_auto()
1061 "%s: expect valid PPS from now", in eval_auto()
1501 /* With the 3.9 GPSD protocol, '*_musec' vanished from the PPS in process_version()
1530 * request PPS (and TOFF) transmission. in process_version()
1534 up->device, (up->pf_toff ? ",\"pps\":true" : "")); in process_version()
1616 * data presion instead. (Note: The PPS branch has a different in process_tpv()
1645 * if we're explicitely requested to ignore PPS data. in process_pps()
1671 /* Try to read the precision field from the PPS record. If it's in process_pps()
1694 DPRINTF(2, ("%s: PPS record processed," in process_pps()
1705 DPRINTF(1, ("%s: PPS record processing FAILED\n", in process_pps()
1787 else if (!strcmp("PPS", clsid)) in gpsd_parse()
1799 /* if possible, feed the PPS side channel */ in gpsd_parse()
1804 /* check PPS vs. STI receive times: in gpsd_parse()
1805 * If STI is before PPS, then clearly the STI is too old. If PPS in gpsd_parse()
1806 * is before STI by more than one second, then PPS is too old. in gpsd_parse()
1814 up->fl_pps = 0; /* pps too old */ in gpsd_parse()