testing n-Bed with a Logitech C270 camera

Dependencies:   USBHost mbed

Fork of USBHostC270_example by Norimasa Okamoto

Committer:
va009039
Date:
Sun Mar 17 13:22:13 2013 +0000
Revision:
10:387c49b2fc7e
Parent:
9:fecabade834a
Child:
11:6a8eef89eb22
add readJPEG(), detach does not support.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 10:387c49b2fc7e 1 #include "USBHostMSD.h"
va009039 10:387c49b2fc7e 2 #include "USBHostC270.h"
va009039 10:387c49b2fc7e 3
va009039 10:387c49b2fc7e 4 Serial pc(USBTX, USBRX);
va009039 10:387c49b2fc7e 5 BusOut leds(LED1, LED2, LED3);
va009039 10:387c49b2fc7e 6
va009039 10:387c49b2fc7e 7 int main() {
va009039 10:387c49b2fc7e 8 pc.baud(921600);
va009039 10:387c49b2fc7e 9
va009039 10:387c49b2fc7e 10 USBHostMSD* msd = new USBHostMSD("usb"); // USB flash drive
va009039 10:387c49b2fc7e 11
va009039 10:387c49b2fc7e 12 USBHostC270* cam = new USBHostC270(C270_MJPEG, C270_160x120, _5FPS); // Logitech C270
va009039 10:387c49b2fc7e 13 while(!cam->connect()) {
va009039 10:387c49b2fc7e 14 Thread::wait(500);
va009039 10:387c49b2fc7e 15 }
va009039 10:387c49b2fc7e 16
va009039 10:387c49b2fc7e 17 uint8_t buf[1024*3];
va009039 10:387c49b2fc7e 18 Timer interval_t;
va009039 10:387c49b2fc7e 19 interval_t.reset();
va009039 10:387c49b2fc7e 20 interval_t.start();
va009039 10:387c49b2fc7e 21 int shot = 0;
va009039 10:387c49b2fc7e 22 while(1) {
va009039 10:387c49b2fc7e 23 if (interval_t.read() > 10) {
va009039 10:387c49b2fc7e 24 int r = cam->readJPEG(buf, sizeof(buf));
va009039 10:387c49b2fc7e 25 char path[32];
va009039 10:387c49b2fc7e 26 snprintf(path, sizeof(path), "/usb/image%02d.jpg", shot % 20);
va009039 10:387c49b2fc7e 27 printf("%d %s %d bytes\n", shot, path, r);
va009039 10:387c49b2fc7e 28 if (msd->connected()) {
va009039 10:387c49b2fc7e 29 FILE* fp = fopen(path, "wb");
va009039 10:387c49b2fc7e 30 if (fp) {
va009039 10:387c49b2fc7e 31 fwrite(buf, r, 1, fp);
va009039 10:387c49b2fc7e 32 fclose(fp);
va009039 10:387c49b2fc7e 33 }
va009039 10:387c49b2fc7e 34 shot++;
va009039 10:387c49b2fc7e 35 leds = shot % 8;
va009039 10:387c49b2fc7e 36 }
va009039 10:387c49b2fc7e 37 interval_t.reset();
va009039 10:387c49b2fc7e 38 }
va009039 10:387c49b2fc7e 39 if (!msd->connected()) {
va009039 10:387c49b2fc7e 40 msd->connect();
va009039 10:387c49b2fc7e 41 }
va009039 10:387c49b2fc7e 42 cam->poll();
va009039 10:387c49b2fc7e 43 }
va009039 10:387c49b2fc7e 44 }