Manuel Reimer <manuel.nulldev...@nurfuerspam.de> wrote:
> On 10/05/2013 03:46 PM, Rob wrote:
>> I use:
>> server 127.127.8.0 mode 6
>>
>> It works fine for me.
>
> I tried that and I still get the same errors. Then I rewired my receiver 
> to send out *noninverted* signals. Now I get:
>
> Oct 05 17:21:58 alarm ntpd[1075]: parse: convert_rawdcf: parity check 
> FAILED for "###############RADMLS1248124P124812P1248121241248112481248P"
> Oct 05 17:21:58 alarm ntpd[1075]: PARSE receiver #1: FAILED TIMECODE: 
> "###############RADMLS1248124P124812P1248121241248112481248" (check 
> receiver configuration / wiring)
> Oct 05 17:22:58 alarm ntpd[1075]: parse: convert_rawdcf: parity check 
> FAILED for "###############RADMLS1248124P124812P1248121241248112481248P"
> Oct 05 17:22:58 alarm ntpd[1075]: PARSE receiver #1: FAILED TIMECODE: 
> "###############RADMLS1248124P124812P1248121241248112481248" (check 
> receiver configuration / wiring)
>
> Is someone here able to interpret this information? What's the problem? 
> I guess something with my UART port is wrong, but I only have this one 
> port (embedded system).

Can the serial port run at 50 baud?  This is a requirement for this
method of dcf parsing.  Maybe the length of the divider register is
insufficient to go that low.
>
> To be honest I currently tend to just make my self-written 
> Perl-script-DCF-parser (which works with this receiver wired to one of 
> the GPIO pins) set the system clock directly and then create a cron-job 
> to run the script once at 2AM. The accuracy of this solution would be 
> just OK for my needs.

You can write a script that puts the parsed time in a shared memory
segment and then configure ntpd to read that.

It is configured in ntpd using:
server 127.127.28.0

The data structure looks like this:

struct shmTime {
    int    mode; /* 0 - if valid set
                  *       use values,
                  *       clear valid
                  * 1 - if valid set
                  *       if count before and after read of values is equal,
                  *         use values
                  *       clear valid
                  */
    int    count;
    time_t clockTimeStampSec;
    int    clockTimeStampUSec;
    time_t receiveTimeStampSec;
    int    receiveTimeStampUSec;
    int    leap;
    int    precision;
    int    nsamples;
    int    valid;
    int    pad[10];
};

You attach an SHM segment with name 0x4e545030 and set mode to 1,
then increment count, put your time in the segment, increment count
again and set valid to 1.

_______________________________________________
questions mailing list
questions@lists.ntp.org
http://lists.ntp.org/listinfo/questions

Reply via email to