Add PPS support to SOCK driver

This commit is contained in:
Miroslav Lichvar 2009-11-24 17:16:24 +01:00
parent 3bae6c3202
commit 6d242a33f5
2 changed files with 10 additions and 4 deletions

View file

@ -2176,9 +2176,10 @@ Software that can be used as a source of timestamps includes
@item SOCK
Unix domain socket driver. The parameter is a path to the socket
which is used as the source of timestamps. This is as a better
alternative to SHM, it does not require polling and the offset
resolution is not limited to microsecond. The format for messages
sent over the socket is declared in file @code{refclock_sock.c}.
alternative to SHM, it does not require polling, the offset
resolution is not limited to microsecond and it supports PPS.
The format for messages sent over the socket is declared in file
@code{refclock_sock.c}.
@end table
The @code{refclock} command also supports a number of subfields (which

View file

@ -38,6 +38,7 @@
struct sock_sample {
struct timeval tv;
double offset;
int pulse;
int leap;
};
@ -53,7 +54,11 @@ static void read_sample(void *anything)
if (recv(sockfd, &sample, sizeof (sample), 0) != sizeof (sample))
return;
RCL_AddSample(instance, &sample.tv, sample.offset, sample.leap);
if (sample.pulse) {
RCL_AddPulse(instance, &sample.tv, sample.offset);
} else {
RCL_AddSample(instance, &sample.tv, sample.offset, sample.leap);
}
}
static int sock_initialise(RCL_Instance instance)