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:
Tue Jan 28 06:54:16 2014 +0000
Revision:
1:22304b8f8395
Parent:
KL46Z-USBHostC270/BaseUvc.h@0:a72d9b047d8d
Child:
2:2a40888db9fc
support Logitech C210 Q200R, LifeCam VX-700(VX-500), Sonix Camera.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:a72d9b047d8d 1 // BaseUvc.h
va009039 0:a72d9b047d8d 2 //#include "USBIsochronous.h"
va009039 0:a72d9b047d8d 3 #pragma once
va009039 0:a72d9b047d8d 4
va009039 0:a72d9b047d8d 5 // --- UVC --------------------------------------------------
va009039 0:a72d9b047d8d 6 #define _30FPS 333333
va009039 0:a72d9b047d8d 7 #define _25FPS 400000
va009039 0:a72d9b047d8d 8 #define _20FPS 500000
va009039 0:a72d9b047d8d 9 #define _15FPS 666666
va009039 0:a72d9b047d8d 10 #define _10FPS 1000000
va009039 0:a72d9b047d8d 11 #define _5FPS 2000000
va009039 0:a72d9b047d8d 12 #define _1FPS 10000000
va009039 0:a72d9b047d8d 13
va009039 0:a72d9b047d8d 14 #define SET_CUR 0x01
va009039 0:a72d9b047d8d 15 #define GET_CUR 0x81
va009039 0:a72d9b047d8d 16 #define GET_MIN 0x82
va009039 0:a72d9b047d8d 17 #define GET_MAX 0x83
va009039 0:a72d9b047d8d 18 #define GET_RES 0x84
va009039 0:a72d9b047d8d 19 #define GET_LEN 0x85
va009039 0:a72d9b047d8d 20 #define GET_INFO 0x86
va009039 0:a72d9b047d8d 21 #define GET_DEF 0x87
va009039 0:a72d9b047d8d 22
va009039 0:a72d9b047d8d 23 #define VS_PROBE_CONTROL 0x01
va009039 0:a72d9b047d8d 24 #define VS_COMMIT_CONTROL 0x02
va009039 0:a72d9b047d8d 25
va009039 0:a72d9b047d8d 26 class BaseUvc {
va009039 0:a72d9b047d8d 27 public:
va009039 0:a72d9b047d8d 28 void poll();
va009039 0:a72d9b047d8d 29 USB_TYPE Control(int req, int cs, int index, uint8_t* buf, int size);
va009039 0:a72d9b047d8d 30 USB_TYPE setInterfaceAlternate(uint8_t intf, uint8_t alt);
va009039 0:a72d9b047d8d 31 //IsochronousEp* m_isoEp;
va009039 0:a72d9b047d8d 32 // callback
va009039 0:a72d9b047d8d 33 void onResult(uint16_t frame, uint8_t* buf, int len);
va009039 0:a72d9b047d8d 34 void setOnResult( void (*pMethod)(uint16_t, uint8_t*, int) );
va009039 0:a72d9b047d8d 35 class CDummy;
va009039 0:a72d9b047d8d 36 template<class T>
va009039 0:a72d9b047d8d 37 void setOnResult( T* pItem, void (T::*pMethod)(uint16_t, uint8_t*, int) )
va009039 0:a72d9b047d8d 38 {
va009039 0:a72d9b047d8d 39 m_pCb = NULL;
va009039 0:a72d9b047d8d 40 m_pCbItem = (CDummy*) pItem;
va009039 0:a72d9b047d8d 41 m_pCbMeth = (void (CDummy::*)(uint16_t, uint8_t*, int)) pMethod;
va009039 0:a72d9b047d8d 42 }
va009039 0:a72d9b047d8d 43 void clearOnResult();
va009039 0:a72d9b047d8d 44 CDummy* m_pCbItem;
va009039 0:a72d9b047d8d 45 void (CDummy::*m_pCbMeth)(uint16_t, uint8_t*, int);
va009039 0:a72d9b047d8d 46 void (*m_pCb)(uint16_t, uint8_t*, int);
va009039 0:a72d9b047d8d 47 protected:
va009039 0:a72d9b047d8d 48 USBHost * host;
va009039 0:a72d9b047d8d 49 USBDeviceConnected * dev; // dummy
va009039 0:a72d9b047d8d 50 USBEndpoint ep_iso_in;
va009039 0:a72d9b047d8d 51 };