org.dinopolis.gpstool.gpsinput
Class GPSGeneralDataProcessor

java.lang.Object
  extended byorg.dinopolis.gpstool.gpsinput.GPSGeneralDataProcessor
All Implemented Interfaces:
GPSDataProcessor
Direct Known Subclasses:
GPSNmeaDataProcessor

public abstract class GPSGeneralDataProcessor
extends java.lang.Object
implements GPSDataProcessor

All classes extending this class are interpreting data from a GPSDevice (serial gps-receivier, file containing gps data, ...) and provide this information in a uniform way. So an NMEA-processor interprets NMEA sentences, while a Garmin-Processor understands the garmin protocol.

This abstract class adds some basic functionality all GSPDataProcessors might use.

Version:
$Revision: 1.5 $
Author:
Christof Dallermassl

Field Summary
 
Fields inherited from interface org.dinopolis.gpstool.gpsinput.GPSDataProcessor
ALTITUDE, DATE, DEPTH, END_OF_FILE, FIX_DIMENSIONS, FIX_QUALITY, HDOP, HEADING, IDS_SATELLITES, KM2NAUTIC, LOCATION, NUMBER_SATELLITES, PDOP, SATELLITE_INFO, SPEED, TIME, VDOP
 
Constructor Summary
GPSGeneralDataProcessor()
           
 
Method Summary
 void addGPSDataChangeListener(java.beans.PropertyChangeListener listener)
          Adds a listener for GPS data change events.
 void addGPSDataChangeListener(java.lang.String key, java.beans.PropertyChangeListener listener)
          Adds a listener for GPS data change events.
 void addGPSRawDataListener(GPSRawDataListener listener)
          Adds a listener for raw GPS data (for loggin purpose or similar).
 void addProgressListener(ProgressListener listener)
          Adds a listener for transfer progress (for transfer or route/track/waypoint data).
abstract  void close()
          Stopps the data processing.
 java.util.Map getGPSData()
          Returns a map containing the last received data from the GPSDevice or null, if no data was retrieved until now.
 java.lang.Object getGPSData(java.lang.String key)
          Returns the last received data from the GPSDevice that is named by the key or null if no data with the given key was retrieved until now.
 GPSDevice getGPSDevice()
          Returns the GPSDevice where the data will be retrieved from.
abstract  GPSPosition getGPSPosition()
          Returns the last received position from the GPSDevice or null if no position was retrieved until now.
abstract  float getHeading()
          Returns the last received heading (direction) from the GPSDevice or -1.0 if no heading was retrieved until now.
abstract  void open()
          Starts the data processing.
 void removeGPSDataChangeListener(java.beans.PropertyChangeListener listener)
          Removes a listener for GPS data change events.
 void removeGPSDataChangeListener(java.lang.String key, java.beans.PropertyChangeListener listener)
          Removes a listener for GPS data change events.
 void removeGPSRawDataListener(GPSRawDataListener listener)
          Removes a listener for faw GPS data.
 void removeProgressListener(ProgressListener listener)
          Removes a listener for transfer progress (for transfer or route/track/waypoint data).
 void setGPSDevice(GPSDevice gps_device)
          Sets the GPSDevice where the data will be retrieved from.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.dinopolis.gpstool.gpsinput.GPSDataProcessor
getGPSInfo, startSendPositionPeriodically, stopSendPositionPeriodically
 

Constructor Detail

GPSGeneralDataProcessor

public GPSGeneralDataProcessor()
Method Detail

open

public abstract void open()
                   throws GPSException
Starts the data processing. The Data Processor connects to the GPSDevice and starts retrieving information.

Specified by:
open in interface GPSDataProcessor
Throws:
if - an error occured on connecting.
GPSException

close

public abstract void close()
                    throws GPSException
Stopps the data processing. The Data Processor disconnects from the GPSDevice.

Specified by:
close in interface GPSDataProcessor
Throws:
if - an error occured on disconnecting.
GPSException

setGPSDevice

public void setGPSDevice(GPSDevice gps_device)
Sets the GPSDevice where the data will be retrieved from.

Specified by:
setGPSDevice in interface GPSDataProcessor
Parameters:
gps_device - the GPSDevice to retrieve data from.

getGPSDevice

public GPSDevice getGPSDevice()
Returns the GPSDevice where the data will be retrieved from.

Specified by:
getGPSDevice in interface GPSDataProcessor
Returns:
the GPSDevice where the data will be retrieved from.

getGPSPosition

public abstract GPSPosition getGPSPosition()
Returns the last received position from the GPSDevice or null if no position was retrieved until now.

Specified by:
getGPSPosition in interface GPSDataProcessor
Returns:
the position from the GPSDevice.

getHeading

public abstract float getHeading()
Returns the last received heading (direction) from the GPSDevice or -1.0 if no heading was retrieved until now.

Specified by:
getHeading in interface GPSDataProcessor
Returns:
the heading from the GPSDevice.

getGPSData

public java.lang.Object getGPSData(java.lang.String key)
                            throws java.lang.IllegalArgumentException
Returns the last received data from the GPSDevice that is named by the key or null if no data with the given key was retrieved until now. The naming scheme for the keys is taken from the NMEA standard (e.g. GLL for location, HDG for heading, ...)

Specified by:
getGPSData in interface GPSDataProcessor
Parameters:
key - the name of the data.
Returns:
the heading from the GPSDevice.
Throws:
java.lang.IllegalArgumentException - if the key is null.

getGPSData

public java.util.Map getGPSData()
Returns a map containing the last received data from the GPSDevice or null, if no data was retrieved until now. The naming scheme for the keys is taken from the NMEA standard (e.g. GLL for location, HDG for heading, ...)

Specified by:
getGPSData in interface GPSDataProcessor
Returns:
a map containing all key-value pairs of GPS data.

addGPSDataChangeListener

public void addGPSDataChangeListener(java.lang.String key,
                                     java.beans.PropertyChangeListener listener)
                              throws java.lang.IllegalArgumentException
Adds a listener for GPS data change events.

Specified by:
addGPSDataChangeListener in interface GPSDataProcessor
Parameters:
listener - the listener to be added.
key - the key of the GPSdata to be observed.
Throws:
java.lang.IllegalArgumentException - if key or listener is null.

addGPSDataChangeListener

public void addGPSDataChangeListener(java.beans.PropertyChangeListener listener)
                              throws java.lang.IllegalArgumentException
Adds a listener for GPS data change events.

Specified by:
addGPSDataChangeListener in interface GPSDataProcessor
Parameters:
listener - the listener to be added.
Throws:
java.lang.IllegalArgumentException - if listener is null.

removeGPSDataChangeListener

public void removeGPSDataChangeListener(java.lang.String key,
                                        java.beans.PropertyChangeListener listener)
                                 throws java.lang.IllegalArgumentException
Removes a listener for GPS data change events.

Specified by:
removeGPSDataChangeListener in interface GPSDataProcessor
Parameters:
listener - the listener to be removed.
key - the key of the GPSdata to be observed.
Throws:
java.lang.IllegalArgumentException - if key or listener is null.

removeGPSDataChangeListener

public void removeGPSDataChangeListener(java.beans.PropertyChangeListener listener)
                                 throws java.lang.IllegalArgumentException
Removes a listener for GPS data change events.

Specified by:
removeGPSDataChangeListener in interface GPSDataProcessor
Parameters:
listener - the listener to be removed.
Throws:
java.lang.IllegalArgumentException - if listener is null.

addGPSRawDataListener

public void addGPSRawDataListener(GPSRawDataListener listener)
                           throws java.lang.IllegalArgumentException
Adds a listener for raw GPS data (for loggin purpose or similar).

Specified by:
addGPSRawDataListener in interface GPSDataProcessor
Parameters:
listener - the listener to be added.
Throws:
java.lang.IllegalArgumentException - if listener is null.

removeGPSRawDataListener

public void removeGPSRawDataListener(GPSRawDataListener listener)
                              throws java.lang.IllegalArgumentException
Removes a listener for faw GPS data.

Specified by:
removeGPSRawDataListener in interface GPSDataProcessor
Parameters:
listener - the listener to be removed.
Throws:
java.lang.IllegalArgumentException - if listener is null.

addProgressListener

public void addProgressListener(ProgressListener listener)
                         throws java.lang.IllegalArgumentException
Adds a listener for transfer progress (for transfer or route/track/waypoint data).

Specified by:
addProgressListener in interface GPSDataProcessor
Parameters:
listener - the listener to be added.
Throws:
java.lang.IllegalArgumentException - if listener is null.
See Also:
ProgressListener

removeProgressListener

public void removeProgressListener(ProgressListener listener)
                            throws java.lang.IllegalArgumentException
Removes a listener for transfer progress (for transfer or route/track/waypoint data).

Specified by:
removeProgressListener in interface GPSDataProcessor
Parameters:
listener - the listener to be added.
Throws:
java.lang.IllegalArgumentException - if listener is null.
See Also:
ProgressListener