This might still needed improvement.
* [Bug 2832] refclock_jjy.c supports the TDC-300.
* [Bug 2834] Correct a broken html tag in html/refclock.html
+* [Bug 2836] DFC77 patches from Frank Kardel to make decoding more
+ robust, and require 2 consecutive timestamps to be consistent.
* [Bug 2837] Allow a configurable DSCP value.
* [Bug 2837] add test for DSCP to ntpd/complete.conf.in
* [Bug 2842] Glitch in ntp.conf.def documentation stanza.
#ifndef PARSEKERNEL
msyslog(LOG_ERR, "parse: convert_rawdcf: INCOMPLETE DATA - time code only has %d bits", size);
#endif
- return CVT_NONE;
+ return CVT_FAIL|CVT_BADFMT;
}
for (i = 0; i < size; i++)
#ifndef PARSEKERNEL
msyslog(LOG_ERR, "parse: convert_rawdcf: BAD DATA - no conversion");
#endif
- return CVT_NONE;
+ return CVT_FAIL|CVT_BADFMT;
}
if (*b) b++;
if (*c) c++;
* bad format - not for us
*/
#ifndef PARSEKERNEL
- msyslog(LOG_ERR, "parse: convert_rawdcf: parity check FAILED for \"%s\"", buffer);
+ msyslog(LOG_ERR, "parse: convert_rawdcf: start bit / parity check FAILED for \"%s\"", buffer);
#endif
return CVT_FAIL|CVT_BADFMT;
}
{
if ((newtime - t->tcode) == 60) /* guard against multi bit errors */
{
+ parseprintf(DD_RAWDCF,("parse: cvt_rawdcf: minute delta check OK\n"));
clock_time->utctime = newtime;
}
else
{
- rtc = CVT_FAIL|CVT_BADTIME;
+ parseprintf(DD_RAWDCF,("parse: cvt_rawdcf: minute delta check FAIL - ignore timestamp\n"));
+ rtc = CVT_SKIP;
}
t->tcode = newtime;
}
{
case CVT_FAIL:
parseio->parse_badformat++;
- break;
+ return cvtrtc;
case CVT_NONE:
/*
* too bad - pretend bad format
*/
parseio->parse_badformat++;
- break;
+ return CVT_NONE;
case CVT_OK:
break;
msyslog(LOG_WARNING, "PARSE receiver #%d: FAILED TIMECODE: \"%s\" (check receiver configuration / wiring)",
CLK_UNIT(parse->peer), mkascii(buffer, sizeof buffer, tmpctl.parsegettc.parse_buffer, (unsigned)(tmpctl.parsegettc.parse_count - 1)));
}
+ /* copy status to show only changes in case of failures */
+ parse->timedata.parse_status = parsetime->parse_status;
}
}