同时访问NMEA参考时钟和GPS位置

我注意到有两种方法可以从GPS获得准确的时间(使用PPS)。 使用ntpd

  • NMEA参考时钟或
  • 共享内存驱动程序

我的问题:我想有一个非常准确的时间和访问GPS位置数据。 因此通过gpsd使用共享内存可能会变慢。

在我的ntpconfiguration中,我现在使用NMEA参考时钟 。 GPS接收器(带有PPS)分别连接到/dev/ttyS0/dev/gps0

我不能同时使用ntpd与NMEA和gpsd来获取位置数据。 如果ntpd正在运行,gpsd将不会获取数据,并在超时后退出。 但是如果ntpd正在运行cat /dev/ttyS0打印控制台上的NMEA数据。 所以我可以从串口线读取。 那么为什么如果ntpd正在运行,gpsd将无法访问串行数据呢? gpsd的debugging信息我粘贴在这里 。 我开始gpsd,然后尝试连接cgps。

我知道这可能是一个平行打开设备的问题。

编辑

现在我用

 server 127.127.20.0 mode 18 minpoll 4 maxpoll 4 iburst prefer true fudge 127.127.20.0 flag1 1 flag2 0 flag3 1 flag4 0 time2 0.475 

从clockstats文件检索位置数据将工作。 可能有比parsing这个文件更好的解决scheme吗?

为什么要使用gpsd? 只需使用NMEA驱动程序并使用flag1启用PPS:

 server 127.127.20.0 minpoll 4 mode 18 prefer # NMEA serial port, 16 = 9600 baud, 2 = $GPGGA fudge 127.127.20.0 time2 0.435 flag1 1 flag3 0 

你应该把自己的时间改变成适合自己的时间。

您可以从clockstats文件获取位置数据。