any kovar
/
IR_remote
IR
main.cpp
- Committer:
- anykovar
- Date:
- 2017-01-10
- Revision:
- 0:0b36c6926bfd
- Child:
- 1:c81bb0a316d4
File content as of revision 0:0b36c6926bfd:
#include <mbed.h> #include "ReceiverIR.h" #include "TransmitterIR.h" #define TEST_LOOP_BACK 0 ReceiverIR ir_rx(p2); TransmitterIR ir_tx(p1); // opravit čísla pinů //Receiver int receive(RemoteIR::Format *format, uint8_t *buf, int bufsiz, int timeout = 100) { int cnt = 0; while (ir_rx.getState() != ReceiverIR::Received) { cnt++; if (timeout < cnt) { return -1; } } return ir_rx.getData(format, buf, bufsiz * 8); } //Transmitter int transmit(RemoteIR::Format format, uint8_t *buf, int bitlength, int timeout = 100) { int cnt = 0; while (ir_tx.getState() != TransmitterIR::Idle) { cnt++; if (timeout < cnt) { return -1; } } return ir_tx.setData(format, buf, bitlength); } int main(void) { while (1) { uint8_t buf1[32]; uint8_t buf2[32]; int bitlength1; int bitlength2; RemoteIR::Format format; memset(buf1, 0x00, sizeof(buf1)); memset(buf2, 0x00, sizeof(buf2)); { bitlength1 = receive(&format, buf1, sizeof(buf1)); if (bitlength1 < 0) { continue; } } #if TEST_LOOP_BACK wait_ms(100); { bitlength1 = transmit(format, buf1, bitlength1); if (bitlength1 < 0) { continue; } } wait_ms(100); { bitlength2 = receive(&format, buf2, sizeof(buf2)); if (bitlength2 < 0) { continue; } } wait_ms(100); { for (int i = 0; i < sizeof(buf1); i++) { if (buf1[i] != buf2[i]) { wait(1); continue; } } } #endif } }