Simple USBHost WebCam test program

Dependencies:   F401RE-USBHost mbed

Fork of KL46Z-USBHostC270_example by Norimasa Okamoto

WebカメラからJPEG画像を読み取るテストプログラムです。
使い方はKL46Z-USBHostC270_exampleと同じです。
動作確認カメラ: Logitech C270, Logitech C210, Logitech Q200R(Qcam Orbit AF), LifeCam VX-500
/media/uploads/va009039/f401re-c270-1.jpg /media/uploads/va009039/k64f-c270.jpg

Committer:
va009039
Date:
Mon Jan 27 11:07:34 2014 +0000
Revision:
0:a72d9b047d8d
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:a72d9b047d8d 1 // Simple USBHost Logtigech C270 for FRDM-KL46Z
va009039 0:a72d9b047d8d 2 #include "USBHost.h"
va009039 0:a72d9b047d8d 3 #include "BaseUvc.h"
va009039 0:a72d9b047d8d 4 #include "decodeMJPEG.h"
va009039 0:a72d9b047d8d 5
va009039 0:a72d9b047d8d 6 // Logitech C270
va009039 0:a72d9b047d8d 7 #define C270_VID 0x046d
va009039 0:a72d9b047d8d 8 #define C270_PID 0x0825
va009039 0:a72d9b047d8d 9 #define C270_160x120 2
va009039 0:a72d9b047d8d 10 #define C270_176x144 3
va009039 0:a72d9b047d8d 11 #define C270_320x176 4
va009039 0:a72d9b047d8d 12 #define C270_320x240 5
va009039 0:a72d9b047d8d 13 #define C270_352x288 6
va009039 0:a72d9b047d8d 14 #define C270_432x240 7
va009039 0:a72d9b047d8d 15 #define C270_640x480 1
va009039 0:a72d9b047d8d 16 #define C270_544x288 8
va009039 0:a72d9b047d8d 17 #define C270_640x360 9
va009039 0:a72d9b047d8d 18 #define C270_752x416 10
va009039 0:a72d9b047d8d 19 #define C270_800x448 11
va009039 0:a72d9b047d8d 20 #define C270_800x600 12
va009039 0:a72d9b047d8d 21
va009039 0:a72d9b047d8d 22 #define C270_MJPEG 2
va009039 0:a72d9b047d8d 23 #define C270_YUV2 1
va009039 0:a72d9b047d8d 24
va009039 0:a72d9b047d8d 25 #define C270_EN 0x81
va009039 0:a72d9b047d8d 26 #define C270_MPS 192
va009039 0:a72d9b047d8d 27 #define C270_IF_ALT 1
va009039 0:a72d9b047d8d 28
va009039 0:a72d9b047d8d 29 class USBHostC270 : public BaseUvc, public decodeMJPEG {
va009039 0:a72d9b047d8d 30 public:
va009039 0:a72d9b047d8d 31 USBHostC270(int formatIndex = C270_MJPEG, int frameIndex = C270_160x120, uint32_t interval = _5FPS);
va009039 0:a72d9b047d8d 32 /**
va009039 0:a72d9b047d8d 33 * read jpeg image
va009039 0:a72d9b047d8d 34 *
va009039 0:a72d9b047d8d 35 * @param buf read buffer
va009039 0:a72d9b047d8d 36 * @param size buffer size
va009039 0:a72d9b047d8d 37 * @param timeout_ms timeout default 15sec
va009039 0:a72d9b047d8d 38 * @return jpeg size if read success else -1
va009039 0:a72d9b047d8d 39 */
va009039 0:a72d9b047d8d 40 int readJPEG(uint8_t* buf, int size, int timeout_ms = 15*1000);
va009039 0:a72d9b047d8d 41
va009039 0:a72d9b047d8d 42 Report* report;
va009039 0:a72d9b047d8d 43
va009039 0:a72d9b047d8d 44 private:
va009039 0:a72d9b047d8d 45 int _formatIndex;
va009039 0:a72d9b047d8d 46 int _frameIndex;
va009039 0:a72d9b047d8d 47 uint32_t _interval;
va009039 0:a72d9b047d8d 48 uint8_t _seq;
va009039 0:a72d9b047d8d 49 uint8_t* _buf;
va009039 0:a72d9b047d8d 50 int _pos;
va009039 0:a72d9b047d8d 51 int _size;
va009039 0:a72d9b047d8d 52
va009039 0:a72d9b047d8d 53 void setup();
va009039 0:a72d9b047d8d 54 virtual void outputJPEG(uint8_t c, int status); // from decodeMJPEG
va009039 0:a72d9b047d8d 55 void callback_motion_jpeg(uint16_t frame, uint8_t* buf, int len);
va009039 0:a72d9b047d8d 56 };
va009039 0:a72d9b047d8d 57