]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/load/NmeaMessage.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / tim / prune / load / NmeaMessage.java
diff --git a/tim/prune/load/NmeaMessage.java b/tim/prune/load/NmeaMessage.java
deleted file mode 100644 (file)
index 83f5382..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-package tim.prune.load;
-
-import java.util.Calendar;
-
-/**
- * Class to hold a single NMEA message
- */
-public class NmeaMessage
-{
-       private String _latitude = null;
-       private String _longitude = null;
-       private String _altitude = null;
-       private String _timestamp = null;
-       private String _date = null;
-       private boolean _fix = false;
-       private boolean _segment = false;
-
-       /**
-        * Constructor
-        * @param inLatitude latitude
-        * @param inLongitude longitude
-        * @param inAltitude altitude
-        * @param inTimestamp timestamp
-        * @param inFix fix = 0, 1 or 2
-        */
-       public NmeaMessage(String inLatitude, String inLongitude,
-               String inAltitude, String inTimestamp, String inFix)
-       {
-               _latitude = inLatitude;
-               _longitude = inLongitude;
-               _altitude = inAltitude;
-               _timestamp = inTimestamp;
-               _fix = (inFix != null && !inFix.equals("0"));
-       }
-
-       /**
-        * @return true if message has a fix
-        */
-       public boolean hasFix() {
-               return _fix;
-       }
-
-       /**
-        * @param inSegment segment flag
-        */
-       public void setSegment(boolean inSegment)
-       {
-               _segment = inSegment;
-       }
-
-       /**
-        * @param inDate date from MRC sentence
-        */
-       public void setDate(String inDate) {
-               _date = inDate;
-       }
-
-       /**
-        * @return String array for loading
-        */
-       public String[] getStrings()
-       {
-               String[] results = new String[] {modify(_latitude), modify(_longitude), _altitude,
-                       getTimestamp(), (_segment?"1":"")};
-               return results;
-       }
-
-       /**
-        * Insert a separator between degrees and minutes
-        * @param inCoordinate NMEA coordinate string
-        * @return modified string or input string if format wasn't what was expected
-        */
-       private static String modify(String inCoordinate)
-       {
-               if (inCoordinate != null && inCoordinate.length() > 6)
-               {
-                       int dotPos = inCoordinate.indexOf('.');
-                       if (dotPos > 0) {
-                               return inCoordinate.substring(0, dotPos-2) + "d" + inCoordinate.substring(dotPos-2);
-                       }
-               }
-               return inCoordinate;
-       }
-
-       /**
-        * Use time from NMEA message, and today's date (as date isn't given in GPGGA messages)
-        * @return Timestamp in parseable format
-        */
-       private String getTimestamp()
-       {
-               try
-               {
-                       Calendar cal = Calendar.getInstance();
-                       // use date if available (today if not)
-                       if (_date != null && _date.length() == 6) {
-                               try {
-                                       cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(_date.substring(0, 2)));
-                                       cal.set(Calendar.MONTH, Integer.parseInt(_date.substring(2, 4))-1); // month starts at zero
-                                       int year = Integer.parseInt(_date.substring(4, 6));
-                                       if (year < 80) {year += 2000;} else {year += 1900;} // two-digit year hack
-                                       cal.set(Calendar.YEAR, year);
-                               }
-                               catch (Exception e) {} // ignore exceptions for date, still take time
-                       }
-                       cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(_timestamp.substring(0, 2)));
-                       cal.set(Calendar.MINUTE, Integer.parseInt(_timestamp.substring(2, 4)));
-                       cal.set(Calendar.SECOND, Integer.parseInt(_timestamp.substring(4, 6)));
-                       cal.set(Calendar.MILLISECOND, 0);
-                       // Return time as number of milliseconds
-                       return "" + cal.getTimeInMillis();
-               }
-               catch (Exception e) {}  // ignore parsing errors, just have no timestamp
-               return null;
-       }
-}