<sect1 id="gpsuitls.c"><title><filename>gpsutils.c</filename></title>
<informaltable frame='all' pgwide='1'>
<tgroup cols='2'>
<colspec colname='c1'></colspec>
<colspec colname='c2'></colspec>
<spanspec spanname='s1' namest='c1' nameend='c2'></spanspec>

<thead>
<row>
  <entry>Functions:-</entry><entry>Code shared between low-level and
  high-level interfaces. Most of them do exactly what they say on the
  tin.</entry>
</row>
</thead>

<tfoot>
<row>
  <entry spanname='s1' align='left'>Notes based on code as of Mon Apr 5 21:38:06 2010 -0400.</entry>
</row>
</tfoot>

<tbody>
<row>
  <entry><function>void gps_clear_fix(struct gps_fix_t *fixp)</function></entry>
  <entry><para>Stuff a fix structure with recognizable out-of-band values.</para></entry>
</row>
<row>
  <entry><function>unsigned int gps_valid_fields(struct gps_fix_t *fixp)</function></entry>
  <entry><para>Clears certain status flags, depending if the associated fields are invalid.</para></entry>
</row>
<row>
  <entry><function>time_t mkgmtime(register struct tm *t)</function></entry>
  <entry><para>Convert a struct <function>tm {}</function> (see <function>time.h</function>) to seconds since UNIX Epoch.</para></entry>
</row>
<row>
  <entry><function>timespec_t iso8601_to_timespec(char *isotime)</function></entry>
  <entry><para>Convert an ISO8601 UTC string (like 2006-01-25T13:15:22.9Z) to a
timespec_t (time_t,long).</para></entry>
</row>
<row>
  <entry><function>char *timespec_to_iso8601(timespec_t ts, char isotime[], int len)</function></entry>
  <entry><para>Convert a struct timepsec into an  ISO8601 UTC string (like 2006-01-25T13:15:22.9Z).</para></entry>
</row>
<row>
  <entry><function>static double CalcRad(double lat)</function></entry>
  <entry><para>Return the earth's radius of curvature in meters at specified latitude.</para></entry>
</row>
<row>
  <entry><function>double earth_distance(double lat1, double lon1, double lat2, double lon2)</function></entry>
  <entry><para>Return the distance in meters between two points specified in degrees.</para></entry>
</row>
<row>
  <entry><function>static int invert(double mat[4][4], double inverse[4][4])</function></entry>
  <entry><para>Try and invert an array. If it is possible, fill the inverted array and return a 1. Return a 0 if it is not possible.</para></entry>
</row>
<row>
  <entry><function>gps_mask_t dop(struct gps_data_t *gpsdata)</function></entry>
  <entry><para>Take a gps data structure and try to calculate the DOP values from the other data in it. Return 0 if it is not possible or update the appropriate DOP fields in the structure and set a mask which tells which fields were updated.</para></entry>
</row>
</tbody>

</tgroup>
</informaltable>
</sect1>
