/*
* It's a live one! Remember this time.
*/
- pp->lasttime = current_time;
+
++ instance->lastref = instance->lastrec;
+ refclock_receive(peer);
/*
- * Determine the reference clock offset and
- * dispersion. NKEEP of NSAMPLE offsets are
- * passed through a median filter.
- * Save the (filtered) offset and dispersion in
- * pp->offset and pp->disp.
- */
- if ((cp = jupiter_process(peer)) != NULL) {
- jupiter_debug(peer,
- "jupiter_receive: process: %s\n", cp);
- refclock_report(peer, CEVNT_BADTIME);
- break;
- }
- /*
- * Return offset and dispersion to control
- * module. We use lastrec as both the reference
- * time and receive time in order to avoid
- * being cute, like setting the reference time
- * later than the receive time, which may cause
- * a paranoid protocol module to chuck out the
- * data.
+ * If we get here - what we got from the clock is
+ * OK, so say so
*/
- jupiter_debug(peer,
- "jupiter_receive: process time: \
- %4d-%03d %02d:%02d:%02d at %s, %s\n",
- pp->year, pp->day,
- pp->hour, pp->minute, pp->second,
- prettydate(&pp->lastrec), lfptoa(&pp->offset, 6));
- pp->lastref = pp->lastrec;
- refclock_receive(peer);
+ refclock_report(peer, CEVNT_NOMINAL);
/*
* We have succeeded in answering the poll.
if (last_timecode == 0)
/* XXX debugging */
- jupiter_debug(peer,
- "jupiter_parse_t: UTC <none> (gweek/sweek %u/%u)\n",
- up->gweek, sweek);
+ jupiter_debug(instance->peer,
+ "jupiter_parse_t", "UTC <none> (gweek/sweek %u/%u)",
+ instance->gweek, sweek);
else {
/* XXX debugging */
- t = last_timecode - (u_int32)JAN_1970;
- tm = gmtime(&t);
+ tm = gmtime(&last_timecode);
cp = asctime(tm);
- jupiter_debug(peer,
- "jupiter_parse_t: UTC %.24s (gweek/sweek %u/%u)\n",
- cp, up->gweek, sweek);
+ jupiter_debug(instance->peer,
+ "jupiter_parse_t", "UTC %.24s (gweek/sweek %u/%u)",
+ cp, instance->gweek, sweek);
/* Billboard last_timecode (which is now the current time) */
- jt = &cal;
- caljulian(last_timecode, jt);
- pp = peer->procptr;
- pp->year = jt->year;
- pp->day = jt->yearday;
- pp->hour = jt->hour;
- pp->minute = jt->minute;
- pp->second = jt->second;
+ instance->peer->procptr->year = tm->tm_year + 1900;
+ instance->peer->procptr->day = tm->tm_yday + 1;
+ instance->peer->procptr->hour = tm->tm_hour;
+ instance->peer->procptr->minute = tm->tm_min;
+ instance->peer->procptr->second = tm->tm_sec;
- instance->peer->procptr->msec = 0;
- instance->peer->procptr->usec = 0;
}
- /* XXX debugging */
- tm = gmtime(&up->ppsev.tv.tv_sec);
- cp = asctime(tm);
flags = getshort(jp->flags);
- jupiter_debug(peer,
- "jupiter_parse_t: PPS %.19s.%06lu %.4s (serial %u)%s\n",
- cp, up->ppsev.tv.tv_usec, cp + 20, up->ppsev.serial,
- (flags & JUPITER_O_PULSE_VALID) == 0 ?
- " NOT VALID" : "");
/* Toss if not designated "valid" by the gps */
if ((flags & JUPITER_O_PULSE_VALID) == 0) {