I wrote:

>> The coding is very compatible with the German DCF77. Drivers should
>> be able to decode both, unless they choke on the different minute
>> markers.

> NTP doesn't like it: It inserts an additional bit for each extra
> pulse, and then it cannot decode the telegram.

> If I patch the inp_rawdcf function (in libparse/clk_rawdcf.c) to
> discard all pulses that are less than 700 ms after the previous pulse
> then the driver can decode the signal.

By popular demand, I include the patch below. However, this is only a
quick hack. I am not at all sure if inp_rawdcf is the right place to
suppress the extra pulses.

--- ntp-stable-4.2.0a-20050303/libparse/clk_rawdcf.c.orig       2004-02-25 
06:58:09.000000000 +0100
+++ ntp-stable-4.2.0a-20050303/libparse/clk_rawdcf.c    2006-01-12 
13:49:42.000000000 +0100
@@ -545,7 +545,8 @@
          )
 {
        static struct timeval timeout = { 1, 500000 }; /* 1.5 secongs denote 
second #60 */
-       
+       static struct timeval timemin = { 0, 700000 };
+
        parseprintf(DD_PARSE, ("inp_rawdcf(0x%lx, 0x%x, ...)\n", (long)parseio, 
ch));
        
        parseio->parse_dtime.parse_stime = *tstamp; /* collect timestamp */
@@ -558,6 +559,11 @@
                (void) parse_addchar(parseio, ch);
                return PARSE_INP_TIME;
        }
+       else if (!parse_timedout(parseio, tstamp, &timemin))
+       {
+               /* discard extra pulses at minute marker for HBG */
+               return PARSE_INP_SKIP;
+       }
        else
        {
                unsigned int rtc;

_______________________________________________
questions mailing list
[email protected]
https://lists.ntp.isc.org/mailman/listinfo/questions

Reply via email to