libgpsd_core.c
Functions:-Generate pseudo-NMEA corresponding to binary packet reports
Notes based on code as of Mon Apr 5 21:38:06 2010 -0400.
static double degtodm(double a)
Converts a fractional degree value (like 125.3567) into an NMEA field as dddmm.xxx (like 12521.402).
void gpsd_position_fix_dump(struct gps_device_t *session, /char bufp[], size_t len)
If possible, create a $GPGGA message (full time, position and fix data) from the fix data, taking care about the validity of subsidiary fields like HDOP and altitude.
static void gpsd_transit_fix_dump(struct gps_device_t *session, char bufp[], size_t len)
Create a $GPRMC message (minimum navigation data) from the fix data.
static void gpsd_binary_fix_dump(struct gps_device_t *session, char bufp[], size_t len)
Make a call to gpsd_position_fix_dump() and gpsd_transit_fix_dump().
static void gpsd_binary_satellite_dump(struct gps_device_t *session, char bufp[], size_t len)
Create one or more $GPGSV messages from the status data of all satellites we know about.
static void gpsd_binary_quality_dump(struct gps_device_t *session, char bufp[], size_t len)
Create a $GPGSA message taking care that if any xDOP is not valid, we substitute a 0.0
value.If any of the error estimates is available, generate a $PGRME message again taking care about possibly invalid values.
static void gpsd_binary_dump(struct gps_device_t *session, char bufp[], size_t len)
Dump such binary data as we have available; a fix, a quality value and a satellite status block. Each is enabled by the appropriate status bits in the session mask variable.