没有使用libgps接收任何GPS数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有使用libgps接收任何GPS数据相关的知识,希望对你有一定的参考价值。
我想用libgps读取我的GPS坐标。
这是我的代码:
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <gps.h>
int main(void){
struct gps_data_t gps_data;
int ret = 0;
ret = gps_open("localhost", "2947", &gps_data);
gps_stream(&gps_data, WATCH_ENABLE | WATCH_JSON, NULL);
if (gps_waiting (&gps_data, 500)) {
if (gps_read (&gps_data) == -1) {
fprintf(stdout, "Error #3: No GPS data available! Retrying ...
");
}
else {
fprintf(stdout, "GPS-Data: Latitude: %f, Longitude: %f, Altitude: %.1f, Timestamp: %ld
", gps_data.fix.latitude, gps_data.fix.longitude, gps_data.fix.altitude);
}
}
/* When you are done... */
gps_stream(&gps_data, WATCH_DISABLE, NULL);
gps_close (&gps_data);
return 0;
}
不幸的是,我总是得到这个结果:
GPS数据:那个:什么,在底部:什么,在旁边:什么,编钟mp:301989888
所以gpsd没有返回任何GPS坐标......
但是如果我执行sudo gpscat -s 4800 /dev/ttyACM0
:
$ GPGGA,190238.00,4819.14754,N,01512.57069,E,2,11,0.83,469.6,男,43.1,M,0000 * 53
有谁知道什么可能是错的?
答案
使用“CGPS -s”检查您的GPSD是否正常运行。如果它已修复(也就是工作并锁定在你的位置上),它应该会给你所有的gps数据。
如果它正在运行,请尝试在“if(gps_waiting(&gps_data,500)){”上使用更大的延迟。我使用相同的代码并且具有相同的“nan”结果,直到我增加了gps_waiting函数的等待时间。
我通过UART使用带有ublox gps的BBB进行了测试。
以上是关于没有使用libgps接收任何GPS数据的主要内容,如果未能解决你的问题,请参考以下文章