diff options
-rw-r--r-- | cgps.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -807,10 +807,15 @@ int main(int argc, char *argv[]) /* heart of the client */ for (;;) { int c; + int wait_clicks = 0; /* cycles to wait before gpsd timeout */ - if (!gps_waiting(&gpsdata, 5000000)) { - die(GPS_TIMEOUT); + /* wait 1/2 second for gpsd */ + if (!gps_waiting(&gpsdata, 500000)) { + /* 240 tries at .5 Sec a try is a 2 minute timeout */ + if ( 120 < wait_clicks++ ) + die(GPS_TIMEOUT); } else { + wait_clicks = 0; errno = 0; if (gps_read(&gpsdata) == -1) { fprintf(stderr, "cgps: socket error 4\n"); |