QC Control software

Dependencies:   mbed

Fork of dgps by Colin Stearns

Revision:
6:434d20e99e49
Parent:
0:9c001c4e7bf4
Child:
7:c75d5e5e6bfc
--- a/main.cpp	Sun Feb 16 22:12:08 2014 +0000
+++ b/main.cpp	Fri Feb 21 15:15:25 2014 +0000
@@ -1,10 +1,13 @@
 #include "mbed.h"
 #include <string>
 #include <sstream>
-
+#include "usb.h"
+#include "camera.h"
+/*
 Serial pc(USBTX,USBRX);
 Serial xbee(p9,p10);//tx, rx
 Serial gps(p28,p27);
+Serial camera(p13,p14);
 
 typedef struct {
     int latitude;  //in .0001 minutes
@@ -147,14 +150,44 @@
         reading = true;
      }
 }
-
+*/
 int main(){
-    gps.baud(57600);
-    xbee.baud(9600);
-    pc.baud(57600);
+    //USB::getSerial().printf("------Starting Program------\n");
+    Camera cam;
+    char* version = cam.getVersion();
+    //USB::getSerial().printf("Camera Version:\n%s\n",version);
+    uint8_t targetSize=VC0706_640x480;//VC0706_160x120;
+    cam.setImageSize(targetSize);
+    uint8_t realSize=cam.getImageSize();
+    //USB::getSerial().printf("Image Size | Target: %d, Real %d",targetSize,realSize);
+    if (! cam.takePicture()) {
+        USB::getSerial().printf("Failed to snap!\n");
+        while(1){}
+    } else {
+        //USB::getSerial().printf("Picture taken!\n");
+    }
+    int size=cam.frameLength();
+    //USB::getSerial().printf("Image Size %d\n",size);
+    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 bytesRead=0;
+        uint8_t* buffer = cam.readPicture(bytesToRead,&bytesRead);
+        for(int a=0;a<bytesRead;a++){USB::getSerial().putc(buffer[a]);}
+        //USB::getSerial().write(buffer,bytesToRead);
+        //USB::getSerial().printf("Read: %d/%d - %d/%d\n",i,size,bytesRead,bytesToRead);
+        i+=bytesRead;
+    }
+    //USB::getSerial().printf("Done(%d)\n",i);
+    while(1){
+    }
+//    gps.baud(57600);
+//    xbee.baud(9600);
+//    pc.baud(57600);
     
 //    sendGpsCommand("PMTK301,1");
 //    while(true){pc.putc(gps.getc());}
-    gps.attach(&handleGpsData, Serial::RxIrq);
+//    gps.attach(&handleGpsData, Serial::RxIrq);
 //    xbee.attach(&handleXbeeGps, Serial::RxIrq);
 }