diff options
-rw-r--r-- | garmin.c | 11 | ||||
-rw-r--r-- | gpsd.h | 3 | ||||
-rw-r--r-- | packet.c | 2 |
3 files changed, 10 insertions, 6 deletions
@@ -7,10 +7,12 @@ * This code is partly from the Garmin IOSDK and partly from the * sample code in the Linux garmin_gps driver. * - * Presently this code needs the Linux garmin_gps driver and will - * not function without it. This code has been tested and at leastt - * at one time is known to work on big- and little-endian CPUs and 32 - * and 64 bit cpu modes. + * This code supports both Garmin on a serial port and USB Garmins. + * + * USB Garmins need the Linux garmin_gps driver and will not function + * without it. This code has been tested and at least at one time is + * known to work on big- and little-endian CPUs and 32 and 64 bit cpu + * modes. * * Protocol info from: * GPS18_TechnicalSpecification.pdf @@ -23,6 +25,7 @@ * -D 3 = packet trace * -D 4 = packet details * -D 5 = more packet details + * -D 6 = very excessive details * * limitations: * @@ -139,7 +139,8 @@ struct gps_device_t { unsigned char inbuffer[MAX_PACKET_LENGTH*2+1]; size_t inbuflen; unsigned /*@observer@*/char *inbufptr; - unsigned char outbuffer[MAX_PACKET_LENGTH+1]; + /* outbuffer needs to be able to hold 4 GPGSV records at once */ + unsigned char outbuffer[MAX_PACKET_LENGTH*2+1]; size_t outbuflen; unsigned long char_counter; /* count characters processed */ unsigned long retry_counter; /* count sniff retries */ @@ -730,7 +730,7 @@ ssize_t packet_parse(struct gps_device_t *session, size_t fix) packet_accept(session, GARMIN_PACKET); else #endif /* GARMIN_ENABLE */ - packet_accept(session, TSIP_PACKET); + packet_accept(session, TSIP_PACKET); } else session->packet_state = GROUND_STATE; packet_discard(session); |