summaryrefslogtreecommitdiff
path: root/driver_garmin.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver_garmin.c')
-rw-r--r--driver_garmin.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/driver_garmin.c b/driver_garmin.c
index c80b8428..4ecb960b 100644
--- a/driver_garmin.c
+++ b/driver_garmin.c
@@ -1027,6 +1027,7 @@ gps_mask_t garmin_ser_parse(struct gps_device_t *session)
unsigned char pkt_len = 0;
unsigned char chksum = 0;
gps_mask_t mask = 0;
+ struct timespec delay;
gpsd_log(&session->context->errout, LOG_RAW, "Garmin: garmin_ser_parse()\n");
if (6 > len) {
@@ -1158,7 +1159,11 @@ gps_mask_t garmin_ser_parse(struct gps_device_t *session)
// sending ACK too soon might hang the session
// so send ACK last, after a pause
- (void)usleep(300);
+ /* wait 300 uSec */
+ delay.tv_sec = 0;
+ delay.tv_nsec = 300000L;
+ nanosleep(&delay, NULL);
+
Send_ACK();
gpsd_log(&session->context->errout, LOG_DATA,
"Garmin: garmin_ser_parse( )\n");