Library for LinkSprite Y201 JPEG serial camera.

Revision:
0:4c0fca059a0a
Child:
1:30a6aeda21c2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Y201.h	Sat Jun 02 11:47:56 2012 +0000
@@ -0,0 +1,53 @@
+#include "mbed.h"
+#pragma once
+
+class Y201 : Serial {
+
+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;
+    
+public:
+    
+    enum Y201ImageSize {
+        e160x120,
+        e320x240,
+        e640x480
+    };
+
+	Y201(PinName tx, PinName rx, const char *name = NULL);
+
+	bool setImageSize(Y201ImageSize size);
+    bool takePicture();
+    bool readImageSize(int *fileSize);
+    bool readImage(int startAddress, int readLen, uint8_t *readBuffer);
+    void trash();
+    
+	bool waitForInt(int bytes, int *fileSize);
+	bool waitFor(const int *seq, const int seqLen);
+	void putSeq(const int *seq, int seqLen);
+	bool reset();
+
+};