OpenGPS Homepage OpenGPS - Projects

OpenGPS Homepage

Table of Contents

1. Preface
1.1. Motivation
2. Project: OpenGPSlib
3. Project: xmlcpp
4. Organizational
4.1. Source Code
4.1.1. CVS location
4.1.2. Copyright
4.2. Support

1. Preface top

Here you will find a short description of the different projects we maintain. As development progresses we will add more projects here. Currently we are working actively on the OpenGPSlib, a library for unified access to GPS devices. A GUI application that displays and processes GPS data is not ready yet to be posted here. This is just a short overview of our current projects. For more information please have a look at the Documentation.

1.1. Motivation top

The power of GPS receivers really unfolds when you're able to process the recorded data. Most devices provide the possibility to set waypoints, connect waypoints to create routes and record tracks as a series of position information. This data is gained automatically by satellite recordings, half-manually by setting waypoints of the current position or manually by inputting complete waypoints 'by hand'. As a 'home' user you may want to display the data, navigate to a certain waypoint or follow a given track or route. On the other hand a professional user like a geographist for instance may want to evaluate track lenghts and other data, use the data to project it onto maps or even create their own maps. Both may be interested in keeping a database of waypoints and tracks to use at request.

2. Project: OpenGPSlib top

The above requirements result in some basic functionality needed by a processing application. You may want download data from the GPS device store it, process it and upload it again. Or you may want to receive data - maybe via internet - and upload it into your GPS device. The data may be recorded with a totally different device or even not be recorded at all but generated by some third party software. OpenGPSlib uses a layered approach to implement device independent communication to various GPS devices.

3. Project: xmlcpp top

In order to save GPS data (Waypoints, Tracks...), configuration files etc. practice showed us that a binary or otherwise proprietary file format is much too inflexible to keep up with the development process. Either we have to carry the whole bag of historical file filters or we loose the ability to read older files. While the former is 'just' a lot of work and not a very clean approach the later is not an option. So we decided to make the switch to XML. Ok, I already hear some of you argue that the files grow dramatically. That's true, but first of all compared to modern drivesizes they are still small and second if they are compressed they become even smaller than the binary format. What we gain are all the other advantages of XML:

  • We can take advantage of standard parsers like libxml.
  • As the fileformat evolves newer application can still read the old files without any change of code.
  • Old applications can handle new file formats as they may just ignore unknown tags.
  • Files are readable on any machine due to the standard UTF8 charset.
  • Files are human readable. Ok it might not be practical but it is still possible. Then you may just open them in an editor and 'find and replace' something shall the need arise.
  • Files are readable and editable in Standard XML editors.
  • Files are easily ported to other applications if they are XML aware. Otherwise it's easy to implement a filter to convert them into other formats.

xmlcpp is a library that builds upon the SAX interface of libxml2. It provides a high level interface to facilitate the implementation of a state machine. By use of predefined classes and macros it is very easy to read XML into custom defined structures, thus avoiding the standard document tree created by libxml2. This is done by defining trigger actions that call methods when certain tags are found within the XML file.

4. Organizational top

In this section we discuss some of the organizational stuff you might need to know when you want to get involved with the development of &OpenGps;

4.1. Source Code top

The Source code is hosted at SourceForge. It has public read access and read/write access for the developers on the team. If you want to join the development team you have to get an account at SourceForge. We can then add your SourceForge user name to our project team. For more information please check out the documentation at SourceForge.

4.1.1. CVS location top

For the public read-only access just checkout the sources from For more information please go to the download section as we do not maintain this information on this page.

4.1.2. Copyright top

The copyright of the sources always remains at the author of the files. Sure, everybody may use the files according to the specific projects license, but that does not compromise the copyright. We do however like to be able to provide the code long term. As we cannot forsee future development with copyright law, software patents etc. we must keep the possibility open to change the licensing of projects developed for OpenGPS. You probably can understand that - if this ever may happen - we don't want to track down every person that ever changed a single line of code to get their acknoledgement to change sth. with our licensing. Therefore we ask everybody who wants to join the team to give us permission to do with their code whatever is neccessary to maintain the project. For further discussion of this topic please have a look at some articles written by Bruce Perence on slashdot.

4.2. Support top

We provide several mailing lists to which you may sign on. See the support section for more information. You may also email us at Probably we will change to some public forums on SourceForge as they maintain a history as well.

SourceForge Homepage


Copyright © 2002 by Holger Böhnke Last edited: 2002-12-04 23:11