diff options
-rw-r--r-- | TODO | 13 | ||||
-rw-r--r-- | packet.c | 19 | ||||
-rw-r--r-- | sirf.c | 1 | ||||
-rw-r--r-- | sirfmon.xml | 6 | ||||
-rw-r--r-- | www/gps-hacking.html | 6 | ||||
-rw-r--r-- | www/hardware.html | 11 |
6 files changed, 28 insertions, 28 deletions
@@ -4,12 +4,6 @@ will unfold them again. ** Bugs in gpsd and its clients: -*** Nail down Daryl Ross's SiRF bugs - -Daryl Ross is reporting some very odd bugs on the BU-303 that I can't -reproduce with my almost identical test setup. This bothers me, and -I want to understand why it is happening. - *** EPH and EPV reports are zeroed too often in the TSIP driver There is some bad interaction between the policy code in @@ -75,13 +69,6 @@ system("free t") at the end of each handle_input() call. ** To do: -*** Evermore driver - -Petr Slansky wants Evermore chipset support. His email reads as -though he is competent to write it. An unanswered question is whether -there is a probe string that can elicit a PEMT or other unique -response from the Evermore chipset. - *** SiRF firmware uploader Chris Kuethe appears to be well along on this. It is not yet @@ -28,8 +28,6 @@ distinguish them from baud barf. #include <unistd.h> #include <string.h> #include <errno.h> -#include <sys/time.h> -#include <sys/ioctl.h> #include "config.h" #include "gpsd.h" @@ -57,14 +55,18 @@ void gpsd_report(int errlevel, const char *fmt, ... ) #endif /* TESTMAIN */ /* - * The packet-recognition state machine. It doesn't do checksums, - * caller is responsible for that part. It can be fooled by garbage + * The packet-recognition state machine. It can be fooled by garbage * that looks like the head of a binary packet followed by a NMEA * packet; in that case it won't reset until it notices that the * binary trailer is not where it should be, and the NMEA packet will * be lost. The reverse scenario is not possible because none of the * binary leader character can occur in an NMEA packet. Caller should * consume a packet when it sees one of the *_RECOGNIZED states. + * It's good practice to follow the _RECOGNIZED transition with one + * that recognizes a leader of the same packet type rather than + * dropping back to ground state -- this for example will prevent + * the state machine from hopping between recognizing TSIP and + * Evermore packets that both start with a DLE. * * Error handling is brutally simple; any time we see an unexpected * character, go to GROUND_STATE and reset the machine (except that a @@ -82,8 +84,9 @@ void gpsd_report(int errlevel, const char *fmt, ... ) enum { GROUND_STATE, /* we don't know what packet type to expect */ - NMEA_DOLLAR, /* we've seen first character of NMEA leader */ + /* NMEA 0183 packet states */ + NMEA_DOLLAR, /* we've seen first character of NMEA leader */ NMEA_PUB_LEAD, /* seen second character of NMEA G leader */ NMEA_LEADER_END, /* seen end char of NMEA leader, in body */ NMEA_CR, /* seen terminating \r of NMEA packet */ @@ -150,7 +153,7 @@ enum { EVERMORE_HEADER_DLE, /* 1-byte packet length was DLE */ EVERMORE_PAYLOAD, /* in payload part of Evermore packet */ EVERMORE_DELIVERED, /* got to end of payload, looking for checksum */ - EVERMORE_CHECKSUM_DLE, /* in payload part of Evermore packet */ + EVERMORE_SUM_DLE, /* in payload part of Evermore packet */ EVERMORE_TRAILER_1, /* looking for first byte of Evermore trailer */ EVERMORE_RECOGNIZED, /* found end of Evermore packet */ #endif /* EVERMORE_ENABLE */ @@ -491,11 +494,11 @@ static void nexstate(struct gps_device_t *session, unsigned char c) break; case EVERMORE_DELIVERED: if (c == 0x10) - session->packet_state = EVERMORE_CHECKSUM_DLE; + session->packet_state = EVERMORE_SUM_DLE; else session->packet_state = EVERMORE_TRAILER_1; break; - case EVERMORE_CHECKSUM_DLE: + case EVERMORE_SUM_DLE: if (c == 0x10) session->packet_state = EVERMORE_TRAILER_1; else @@ -172,7 +172,6 @@ gps_mask_t sirf_parse(struct gps_device_t *session, unsigned char *buf, size_t l ecef_to_wgs84fix(&session->gpsdata, getsl(buf, 1)*1.0, getsl(buf, 5)*1.0, getsl(buf, 9)*1.0, getsw(buf, 13)/8.0, getsw(buf, 15)/8.0, getsw(buf, 17)/8.0); - /* WGS 84 geodesy parameters */ /* fix status is byte 19 */ navtype = (unsigned short)getub(buf, 19); session->gpsdata.status = STATUS_NO_FIX; diff --git a/sirfmon.xml b/sirfmon.xml index 17d20edd..1c1f3576 100644 --- a/sirfmon.xml +++ b/sirfmon.xml @@ -116,6 +116,12 @@ zero. This condition will continue until the computed velocity rises above 1.2 times the threshold or until the computed position is at least a set distance from the frozen place. The threshold velocity and set distance may vary with software versions.</quote></para> + +<para>Non-static mode is designed for use with road navigation +software, which often snaps the reported position to the nearest road +within some uncertainty radius. You probably want to turn static +navigation off for pedestrian use, as it is likely to report speed +zero and position changing in lsrge jumps.</para> </listitem> </varlistentry> <varlistentry> diff --git a/www/gps-hacking.html b/www/gps-hacking.html index 74d09ea9..b201c8cf 100644 --- a/www/gps-hacking.html +++ b/www/gps-hacking.html @@ -354,8 +354,12 @@ and DGPS</a>.</dd> <dd>Chris Kuethe's page has links to many interesting resources.</dd> <dt><a href="http://www.ualberta.ca/~norris/gps/DOPnontech.html">DOP, -the non-technical description</a> +the non-technical description</a></dt> <dd>Explains the most obscure statistic in GPS output.</dd> + +<dt> +<a href='http://www.eomonline.com/Common/Archives/1995aug/95aug_gps.html'>Two</a> <a href='http://www.eomonline.com/Common/Archives/1996feb/96feb_gps.html'>articles</a> from Earth Observation Magazine</dt> +<dd>These delve into the mysteries of GPS accuracy.</dd> </dl> </body> diff --git a/www/hardware.html b/www/hardware.html index 05874c16..6f2f484d 100644 --- a/www/hardware.html +++ b/www/hardware.html @@ -67,8 +67,9 @@ GPGSV,<br> GPRMC,<br> GPVTG</td> <td> -NMEA works, but (oddly) SiRF binary does not. This device seems to ignore -the $PSRF100 mode switch. +NMEA works, but (oddly) SiRF binary does not. (SiRF binary may be +available on the auxiliary serisl port, but this is unconfirmed.) +This device seems to ignore the $PSRF100 mode switch. Denis Perchine <dyp@perchine.com> </td> </tr> @@ -335,15 +336,15 @@ Reported by Frank Nicholas <frank(nicholasfamilycentral.com>. GPGSV,<br />GPRMC,<br />GPGLL,<br />GPGSA,<br />GPGGA,<br />GPVTG. </td> <td> -There are CF, serial, and Bluetooth versions, not tested. -The USB version is sold with Microsoft Streets and Trips. +The Pharos comes with adaptors for SDIO, CF, USB and plain RS232. +Microsoft Streets and Trips includes a Pharos with USB adaptor. Reported by Robert Pouliot <krynos@saturnus.com> </td> </tr> <tr> <td><a href="http://www.navisky.com/nsa_u3.htm">NSA U3</a></td> <td>Excellent</td> -<td>SiRF-StarIIe/PL + PL2303</td> +<td>SiRF-StarIIe/LP + PL2303</td> <td>USB</td> <td><a href="http://www.navisky.com/">NaviSky</a></td> <td>2.24</td> |