Library creation
MobiusCam.cpp@0:bd5d25911e06, 2016-03-17 (annotated)
- Committer:
- GlessConsult
- Date:
- Thu Mar 17 17:53:43 2016 +0000
- Revision:
- 0:bd5d25911e06
A little library to control a Mobius ActionCam by connecting the USB interface via relays.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
GlessConsult | 0:bd5d25911e06 | 1 | #include "mbed.h" |
GlessConsult | 0:bd5d25911e06 | 2 | #include "USBHostMSD.h" |
GlessConsult | 0:bd5d25911e06 | 3 | #include "MobiusCam.h" |
GlessConsult | 0:bd5d25911e06 | 4 | |
GlessConsult | 0:bd5d25911e06 | 5 | void MobiusCam::clip(int t) { // take a clip for t seconds |
GlessConsult | 0:bd5d25911e06 | 6 | printf("Start a clip\r\n"); |
GlessConsult | 0:bd5d25911e06 | 7 | _camUSB = 0; |
GlessConsult | 0:bd5d25911e06 | 8 | Thread::wait(200); |
GlessConsult | 0:bd5d25911e06 | 9 | _camV5V = 1; |
GlessConsult | 0:bd5d25911e06 | 10 | Thread::wait(t * 1000); |
GlessConsult | 0:bd5d25911e06 | 11 | printf("Stop the clip\r\n"); |
GlessConsult | 0:bd5d25911e06 | 12 | _camUSB = 0; |
GlessConsult | 0:bd5d25911e06 | 13 | _camV5V = 0; |
GlessConsult | 0:bd5d25911e06 | 14 | Thread::wait(1000); |
GlessConsult | 0:bd5d25911e06 | 15 | } |
GlessConsult | 0:bd5d25911e06 | 16 | |
GlessConsult | 0:bd5d25911e06 | 17 | void MobiusCam::directory(char *buf, int bufLen) { |
GlessConsult | 0:bd5d25911e06 | 18 | printf("Start the camera\r\n"); |
GlessConsult | 0:bd5d25911e06 | 19 | _camUSB = 1; |
GlessConsult | 0:bd5d25911e06 | 20 | Thread::wait(200); |
GlessConsult | 0:bd5d25911e06 | 21 | _camV5V = 1; |
GlessConsult | 0:bd5d25911e06 | 22 | Thread::wait(7000); |
GlessConsult | 0:bd5d25911e06 | 23 | printf("Try to connect the MSD device\r\n"); |
GlessConsult | 0:bd5d25911e06 | 24 | int cnt = 0; |
GlessConsult | 0:bd5d25911e06 | 25 | while(!_msd.connect() && (cnt++ < 5)) { |
GlessConsult | 0:bd5d25911e06 | 26 | Thread::wait(500); |
GlessConsult | 0:bd5d25911e06 | 27 | } |
GlessConsult | 0:bd5d25911e06 | 28 | if (cnt < 5) { |
GlessConsult | 0:bd5d25911e06 | 29 | printf("MSD device connected\r\n"); |
GlessConsult | 0:bd5d25911e06 | 30 | DIR *d = opendir("/usb/DCIM/101HDDVR"); |
GlessConsult | 0:bd5d25911e06 | 31 | //DIR *d = opendir("/usb/DCIM"); |
GlessConsult | 0:bd5d25911e06 | 32 | if (d != NULL) { |
GlessConsult | 0:bd5d25911e06 | 33 | struct dirent *p; |
GlessConsult | 0:bd5d25911e06 | 34 | uint32_t counter = 0; |
GlessConsult | 0:bd5d25911e06 | 35 | printf("Lecture du repertoire ...\r\n"); |
GlessConsult | 0:bd5d25911e06 | 36 | while ((p = readdir(d)) != NULL) { |
GlessConsult | 0:bd5d25911e06 | 37 | counter++; |
GlessConsult | 0:bd5d25911e06 | 38 | printf("%s\r\n", p->d_name); |
GlessConsult | 0:bd5d25911e06 | 39 | } |
GlessConsult | 0:bd5d25911e06 | 40 | closedir(d); |
GlessConsult | 0:bd5d25911e06 | 41 | printf("\r\nFin de lecture du repertoire\r\n"); |
GlessConsult | 0:bd5d25911e06 | 42 | } |
GlessConsult | 0:bd5d25911e06 | 43 | else |
GlessConsult | 0:bd5d25911e06 | 44 | printf("No directory\r\n"); |
GlessConsult | 0:bd5d25911e06 | 45 | } |
GlessConsult | 0:bd5d25911e06 | 46 | else |
GlessConsult | 0:bd5d25911e06 | 47 | printf("MSD device NOT connected\r\n"); |
GlessConsult | 0:bd5d25911e06 | 48 | Thread::wait(500); |
GlessConsult | 0:bd5d25911e06 | 49 | printf("Stop the camera\r\n"); |
GlessConsult | 0:bd5d25911e06 | 50 | _camUSB = 0; |
GlessConsult | 0:bd5d25911e06 | 51 | _camV5V = 0; |
GlessConsult | 0:bd5d25911e06 | 52 | Thread::wait(1000); |
GlessConsult | 0:bd5d25911e06 | 53 | } |