Skip to content

Pulse Distance / Pulse Width decoder, send usage, 64 bit support, callback

Compare
Choose a tag to compare
@ArminJo ArminJo released this 21 Jan 19:30
· 73 commits to master since this release
  1. New universal Pulse Distance / Pulse Width decoder added, which covers many previous unknown protocols.
    
  2. Printout of code how to send received command by IrReceiver.printIRSendUsage(&Serial).
    
  3. RawData type is now 64 bit for 32 bit platforms and therefore decodedIRData.decodedRawData can contain complete frame information for more protocols than with 32 bit as before.
    
  4. Callback after receiving a command - call your own code if a message was received.
    
  • Added decoding of PulseDistanceWidth protocols and therfore changed function decodeDistance() to decodeDistanceWidth() and filename ir_DistanceProtocol.hpp to ir_DistanceWidthProtocol.hpp.

  • Removed static function printIRSendUsage(), but kept class function printIRSendUsage().

  • Changed type of decodedRawData and decodedRawDataArray which is now 64 bit for 32 bit platforms.

  • Added receiver callback functionality and registerReceiveCompleteCallback() function.

  • Introduced common structure PulseDistanceWidthProtocolConstants.

  • Where possible, changed all send and decode functions to use PulseDistanceWidthProtocolConstants.

  • Improved MSB/LSB handling

  • New convenience fuctions bitreverse32Bit() and bitreverseOneByte().

  • Improved Magiquest protocol.

  • Fix for #1028 - Prevent long delay caused by overflow when frame duration < repeat period - Thanks to Stephen Humphries!

  • Support for ATtiny816 - Thanks to elockman.

  • Added Bang&Olufsen protocol. #1030.

  • Third parameter of function "void begin(uint_fast8_t aSendPin, bool aEnableLEDFeedback, uint_fast8_t aFeedbackLEDPin)" is not optional anymore and this function is now only available if IR_SEND_PIN is not defined. #1033.

  • Fixed bug in sendSony() for command parameter > 0x7F;

  • Fixed bug with swapped LG2 header mark and space.

  • Disabled strict checks while decoding. They can be enabled by defining DECODE_STRICT_CHECKS.

  • Merged the 2 decode pulse width and distance functions.

  • Changed macro names _REPEAT_SPACE to _REPEAT_DISTANCE.

  • Improved TinyIRReceiver,added FAST protocol for it and added TinyIRSender.hpp and TinySender example, renamed TinyReceiver.h to TinyIR.h.

  • Added DISABLE_CODE_FOR_RECEIVER to save program memory and RAM if receiving functionality is not required.

  • Extracted protocol functions used by receive and send to IRProtocol.hpp.

  • Analyzed Denon code table and therefore changed Denon from MSB to LSB first.

  • Renamed sendRC6(aRawData...) to sendRC6Raw( aRawData...).

  • Support for seeduino which lacks the print(unsigned long long...) method. Thanks to sklott https://stackoverflow.com/users/11680056/sklott

  • Added support for attiny1614 by Joe Ostrander.

  • Fixed SEND_PWM_BY_TIMER for ATtiny167 thanks to freskpe.

  • Improved SHARP repeat decoding.

  • Replaced macros TIMER_EN/DISABLE_RECEIVE_INTR and EN/DISABLE_SEND_PWM_BY_TIMER by functions.

  • Added SAMSUNG48 protocol and sendSamsung48() function.