diff --git a/SampleSrc/IRRecv.ino b/SampleSrc/IRRecv.ino new file mode 100644 index 0000000..2a65cb6 --- /dev/null +++ b/SampleSrc/IRRecv.ino @@ -0,0 +1,102 @@ +/* + * IRremoteESP8266: IRrecvDump - dump details of IR codes with IRrecv + * Copyright 2009 Ken Shirriff, http://arcfn.com + * + ***** DEPRECATED - DO NOT USE ***** + * Unless you know what you are doing, you should be using the + * IRrecvDumpV2.ino sketch/example instead for capturing & decoding IR messages. + * In almost ALL ways it is BETTER, FASTER, and MORE DETAILED. + * + * This code is left only for legacy reasons, and as another simple example of + * how to use the IRremoteESP8266 library. + * + * As of November 2017 it will no longer be updated or supported. + * You have been warned. + ***** DEPRECATED - DO NOT USE ***** + * + * An IR detector/demodulator must be connected to the input RECV_PIN. + * Version 0.2 Oct 2017 + * Based on Ken Shirriff's IrsendDemo Version 0.1 July, 2009, + * JVC and Panasonic protocol added by Kristian Lauszus + * (Thanks to zenwheel and other people at the original blog post) + * LG added by Darryl Smith (based on the JVC protocol) + */ + +#include +#include +#include +#include + +// an IR detector/demodulator is connected to GPIO pin 2 +uint16_t RECV_PIN = 2; + +IRrecv irrecv(RECV_PIN); + +decode_results results; + +void setup() { + Serial.begin(115200); + irrecv.enableIRIn(); // Start the receiver +} + +void dump(decode_results *results) { + // Dumps out the decode_results structure. + // Call this after IRrecv::decode() + uint16_t count = results->rawlen; + if (results->decode_type == UNKNOWN) { + Serial.print("Unknown encoding: "); + } else if (results->decode_type == NEC) { + Serial.print("Decoded NEC: "); + } else if (results->decode_type == SONY) { + Serial.print("Decoded SONY: "); + } else if (results->decode_type == RC5) { + Serial.print("Decoded RC5: "); + } else if (results->decode_type == RC5X) { + Serial.print("Decoded RC5X: "); + } else if (results->decode_type == RC6) { + Serial.print("Decoded RC6: "); + } else if (results->decode_type == RCMM) { + Serial.print("Decoded RCMM: "); + } else if (results->decode_type == PANASONIC) { + Serial.print("Decoded PANASONIC - Address: "); + Serial.print(results->address, HEX); + Serial.print(" Value: "); + } else if (results->decode_type == LG) { + Serial.print("Decoded LG: "); + } else if (results->decode_type == JVC) { + Serial.print("Decoded JVC: "); + } else if (results->decode_type == AIWA_RC_T501) { + Serial.print("Decoded AIWA RC T501: "); + } else if (results->decode_type == WHYNTER) { + Serial.print("Decoded Whynter: "); + } else if (results->decode_type == NIKAI) { + Serial.print("Decoded Nikai: "); + } + serialPrintUint64(results->value, 16); + Serial.print(" ("); + Serial.print(results->bits, DEC); + Serial.println(" bits)"); + Serial.print("Raw ("); + Serial.print(count, DEC); + Serial.print("): {"); + + for (uint16_t i = 1; i < count; i++) { + if (i % 100 == 0) + yield(); // Preemptive yield every 100th entry to feed the WDT. + if (i & 1) { + Serial.print(results->rawbuf[i] * kRawTick, DEC); + } else { + Serial.print(", "); + Serial.print((uint32_t) results->rawbuf[i] * kRawTick, DEC); + } + } + Serial.println("};"); +} + +void loop() { + if (irrecv.decode(&results)) { + dump(&results); + Serial.println("DEPRECATED: Please use IRrecvDumpV2.ino instead!"); + irrecv.resume(); // Receive the next value + } +}