Colin Stearns / Mbed 2 deprecated dgps

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
dylanembed123
Date:
Thu Apr 03 16:27:23 2014 +0000
Parent:
5:eef5ea6a9916
Commit message:
Fix compile errors;

Changed in this revision

adapt/camera.h Show annotated file Show diff for this revision Revisions of this file
adapt/gps.cpp Show annotated file Show diff for this revision Revisions of this file
handle/dataLocation.cpp Show annotated file Show diff for this revision Revisions of this file
handle/dataLocation.h Show annotated file Show diff for this revision Revisions of this file
handle/handleCamera.cpp Show annotated file Show diff for this revision Revisions of this file
handle/handleCamera.h Show annotated file Show diff for this revision Revisions of this file
handle/handleGPS.cpp Show annotated file Show diff for this revision Revisions of this file
handle/handleGPS.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/adapt/camera.h	Thu Apr 03 15:56:05 2014 +0000
+++ b/adapt/camera.h	Thu Apr 03 16:27:23 2014 +0000
@@ -1,3 +1,6 @@
+#ifndef _CAMERA_H_
+#define _CAMERA_H_
+
 /**
   *  \brief Camera interface
   **/
@@ -88,4 +91,5 @@
     uint8_t readResponse(uint8_t numbytes, uint8_t timeout);
     // Send the command
     void sendCommand(uint8_t cmd, uint8_t args[] = 0, uint8_t argn = 0);
-};
\ No newline at end of file
+};
+#endif
\ No newline at end of file
--- a/adapt/gps.cpp	Thu Apr 03 15:56:05 2014 +0000
+++ b/adapt/gps.cpp	Thu Apr 03 16:27:23 2014 +0000
@@ -8,5 +8,5 @@
         gps=new Serial(GPSPINTX,GPSPINRX);
         gps->baud(GPSBAUD);//gps->baud(115200);//57600);
     }
-    return *pc;
+    return *gps;
 }
\ No newline at end of file
--- a/handle/dataLocation.cpp	Thu Apr 03 15:56:05 2014 +0000
+++ b/handle/dataLocation.cpp	Thu Apr 03 16:27:23 2014 +0000
@@ -1,39 +1,25 @@
-
-
-DataLocation* LocHolder::locs=NULL;
-DataLocation* LocHolder::targ=NULL;
-DataLocation* LocHolder::base=NULL;
-
-unsigned int LocHolder::headLocs=0;
-unsigned int LocHolder::headTarg=0;
-unsigned int LocHolder::headBase=0;
-
-unsigned int LocHolder::sizeLocs=0;
-unsigned int LocHolder::sizeTarg=0;
-unsigned int LocHolder::sizeBase=0;
+#include "dataLocation.h"
 
 DataLocation* LocHolder::get(LHType type){
     if(type==LHType_locs){
-        if(locs==NULL)locs=new DataLocation[MAXNUMLOCS];
         return locs;
     }else if(type==LHType_targ){
-        if(targ==NULL)targ=new DataLocation[MAXNUMLOCS];
         return targ;
     }else if(type==LHType_base){
-        if(base==NULL)base=new DataLocation[MAXNUMLOCS];
         return base;
     }
-}
-
-unsigned int LocHolder::getRealIndex(int index,int offset=0){
-    return (index+offset)%MAXNUMLOCS;
+    return base;
 }
 
-DataLocation& LocHolder::getC(LHType type,int offset=0){
-    return get(type)[getRealIndex(headLocs,offset)];
+unsigned int LocHolder::getRealIndex(LHType type,int index,int offset,bool useSize){
+    return (index+offset)%(useSize?getI(type,LHIType_size):MAXNUMLOCS);
 }
 
-unsigned int& getI(LHType type,LHIType indexType=LHIType_head){
+DataLocation& LocHolder::getC(LHType type,int offset){
+    return get(type)[getRealIndex(type,offset)];
+}
+
+unsigned int& LocHolder::getI(LHType type,LHIType indexType){
     if(indexType==LHIType_head){
         // Grab proper header
         if(type==LHType_locs){return headLocs;}else if(type==LHType_targ){return headTarg;}else if(type==LHType_base){return headBase;}
@@ -41,10 +27,17 @@
         // Grab proper size
         if(type==LHType_locs){return sizeLocs;}else if(type==LHType_targ){return sizeTarg;}else if(type==LHType_base){return sizeBase;}    
     }
+    return headLocs;
 }
 
-void inc(LHType type,int amount=1){
+void LocHolder::inc(LHType type,int amount,bool abs){
     unsigned int& index=getI(type);
-    index=(index+amount)%getI(type,LHIType_size);
+    index=getRealIndex(type,(abs?0:index),amount);//((abs?0:index)+amount)%getI(type,LHIType_size);
     getI(type)=index;
+}
+
+void LocHolder::add(LHType type,DataLocation newLoc){
+    getI(type)=getI(type,LHIType_size);
+    getI(type,LHIType_size)++;
+    getC(type)=newLoc;
 }
\ No newline at end of file
--- 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
--- a/handle/handleCamera.cpp	Thu Apr 03 15:56:05 2014 +0000
+++ b/handle/handleCamera.cpp	Thu Apr 03 16:27:23 2014 +0000
@@ -17,7 +17,7 @@
     int i;
     for(i=0;i<size;){
         // read 32 bytes at a time;
-        uint8_t bytesToRead = min(64, size-i); // change 32 to 64 for a speedup but may not work with all setups!
+        uint8_t bytesToRead = std::min(64, size-i); // change 32 to 64 for a speedup but may not work with all setups!
         uint8_t bytesRead=0;
         uint8_t* buffer = cam.readPicture(bytesToRead,&bytesRead);
         for(int a=0;a<bytesRead;a++){USB::getSerial().putc(buffer[a]);}
--- a/handle/handleCamera.h	Thu Apr 03 15:56:05 2014 +0000
+++ b/handle/handleCamera.h	Thu Apr 03 16:27:23 2014 +0000
@@ -3,6 +3,7 @@
 
 #include "adapt/usb.h"
 #include "adapt/camera.h"
+#include <algorithm>
 class ImageHandle{
 private:
     Camera cam;
--- a/handle/handleGPS.cpp	Thu Apr 03 15:56:05 2014 +0000
+++ b/handle/handleGPS.cpp	Thu Apr 03 16:27:23 2014 +0000
@@ -1,10 +1,11 @@
+#include "handleGPS.h"
 void GPSHandle::setup(){
 }
 
 void GPSHandle::update(){
     while(true){
-        if(gps.readable()>0){
-            char c = gps.getc();
+        if(gps.getSerial().readable()>0){
+            char c = gps.getSerial().getc();
             USB::getSerial().printf("%c",c);
         }
     }
@@ -12,4 +13,7 @@
 
 bool GPSHandle::check(){
     return true;
+}
+
+void GPSHandle::run(){
 }
\ No newline at end of file
--- a/handle/handleGPS.h	Thu Apr 03 15:56:05 2014 +0000
+++ b/handle/handleGPS.h	Thu Apr 03 16:27:23 2014 +0000
@@ -2,10 +2,10 @@
 #define _HANDLEGPS_H_
 
 #include "adapt/usb.h"
-#include "adapt/camera.h"
+#include "adapt/gps.h"
 class GPSHandle{
 private:
-    GPS gps
+    GPS gps;
     bool initialized;
     
     /// \brief Setup
@@ -16,7 +16,7 @@
     bool check();
 public:
     /// \brief Constructor
-    ImageHandle():initialized(false){}
+    GPSHandle():initialized(false){}
     /// \brief Run an instance of this
     void run();
 };
--- a/main.cpp	Thu Apr 03 15:56:05 2014 +0000
+++ b/main.cpp	Thu Apr 03 16:27:23 2014 +0000
@@ -3,6 +3,8 @@
 #include <sstream>
 #include "adapt/usb.h"
 #include "adapt/camera.h"
+#include "handle/handleCamera.h"
+#include "handle/handleGPS.h"
 /*
 Serial pc(USBTX,USBRX);
 Serial xbee(p9,p10);//tx, rx
@@ -157,7 +159,7 @@
 
 int main(){
     ImageHandle imageHand;
-    GPSHand gpsHand;
+    GPSHandle gpsHand;
     
     /// Main Loop
     while(1){