Library for LinkSprite Y201 JPEG serial camera.

Revision:
10:fd12c96da974
Parent:
3:decf96d8e6b0
--- a/Y201.h	Thu Jul 19 15:48:25 2012 +0000
+++ b/Y201.h	Fri Jul 20 08:59:03 2012 +0000
@@ -1,5 +1,5 @@
 #include "mbed.h"
-#define MODSERIAL_DEFAULT_RX_BUFFER_SIZE 512
+#define MODSERIAL_DEFAULT_RX_BUFFER_SIZE 1024
 #define MODSERIAL_DEFAULT_TX_BUFFER_SIZE 64
 #include "MODSERIAL.h"
 #pragma once
@@ -9,36 +9,60 @@
 private:
 
     // serial commands to drive camera
-    static const int resetSeq        [4];
-    static const int resetSeqLen        = 4;
-    static const int resetSeqAck     [4];
-    static const int resetSeqAckLen     = 4;
-    static const int takePicSeq      [5];
-    static const int takePicSeqLen      = 5;
-    static const int takePicSeqAck   [5];
-    static const int takePicSeqAckLen   = 5;
-    static const int set160x120      [9];
-    static const int set320x240      [9];
-    static const int set640x480      [9];
-    static const int setSizeLen         = 9;
-    static const int setSizeAck      [5];
-    static const int setSizeAckLen      = 5;
-    static const int readFileSize    [5];
-    static const int readFileSizeLen    = 5;
-    static const int readFileSizeAck [7];
-    static const int readFileSizeAckLen = 7;
-    static const int readFileHead    [8];
-    static const int readFileHeadLen    = 8;
-    static const int readFileAck     [5];
-    static const int readFileAckLen     = 5;
+    static const char resetSeq         [4];
+    static const int  resetSeqLen          = 4;
+    static const char resetSeqAck      [4];
+    static const int  resetSeqAckLen       = 4;
+    static const char takePicSeq       [5];
+    static const int  takePicSeqLen        = 5;
+    static const char takePicSeqAck    [5];
+    static const int  takePicSeqAckLen     = 5;
+    static const char set160x120       [9];
+    static const char set320x240       [9];
+    static const char set640x480       [9];
+    static const int  setSizeLen           = 9;
+    static const char setSizeAck       [5];
+    static const int  setSizeAckLen        = 5;
+    static const char readFileSize     [5];
+    static const int  readFileSizeLen      = 5;
+    static const char readFileSizeAck  [7];
+    static const int  readFileSizeAckLen   = 7;
+    static const char readFileHead     [8];
+    static const int  readFileHeadLen      = 8;
+    static const char readFileAck      [5];
+    static const int  readFileAckLen       = 5;
+    /*
+    static const char changeBaudRateSeq  [5];
+    static const int  changeBaudRateSeqLen = 5;
+    static const char changeBaudRateAck  [5];
+    static const int  changeBaudRateAckLen = 5;
+    */
+    static const char enterPowerSavingSeq[7];
+    static const int  enterPowerSavingLen  = 7;
+    static const char enterPowerSavingAck[5];
+    static const int  enterPowerSavingAckLen = 5;
+    static const char exitPowerSavingSeq [7];
+    static const int  exitPowerSavingLen     = 7;
+    static const char exitPowerSavingAck[5];
+    static const int  exitPowerSavingAckLen  = 5;
     
 public:
     
     enum Y201ImageSize {
-        e160x120,
-        e320x240,
-        e640x480
+       e160x120,
+       e320x240,
+       e640x480
     };
+    
+    /*
+    enum Y201BaudRate {
+       e9600,
+       e19200,
+       e38400,
+       e57600,
+       e115200
+    };
+    */
 
     Y201(PinName tx, PinName rx, const char *name = NULL);
 
@@ -46,11 +70,14 @@
     bool takePicture();
     bool readImageSize(int *fileSize);
     bool readImage(int startAddress, int readLen, uint8_t *readBuffer);
+    //bool changeBaudRate(Y201BaudRate baudRate);
+    bool enterPowerSaving();
+    bool exitPowerSaving();
     void trash();
     
     bool waitForInt(int bytes, int *fileSize);
-    bool waitFor(const int *seq, const int seqLen);
-    void putSeq(const int *seq, int seqLen);
+    bool waitFor(const char *seq, const int seqLen);
+    void putSeq(const char *seq, int seqLen);
     bool reset();
 
 };