#ifdef WITH_GPSBT
#include <gpsbt.h>
-static gpsbt_t ctx = {0};
+static gpsbt_t ctx;
#endif
static gboolean gps_channel_cb_error(GIOChannel *src, GIOCondition condition, gpointer data);
return FALSE;
}
e=errno;
-g_debug("GPS: Error %d", e);
+g_debug("GPS: Error %d (%s)", e, strerror(e));
/* The socket is non blocking so handle it */
if (r != 0) {
}
#ifdef WITH_GPSBT
if (gps->io.type==GPS_IO_GPSD) {
- gint r;
- gchar ebuf[128];
- r=gpsbt_start(NULL, 0, 0, 0, ebuf, 128, 0, &ctx);
- if (r!=0) {
- g_warning("Failed to start gpsd");
+ gchar errbuf[255];
+
+ /* Force correct gpsd binary */
+ setenv ("GPSD_PROG", "/usr/sbin/gpsd", 1);
+
+ memset(&ctx, 0, sizeof(ctx))
+ memset(&errbuf, 0, sizeof(errbuf))
+ errno=0;
+
+ if (gpsbt_start(NULL, 0, 0, 0, errbuf, sizeof(errbuf), 0, &ctx)!=0)
+ g_warning("Failed to start gpsd: %d (%s) %s\n", errno, strerror(errno), errbuff);
return FALSE;
} else {
- /* */
+ g_debug("Waiting for gpsd");
+ sleep(2);
+ g_debug("Done wating");
}
}
#endif