我注意到有两种方法可以从 GPS(使用 PPS)获取准确的时间。使用 ntpd 或
我的问题:我想要非常准确的时间并访问 GPS 位置数据。因此通过 gpsd 使用共享内存可能会太慢。
在我的 ntp 配置中,我目前使用NMEA 参考时钟. GPS接收器(带PPS)分别连接到/dev/ttyS0
和。/dev/gps0
我无法同时使用 ntpd 和 NMEA 以及 gpsd 来获取位置数据。如果ntpd正在运行 gpsd 将不会获取任何数据并在超时后退出。但如果 ntpd 正在运行,则会cat /dev/ttyS0
在控制台上打印 NMEA 数据。所以我可以从串行线读取。那么为什么如果 ntpd 正在运行,gpsd 无法访问串行数据?我粘贴了 gpsd 的调试消息这里。我启动 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文件中检索位置数据是可行的。有没有比解析这个文件更好的解决方案?
答案1
为什么要使用 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文件中获取位置数据。