Ibrahim Abd Elkader
/
ucam
Diff: ucam.h
- Revision:
- 0:796c01948235
diff -r 000000000000 -r 796c01948235 ucam.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ucam.h Fri Dec 09 05:32:12 2011 +0000 @@ -0,0 +1,45 @@ +#ifndef __UCAM__H__ +#define __UCAM__H__ +#include <mbed.h> +/*color space*/ +#define COLOR_YUV_2 0x01 +#define COLOR_YUV_4 0x02 +#define COLOR_YUV_8 0x03 +#define COLOR_RGB_332 0x04 +#define COLOR_RGB_444 0x05 +#define COLOR_RGB_565 0x06 +#define COLOR_JPEG 0x07 +/*raw resolution*/ +#define RAW_80x60 0x01 +#define RAW_160x120 0x03 +#define RAW_320x240 0x05 +#define RAW_640x480 0x07 +#define RAW_128x128 0x09 +#define RAW_128x96 0x0B +/*jpeg resolution*/ +#define JPEG_80x64 0x01 +#define JPEG_160x128 0x03 +#define JPEG_320x240 0x05 +#define JPEG_640x480 0x07 +struct ucam_command; + +class UCam{ + public: + Serial *ucam; + DigitalOut led; + + public: + UCam(PinName tx_pin, PinName rx_pin, PinName led_pin, uint32_t baudrate); + ~UCam(); + int8_t connect(); + int8_t snapshot(uint8_t *buf, uint16_t *len, uint8_t colorspace, uint8_t raw_size, uint8_t jpeg_size); + int8_t start_video(uint8_t colorspace, uint8_t raw_size, uint8_t jpeg_size); + int8_t next_frame(uint8_t *buf, uint16_t *len); + int8_t end_video(); + + private: + void uart_isr(); + int8_t send_cmd(uint8_t cmd, uint8_t p1=0, uint8_t p2=0, uint8_t p3=0, uint8_t p4=0, uint8_t noack=0); + int8_t recv_cmd(struct ucam_command *cmd); +}; +#endif/*#define __UCAM_H__*/ \ No newline at end of file