Downloading sources

TBD

Compiling the project

TBD

GPS Component

The GPS Component contains a few classes able to query a GPS receiver which complies with the NMEA-0183 protocol.

The relevant classes are:

  • GenericGPSReceiver: a generic, technology-independend GPS receiver that is able to interpret NMEA-0183 sentences. Sentences are modeled as events that are fired and received by listeners.
  • BlueToothGPSReceiver: a specific implementation that reads data from a BlueTooth gear (FIXME: indeed this just uses a J2ME Connector and is not BlueTooth-related, rename into J2MEGPSReceiver).
  • GPSListener: a listener of sentences.
  • GPSAdapter: a default, empty implementation of GPSListener.
  • Sentence: models a generic NMEA-0183 sentence.
  • GGASentence: models the GGA sentence.
  • GSASentence: models the GSA sentence.
  • GSVSentence: models the GSV sentence.
  • RMCSentence: models the RMC sentence.

All classes but BlueToothGPSReceiver are compatible both with J2SE and J2ME; BlueToothGPSReceiver needs J2ME.

JSR 179

JSR 179 is the Location API for J2ME. It provides the model for a coordinate system, a LocationProvider which tracks the current position and a Landmarks store. It looks like the ideal API to build windRose around, but unfortunately there are no Java Virtual Machines on Palm OS which provide JSR 179.

Starting from v0.3.1, windRose contains a pseudo-implementation of JSR 179. Why a "pseudo" implementation and not a real implementation? Because:

  1. It is not possible to embed classes with package javax.* as the midlet is rejected for security reasons (our implementation is packaged as ext.javax.*);
  2. In this initial releases the implementation is by far incomplete and untested;
  3. There are a couple of small "extensions" in order to be able to provide the GPS receiver address and getting the number of connected satellites.

For point (1), I'm trying to understand if and how it is possible to augment the IBM Virtual Machine with some extended API. For point (2) we just need some time for the implementation to stabilize. Probably the most complex point is (3), as the JSR-179 API specification seems to me quite bad for what concerns extensibility.