愛莉 結城 / Mbed 2 deprecated MARY_IRReceive

Dependencies:   mbed

Committer:
yuki
Date:
Sat Aug 09 07:24:12 2014 +0000
Revision:
0:7c39876eb334
Child:
1:4e6dc3e5ab7c
Main Source

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yuki 0:7c39876eb334 1 #include "mbed.h"
yuki 0:7c39876eb334 2 #include "ReceiverIR.h"
yuki 0:7c39876eb334 3
yuki 0:7c39876eb334 4 DigitalOut myled1(dp28); // MARY GREEN LED
yuki 0:7c39876eb334 5 DigitalOut myled2(dp14); // MARY BLUE LED
yuki 0:7c39876eb334 6 DigitalOut myled3(xp12);
yuki 0:7c39876eb334 7 ReceiverIR ir_rx(dp17);
yuki 0:7c39876eb334 8 //TX dp16 = USBTX RX dp15 = USBRX
yuki 0:7c39876eb334 9 Serial pc(USBTX, USBRX);
yuki 0:7c39876eb334 10
yuki 0:7c39876eb334 11 int receive(RemoteIR::Format *format, uint8_t *buf, int bufsiz, int timeout = 100) {
yuki 0:7c39876eb334 12 int cnt = 0;
yuki 0:7c39876eb334 13 while (ir_rx.getState() != ReceiverIR::Received) {
yuki 0:7c39876eb334 14 cnt++;
yuki 0:7c39876eb334 15 if (timeout < cnt) {
yuki 0:7c39876eb334 16 return -1;
yuki 0:7c39876eb334 17 }
yuki 0:7c39876eb334 18 }
yuki 0:7c39876eb334 19 return ir_rx.getData(format, buf, bufsiz * 8);
yuki 0:7c39876eb334 20 }
yuki 0:7c39876eb334 21
yuki 0:7c39876eb334 22 int main() {
yuki 0:7c39876eb334 23 pc.baud(9600);
yuki 0:7c39876eb334 24 RemoteIR::Format format;
yuki 0:7c39876eb334 25 uint8_t buf[64];
yuki 0:7c39876eb334 26 int bufLength = 0;
yuki 0:7c39876eb334 27 myled1 = myled2 = myled3 = 1;
yuki 0:7c39876eb334 28 while(1) {
yuki 0:7c39876eb334 29 myled1 = 0;
yuki 0:7c39876eb334 30 memset(buf, 0x00, sizeof(buf));
yuki 0:7c39876eb334 31 bufLength = receive(&format, buf, sizeof(buf));
yuki 0:7c39876eb334 32 if(bufLength < 0) continue;
yuki 0:7c39876eb334 33 myled1 = 1;
yuki 0:7c39876eb334 34 myled2 = 0;
yuki 0:7c39876eb334 35 const int n = bufLength / 8 + (((bufLength % 8) != 0) ? 1 : 0);
yuki 0:7c39876eb334 36 for (int i = 0; i < n; i++) {
yuki 0:7c39876eb334 37 pc.printf("%02X", buf[i]);
yuki 0:7c39876eb334 38 }
yuki 0:7c39876eb334 39 pc.printf(" %d ", bufLength);
yuki 0:7c39876eb334 40 switch (format) {
yuki 0:7c39876eb334 41 case RemoteIR::UNKNOWN:
yuki 0:7c39876eb334 42 pc.printf("UNKNOWN");
yuki 0:7c39876eb334 43 myled2 = 1;
yuki 0:7c39876eb334 44 myled3 = 0;
yuki 0:7c39876eb334 45 break;
yuki 0:7c39876eb334 46 case RemoteIR::NEC:
yuki 0:7c39876eb334 47 pc.printf("NEC");
yuki 0:7c39876eb334 48 break;
yuki 0:7c39876eb334 49 case RemoteIR::NEC_REPEAT:
yuki 0:7c39876eb334 50 pc.printf("NEC(R)");
yuki 0:7c39876eb334 51 break;
yuki 0:7c39876eb334 52 case RemoteIR::AEHA:
yuki 0:7c39876eb334 53 pc.printf("AEHA");
yuki 0:7c39876eb334 54 break;
yuki 0:7c39876eb334 55 case RemoteIR::AEHA_REPEAT:
yuki 0:7c39876eb334 56 pc.printf("AEHA(R)");
yuki 0:7c39876eb334 57 break;
yuki 0:7c39876eb334 58 case RemoteIR::SONY:
yuki 0:7c39876eb334 59 pc.printf("SONY");
yuki 0:7c39876eb334 60 break;
yuki 0:7c39876eb334 61 }
yuki 0:7c39876eb334 62 pc.printf(" OK\r\n");
yuki 0:7c39876eb334 63 wait_ms(450);
yuki 0:7c39876eb334 64 myled2 = 1;
yuki 0:7c39876eb334 65 myled3 = 1;
yuki 0:7c39876eb334 66 wait_ms(150);
yuki 0:7c39876eb334 67 }
yuki 0:7c39876eb334 68 }