putting strings to xbee
Dependencies: BMP085 SDFileSystem mbed JPEGCamera
Fork of SaibiCansat2014 by
FastJpegCamera.h@8:3230ddd3a3d1, 2014-07-17 (annotated)
- Committer:
- TakashiSasaki
- Date:
- Thu Jul 17 23:30:16 2014 +0000
- Revision:
- 8:3230ddd3a3d1
- Parent:
- 7:cc8080b31ac5
- Child:
- 9:3a2d25f4700b
LinkSprite at 115200bps
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
TakashiSasaki | 6:9824d4e2f29b | 1 | #ifndef FAST_JPEG_CAMERA_H |
TakashiSasaki | 6:9824d4e2f29b | 2 | #define FAST_JPEG_CAMERA_H |
TakashiSasaki | 6:9824d4e2f29b | 3 | |
TakashiSasaki | 6:9824d4e2f29b | 4 | #include "JPEGCamera/JPEGCamera.h" |
TakashiSasaki | 6:9824d4e2f29b | 5 | |
TakashiSasaki | 6:9824d4e2f29b | 6 | #define FILENAME "/sd/pict%03d.jpg" |
TakashiSasaki | 6:9824d4e2f29b | 7 | |
TakashiSasaki | 6:9824d4e2f29b | 8 | class FastJpegCamera : public JPEGCamera { |
TakashiSasaki | 6:9824d4e2f29b | 9 | public: |
TakashiSasaki | 6:9824d4e2f29b | 10 | DigitalOut myled1; //show successful picture was taken |
TakashiSasaki | 6:9824d4e2f29b | 11 | int baudrate; |
TakashiSasaki | 6:9824d4e2f29b | 12 | Serial pc; |
TakashiSasaki | 6:9824d4e2f29b | 13 | |
TakashiSasaki | 6:9824d4e2f29b | 14 | FastJpegCamera(PinName tx, PinName rx) : JPEGCamera(tx,rx), baudrate(38400), pc(USBTX, USBRX), myled1(LED1){ |
TakashiSasaki | 8:3230ddd3a3d1 | 15 | this->baud115200(); |
TakashiSasaki | 6:9824d4e2f29b | 16 | }; |
TakashiSasaki | 6:9824d4e2f29b | 17 | |
TakashiSasaki | 6:9824d4e2f29b | 18 | void baud115200(){ |
TakashiSasaki | 6:9824d4e2f29b | 19 | char buf[7] = {0x56, 0x00, 0x24, 0x03, 0x01, 0x0d, 0xa6}; |
TakashiSasaki | 6:9824d4e2f29b | 20 | //char buf[5] = {0x56, 0x00, 0x34, 0x0d, 0xa6}; |
TakashiSasaki | 6:9824d4e2f29b | 21 | //int ret = sendReceive(buf, sizeof buf, 5); |
TakashiSasaki | 6:9824d4e2f29b | 22 | for (int i = 0; i < sizeof buf; i++) putc(buf[i]); |
TakashiSasaki | 8:3230ddd3a3d1 | 23 | wait(0.5); |
TakashiSasaki | 6:9824d4e2f29b | 24 | this->baudrate = 115200; |
TakashiSasaki | 6:9824d4e2f29b | 25 | this->baud(this->baudrate); |
TakashiSasaki | 6:9824d4e2f29b | 26 | wait(4); |
TakashiSasaki | 6:9824d4e2f29b | 27 | //this->reset(); |
TakashiSasaki | 6:9824d4e2f29b | 28 | receive(buf, 5, 500); |
TakashiSasaki | 6:9824d4e2f29b | 29 | pc.printf("%02x %02x %02x %02x %02x", buf[0], buf[1], buf[2], buf[3], buf[4]); |
TakashiSasaki | 6:9824d4e2f29b | 30 | }; |
TakashiSasaki | 6:9824d4e2f29b | 31 | |
TakashiSasaki | 6:9824d4e2f29b | 32 | void baud57600(){ |
TakashiSasaki | 6:9824d4e2f29b | 33 | char buf[7] = {0x56, 0x00, 0x24, 0x03, 0x01, 0x1c, 0x4c}; |
TakashiSasaki | 6:9824d4e2f29b | 34 | int ret = sendReceive(buf, sizeof buf, 5); |
TakashiSasaki | 6:9824d4e2f29b | 35 | wait(0.5); |
TakashiSasaki | 6:9824d4e2f29b | 36 | this->reset(); |
TakashiSasaki | 6:9824d4e2f29b | 37 | this->baudrate = 57600; |
TakashiSasaki | 6:9824d4e2f29b | 38 | this->baud(this->baudrate); |
TakashiSasaki | 6:9824d4e2f29b | 39 | }; |
TakashiSasaki | 6:9824d4e2f29b | 40 | |
TakashiSasaki | 6:9824d4e2f29b | 41 | |
TakashiSasaki | 6:9824d4e2f29b | 42 | void baud38400(){ |
TakashiSasaki | 6:9824d4e2f29b | 43 | char buf[7] = {0x56, 0x00, 0x24, 0x03, 0x01, 0x2a, 0xf2}; |
TakashiSasaki | 8:3230ddd3a3d1 | 44 | //int ret = sendReceive(buf, sizeof buf, 5); |
TakashiSasaki | 8:3230ddd3a3d1 | 45 | for (int i = 0; i < sizeof buf; i++) putc(buf[i]); |
TakashiSasaki | 6:9824d4e2f29b | 46 | wait(0.5); |
TakashiSasaki | 6:9824d4e2f29b | 47 | //this->reset(); |
TakashiSasaki | 6:9824d4e2f29b | 48 | this->baudrate = 38400; |
TakashiSasaki | 6:9824d4e2f29b | 49 | this->baud(this->baudrate); |
TakashiSasaki | 8:3230ddd3a3d1 | 50 | wait(4); |
TakashiSasaki | 8:3230ddd3a3d1 | 51 | //this->reset(); |
TakashiSasaki | 8:3230ddd3a3d1 | 52 | receive(buf, 5, 500); |
TakashiSasaki | 6:9824d4e2f29b | 53 | pc.printf("%02x %02x %02x %02x %02x", buf[0], buf[1], buf[2], buf[3], buf[4]); |
TakashiSasaki | 6:9824d4e2f29b | 54 | }; |
TakashiSasaki | 6:9824d4e2f29b | 55 | |
TakashiSasaki | 6:9824d4e2f29b | 56 | void shoot(int i){ |
TakashiSasaki | 6:9824d4e2f29b | 57 | |
TakashiSasaki | 6:9824d4e2f29b | 58 | if (!this->isReady()) { |
TakashiSasaki | 7:cc8080b31ac5 | 59 | pc.printf("show camera is not ready\n"); |
TakashiSasaki | 6:9824d4e2f29b | 60 | //myled4 = 1; //show camera is not ready |
TakashiSasaki | 6:9824d4e2f29b | 61 | //wait(2.0); |
TakashiSasaki | 6:9824d4e2f29b | 62 | //myled4 = 0; |
TakashiSasaki | 6:9824d4e2f29b | 63 | return; |
TakashiSasaki | 6:9824d4e2f29b | 64 | }//if |
TakashiSasaki | 6:9824d4e2f29b | 65 | |
TakashiSasaki | 6:9824d4e2f29b | 66 | char filename[32]; |
TakashiSasaki | 6:9824d4e2f29b | 67 | sprintf(filename, FILENAME, i); |
TakashiSasaki | 6:9824d4e2f29b | 68 | printf("Picture: %s ", filename); |
TakashiSasaki | 6:9824d4e2f29b | 69 | myled1 = 1; |
TakashiSasaki | 6:9824d4e2f29b | 70 | if (this->takePicture(filename)) { |
TakashiSasaki | 6:9824d4e2f29b | 71 | while (this->isProcessing()) { |
TakashiSasaki | 6:9824d4e2f29b | 72 | this->processPicture(); |
TakashiSasaki | 6:9824d4e2f29b | 73 | }//while |
TakashiSasaki | 6:9824d4e2f29b | 74 | //myled1 = 1; //show successful picture was taken |
TakashiSasaki | 6:9824d4e2f29b | 75 | //wait(2.0); |
TakashiSasaki | 6:9824d4e2f29b | 76 | //myled1 = 0; |
TakashiSasaki | 6:9824d4e2f29b | 77 | } else { |
TakashiSasaki | 7:cc8080b31ac5 | 78 | pc.printf("shot %s\n", filename); |
TakashiSasaki | 6:9824d4e2f29b | 79 | //myled3 = 1; //show picture take failed |
TakashiSasaki | 6:9824d4e2f29b | 80 | //wait(2.0); |
TakashiSasaki | 6:9824d4e2f29b | 81 | //myled3 = 0; |
TakashiSasaki | 6:9824d4e2f29b | 82 | }//if |
TakashiSasaki | 7:cc8080b31ac5 | 83 | this->stopPictures(); |
TakashiSasaki | 6:9824d4e2f29b | 84 | myled1 = 0; |
TakashiSasaki | 6:9824d4e2f29b | 85 | };//shoot |
TakashiSasaki | 6:9824d4e2f29b | 86 | |
TakashiSasaki | 6:9824d4e2f29b | 87 | };//FastJpegCamera |
TakashiSasaki | 6:9824d4e2f29b | 88 | |
TakashiSasaki | 6:9824d4e2f29b | 89 | #endif |