GPS Sight

From Openmoko

Revision as of 18:53, 20 January 2008 by AudriusA (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

The GPS preview is a GTK based project to create a usable GUI tool with the simple output (no maps). It is build and tested around the gllin driver but should work with any other driver via pipe at /tmp/nmeaNP. It detects GPRMC and GPGGA messages and constantly shows on the screen the following data:

  • Location.
  • Speed in kilometers per hour (converts from knots).
  • Altitude
  • Curved distance from the initially marked point (uses advanced IERC 2003 geodetic reference to convert degrees into kilometers).
  • Number of the satellites.
  • Time (UTM, not a local time).

The source code of this project is available in the project page (http://projects.openmoko.org/projects/gpv/), under LGPL.

The most interesting part of this project was to keep the external driver thread and GUI thread sufficiently happy together. We cannot just read from the pipe in a loop as this blocks the GUI repainting! Instead, the code schedules the GTK timer, and then it needs to check if any input from the pipe is available - again, without blocking the current thread for too long. This is done using select function.

The GPS Preview program (gpv) is released either in .ipk file or in the form of the source code. The released installer still needs the gllin to run.

Personal tools

The GPS preview is a GTK based project to create a usable GUI tool with the simple output (no maps). It is build and tested around the gllin driver but should work with any other driver via pipe at /tmp/nmeaNP. It detects GPRMC and GPGGA messages and constantly shows on the screen the following data:

  • Location.
  • Speed in kilometers per hour (converts from knots).
  • Altitude
  • Curved distance from the initially marked point (uses advanced IERC 2003 geodetic reference to convert degrees into kilometers).
  • Number of the satellites.
  • Time (UTM, not a local time).

The source code of this project is available in the project page (http://projects.openmoko.org/projects/gpv/), under LGPL.

The most interesting part of this project was to keep the external driver thread and GUI thread sufficiently happy together. We cannot just read from the pipe in a loop as this blocks the GUI repainting! Instead, the code schedules the GTK timer, and then it needs to check if any input from the pipe is available - again, without blocking the current thread for too long. This is done using select function.

The GPS Preview program (gpv) is released either in .ipk file or in the form of the source code. The released installer still needs the gllin to run.