summaryrefslogtreecommitdiff
path: root/packet.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2006-08-16 16:52:38 +0000
committerEric S. Raymond <esr@thyrsus.com>2006-08-16 16:52:38 +0000
commit888b6ed14c55daace0cb188739894c49d516e39b (patch)
tree0fb47b0d677b3179d997077d41c2ee86c4fc2032 /packet.c
parentde938d5e99280e0fca60c93030972e8d777bf4c1 (diff)
downloadgpsd-888b6ed14c55daace0cb188739894c49d516e39b.tar.gz
Kluge to make pre-2003 Earthmates with EARTHA handshake work again.
Diffstat (limited to 'packet.c')
-rw-r--r--packet.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/packet.c b/packet.c
index 41e32848..cd78e4aa 100644
--- a/packet.c
+++ b/packet.c
@@ -280,6 +280,13 @@ static void nextstate(struct gps_device_t *session, unsigned char c)
#ifdef RTCM104_ENABLE
(void)rtcm_decode(session, c);
#endif /* RTCM104_ENABLE */
+ /*
+ * When the Earthmate is connected, it starts to send
+ * few Zodiac-binary frames before going into its EARTHA\r\n-loop.
+ * Therefore the regular state machine misdetects it as straight
+ * Zodiac binary. This kluge works around the problem.
+ */
+ (void)gpsd_switch_driver(session,"Delorme EarthMate (pre-2003, Zodiac chipset)");
session->packet_state = NMEA_RECOGNIZED;
} else
session->packet_state = GROUND_STATE;