Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
gpsdrive reads nmea sentences directly from gpsd (see nmea_handler.c). This had lead to a number of problems in the past (see for example debian bug #456149).
Maybe it would be better to use libgps or similiar?
right. gpsdrice should use libgps and the nmea parsing code should be removed.
I already tested this within another application, but there are still some issues, that prevented me from changing this in gpsdrive.
but it is on the TODO list.
alternatively, a path of minimal change:
instead of requesting raw NMEA with "R+" in gps_handler.c, we could initialize in watcher mode (W+), then parse the [nema parsed] "O" string.
send (sock, "W+\n", 3, 0);
"The recommended mode for clients is watcher mode. In
watcher mode gpsd ships a line of data to the client each
time the GPS gets either a fix update or a satellite
picture, but rather than being raw NMEA the line is a gpsd
'o' or 'y' response. Additionally, watching clients get
notifications in the form X=0 or X=%f when the
online/offline status of the GPS changes, and an I response
giving the device type when the user is assigned a device.
Clients should be prepared for the possibility that
additional fields (such as heading or roll/pitch/yaw) may
be added to the O command, and not treat the occurrence of
extra fields as an error. The protocol number will be
incremented if and when such fields are added."
done with svn revision 2243.