net.sf.marineapi.nmea.sentence.GGASentence Maven / Gradle / Ivy
Show all versions of org.everit.osgi.bundles.net.sf.marineapi Show documentation
/*
* GGASentence.java
* Copyright (C) 2010 Kimmo Tuukkanen
*
* This file is part of Java Marine API.
*
*
* Java Marine API is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* Java Marine API is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Java Marine API. If not, see .
*/
package net.sf.marineapi.nmea.sentence;
import net.sf.marineapi.nmea.util.GpsFixQuality;
import net.sf.marineapi.nmea.util.Units;
/**
* Global Positioning System fix data. Current position, time and other fix
* related data for a GPS receiver.
*
* Example:
* $GPGGA,120044,6011.552,N,02501.941,E,1,00,2.0,28.0,M,19.6,M,,*79
*
* @author Kimmo Tuukkanen
*/
public interface GGASentence extends PositionSentence, TimeSentence {
/**
* Altitude presented in meters.
*/
char ALT_UNIT_METERS = 'M';
/**
* Altitude presented in feet.
*/
char ALT_UNIT_FEET = 'f';
/**
* Get antenna altitude above mean sea level.
*
* @return Altitude value
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
double getAltitude();
/**
* Gets the altitude units, meters or feet.
*
* @return Units enum
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
Units getAltitudeUnits();
/**
* Gets the age of differential GPS data (DGPS).
*
* @return Seconds since last valid RTCM transmission
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
double getDgpsAge();
/**
* Gets the ID of DGPS station.
*
* @return Station ID (0000-1024)
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
String getDgpsStationId();
/**
* Get the GPS fix quality.
*
* @return GpsFixQuality enum
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
GpsFixQuality getFixQuality();
/**
* Get height/separation of geoid above WGS84 ellipsoid, i.e. difference
* between WGS-84 earth ellipsoid and mean sea level. Negative values are
* below WGS-84 ellipsoid.
*
* @return Height value
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
double getGeoidalHeight();
/**
* Get units of height above geoid.
*
* @return Units of geoidal height value
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
Units getGeoidalHeightUnits();
/**
* Get the horizontal dilution of precision (HDOP), i.e. the relative
* accuracy of horizontal position.
*
* @return Horizontal dilution
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
double getHorizontalDOP();
/**
* Get the number of active satellites in use.
*
* @return Number of satellites
* @throws net.sf.marineapi.nmea.parser.DataNotAvailableException If the data is
* not available.
* @throws net.sf.marineapi.nmea.parser.ParseException If the field contains
* unexpected or illegal value.
*/
int getSatelliteCount();
/**
* Set the antenna altitude.
*
* @param alt Altitude to set
*/
void setAltitude(double alt);
/**
* Sets the unit of altitude.
*
* @param unit Units to set
*/
void setAltitudeUnits(Units unit);
/**
* Sets the age of differential GPS data (DGPS).
*
* @param age Seconds since last valid RTCM transmission to set.
*/
void setDgpsAge(double age);
/**
* Sets the ID of DGPS station.
*
* @param id Station ID to set
*/
void setDgpsStationId(String id);
/**
* Sets the GPS fix quality.
*
* @param quality Fix quality to set
*/
void setFixQuality(GpsFixQuality quality);
/**
* Set height/separation of geoid above WGS84 ellipsoid, i.e. difference
* between WGS-84 earth ellipsoid and mean sea level. Negative values are
* below WGS-84 ellipsoid.
*
* @param height Height value to set
*/
void setGeoidalHeight(double height);
/**
* Get unit of height above geoid.
*
* @param unit Unit to set
*/
void setGeoidalHeightUnits(Units unit);
/**
* Set the horizontal dilution of precision (HDOP), i.e. the relative
* accuracy of horizontal position.
*
* @param hdop Horizontal dilution
*/
void setHorizontalDOP(double hdop);
}