# `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.