Colin Stearns
/
qcControl
QC Control software
Fork of dgps by
Diff: camera.h
- Revision:
- 7:c75d5e5e6bfc
- Parent:
- 6:434d20e99e49
- Child:
- 8:28b866df62cf
--- a/camera.h Fri Feb 21 15:15:25 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/** - * \brief Camera interface - **/ -#define CAMERABUFFSIZ 100 -#include "usb.h" -#include "mbed.h" - -/// Define Pinout -#define CAMERAPINTX p9 -//p13 -#define CAMERAPINRX p10 -//p14 -/// Define Baud -#define CAMERABAUD 38400 - -/// Define commands -#define VC0706_RESET 0x26 -#define VC0706_GEN_VERSION 0x11 -#define VC0706_READ_FBUF 0x32 -#define VC0706_GET_FBUF_LEN 0x34 -#define VC0706_FBUF_CTRL 0x36 -#define VC0706_DOWNSIZE_CTRL 0x54 -#define VC0706_DOWNSIZE_STATUS 0x55 -#define VC0706_READ_DATA 0x30 -#define VC0706_WRITE_DATA 0x31 -#define VC0706_COMM_MOTION_CTRL 0x37 -#define VC0706_COMM_MOTION_STATUS 0x38 -#define VC0706_COMM_MOTION_DETECTED 0x39 -#define VC0706_MOTION_CTRL 0x42 -#define VC0706_MOTION_STATUS 0x43 -#define VC0706_TVOUT_CTRL 0x44 -#define VC0706_OSD_ADD_CHAR 0x45 - -#define VC0706_STOPCURRENTFRAME 0x0 -#define VC0706_STOPNEXTFRAME 0x1 -#define VC0706_RESUMEFRAME 0x3 -#define VC0706_STEPFRAME 0x2 - -#define VC0706_640x480 0x00 -#define VC0706_320x240 0x11 -#define VC0706_160x120 0x22 - -#define VC0706_MOTIONCONTROL 0x0 -#define VC0706_UARTMOTION 0x01 -#define VC0706_ACTIVATEMOTION 0x01 - -#define VC0706_SET_ZOOM 0x52 -#define VC0706_GET_ZOOM 0x53 - -#define CAMERABUFFSIZ 100 -#define CAMERADELAY 10 - - - - -/// \brief Camera class -class Camera{ - static Serial* camera; - static uint8_t serialNum; - uint8_t bufferLen; - uint8_t camerabuff[CAMERABUFFSIZ+1]; - uint16_t frameptr; -public: - /// \brief Call this function to get a hold of the serial for camera. - static Serial& getSerial(); - /// \brief Reset the camera - bool reset(); - /// \brief Get the camera version - char * getVersion(void); - - bool takePicture(); - bool cameraFrameBuffCtrl(uint8_t command); - uint8_t* readPicture(uint8_t n,uint8_t* outSize=NULL); - uint32_t frameLength(void); - /// \brief Get the image Size - uint8_t getImageSize(); - /// \brief Set the image Size - bool setImageSize(uint8_t x); - // - // Low level commands - // - // Run a command - bool runCommand(uint8_t cmd, uint8_t *args, uint8_t argn, uint8_t resplen, bool flushflag = true); - // Output the buffer over the USB - void printBuff(); - // Varify the response - bool verifyResponse(uint8_t command); - // Read the response - 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