Colin Stearns / Mbed 2 deprecated dgps

Dependencies:   mbed

Revision:
6:f0248eb6714d
Parent:
5:eef5ea6a9916
--- a/handle/dataLocation.h	Thu Apr 03 15:56:05 2014 +0000
+++ b/handle/dataLocation.h	Thu Apr 03 16:27:23 2014 +0000
@@ -9,12 +9,14 @@
 private:
     // Current value of lat lon and alt
     double lat,lon,alt;
+    double timestamp;
 public:
-    DataLocation(double latA,double lonA,double altA):lat(latA),lon(lonA),alt(altA){}
+    DataLocation(){}
+    DataLocation(double latA,double lonA,double altA,double t=0):lat(latA),lon(lonA),alt(altA),timestamp(t){}
     double& getLat(){return lat;}
     double& getLon(){return lon;}
     double& getAlt(){return alt;}
-}
+};
 
 /// \brief Location holder type
 enum LHType{
@@ -33,18 +35,19 @@
 class LocHolder{
 private:
     // Actual Locations (absolute)
-    static DataLocation locs[MAXNUMLOCS];
+    DataLocation locs[MAXNUMLOCS];
     // Target Locations (relative to base station -> base station is at 0,0,0)
-    static DataLocation targ[MAXNUMLOCS];
+    DataLocation targ[MAXNUMLOCS];
     // Base Station Locations (absolute)
-    static DataLocation base[MAXNUMLOCS];
+    DataLocation base[MAXNUMLOCS];
     // Index of the head of the circular buffers
-    static unsigned int headLocs,headTarg,headBase;
+    unsigned int headLocs,headTarg,headBase;
     // Number of locations
-    static unsigned int sizeLocs,sizeTarg,sizeBase;
+    unsigned int sizeLocs,sizeTarg,sizeBase;
+    LocHolder():headLocs(0),headTarg(0),headBase(0),sizeLocs(0),sizeTarg(0),sizeBase(0){}
 public:
     /// \brief Get locations type
-    static DataLocation* get(LHType type);
+    DataLocation* get(LHType type);
     
     /// \brief Get Current value
     DataLocation& getC(LHType type,int offset=0);
@@ -52,15 +55,11 @@
     /// \brief Get Index
     unsigned int& getI(LHType type,LHIType indexType=LHIType_head);
     
-    /// \brief Increment index
-    void inc(LHType type,int amount=1);
+    /// \brief Fix an index that might be out of bounds;
+    unsigned int getRealIndex(LHType type,int index,int offset=0,bool useSize=true);
     
-    /// \brief Add data
-    void addLocs(DataLocation newLoc);
-    void addTarg(DataLocation newLoc);
-    void addBase(DataLocation newLoc);
+    /// \brief Increment index
+    void inc(LHType type,int amount=1,bool abs=false);
     
-    void incLocs(int amount=1);
-    void incLocs(int amount=1);
-    void incLocs(int amount=1);
+    void add(LHType type,DataLocation newLoc);
 };
\ No newline at end of file