我有一个带有Linux m的板正在运行。现在我不想在我的程序中获取GPS数据。所以我设置了一个从调制解调器获取gps信息的gpsdeamon。deamon运行良好,如果我将:2947(这是gpsd的标准端口),我将从deamon生成一组json字符串,如下所示:
{“类”:“TPV”、“标签”:“GGA”、“设备”:“/dev/ttyUSB2 2”、“模式”:3、"lat":51.282822633、“lon":11.404333250、"alt":327.500}
所以gpsd的设置是正确的。
但是在我的C程序中,我无法连接到这个端口,我不知道为什么。我的守则是这样的:
#include <gps.h>
struct gps_data_t *gpsdata = 0;
int main() {
if(gps_open("localhost", "2947", gpsdata)<0){
fprintf(stderr,"Could not connect to GPSd\n");
return(-1);
}
/* some more stuff */
}问题是,函数gps_open()总是返回-1。所有库似乎都已正确安装。你知道我能做些什么吗?
发布于 2015-06-17 10:28:28
可以使用gps_errstr函数查看错误,如下所示
#include <errno.h>
...
int main()
{
if(gps_open("localhost", "2947", gpsdata)<0){
fprintf(stderr,"Could not connect to GPSd (error %s)\n",
gps_errstr(errno));
return(-1);
}
/* some more stuff */
}但是,问题是gps_open需要一个指向有效(非空) gps_data_t结构的指针,这样就可以声明gpsdata。
struct gps_data_t gpsdata[1];https://stackoverflow.com/questions/30773098
复制相似问题