This commit is contained in:
topicchi
2026-03-20 17:18:15 +00:00
parent 438d6354ae
commit 99748d82ac
105 changed files with 4770 additions and 3467 deletions

View File

@@ -18,7 +18,7 @@ Refrain from using overly long or capitalized titles as they are usually annoyin
We use the original [C Style by Kerninghan / Ritchie](https://en.wikipedia.org/wiki/Indentation_style#K&R_style) in [variant: 1TBS (OTBS)](https://en.wikipedia.org/wiki/Indentation_style#Variant:_1TBS_(OTBS)).<br/>
In short: 4 spaces indentation, no tabs, opening braces on the same line, braces are mandatory on all if/while/do, no hard line length limit.<br/>
To beautify your code, you may use the online formatter [here](https://www.freecodeformat.com/c-format.php).
#### Cover **all** occurences of the problem / addition you address with your PR
#### Cover **all** occurrences of the problem / addition you address with your PR
Do not forget the documentation like it is done for existing code. Code changes without proper documentation will be rejected!
## Adding new protocols

View File

@@ -31,5 +31,9 @@ These are the active contributors of this project that you may contact if there
- [slott](https://stackoverflow.com/users/11680056/sklott) Seeduino print(unsigned long long...) support.
- [Joe Ostrander](https://github.com/joeostrander) Added support for attiny1614.
- [Buzzerb](https://github.com/Buzzerb) Added Extended NEC protocol to TinyIR and making it more consistent.
- [akellai](https://github.com/akellai) Added ESP 3.0 support.
- [Hayden McAfee](https://github.com/haydenmc) Help with UnoR4 support.
- [Yonghwan SO](https://github.com/sio4) Fixed bug in ReceiveDemo.cpp if DEBUG_BUTTON_PIN is not defined. #1306.
- [A.R.Jung](https://github.com/arjung467) Marantz-RC5 extension support #1314.
Note: Please let [ArminJo](https://github.com/ArminJo) know if you have been missed.

View File

@@ -2339,7 +2339,7 @@ INCLUDED_BY_GRAPH = YES
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
CALL_GRAPH = NO
CALL_GRAPH = YES
# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
# dependency graph for every global function or class method.
@@ -2351,7 +2351,7 @@ CALL_GRAPH = NO
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
CALLER_GRAPH = NO
CALLER_GRAPH = YES
# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
# hierarchy of all classes instead of a textual one.

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,62 @@
The latest version may not be released!
See also the commit log at github: https://github.com/Arduino-IRremote/Arduino-IRremote/commits/master
# 4.5.0
- Added support for multiple receiver instances.
- irparams_struct irparams is now member of IRrecv. Thus removed rawDataPtr (pointer to irparams) from IrReceiver.decodedIRData.
- Removed return value for all decodePulseDistanceWidthData() decoding functions, which returned a constant true.
- Removed parameter aEnableLEDFeedback in function IRsend::begin(bool aEnableLEDFeedback, uint_fast8_t aFeedbackLEDPin) and IRsend::begin(uint_fast8_t aSendPin, bool aEnableLEDFeedback, uint_fast8_t aFeedbackLEDPin).
- LED feedback is always enabled for sending. It can only be disabled by using the macro NO_LED_SEND_FEEDBACK_CODE.
- Added output for UNKNOWN protocol to printIRSendUsage().
- Added experimental sendVelux().
- Added sendMaranz().
- Fixed bug in ReceiveDemo.cpp if DEBUG_BUTTON_PIN is not defined. #1306.
- Fixed minor bugs in Denon decoder.
- Minor bug fixes for DEBUG.
- New handling of MARK_EXCESS_MICROS without strange rounding inconsistency.
- Added experimental threshold decoding.
# 4.4.3
- Added USE_ACTIVE_LOW_OUTPUT_FOR_SEND_PIN to make the software aware of send LED connected between VCC and send pin.
- Fixed backward compatibility bug for printIRResultShort(3 params).
- Minor improvements.
# 4.4.2
- Support for SAMD51 timer3 if timer 5 is not available (Adafruit ItsyBitsy M4).
- attachInterrupt() on SAMD has a different semantic :-(. See: https://www.arduino.cc/reference/tr/language/functions/external-interrupts/attachinterrupt/.
- Fixed overflow handling.
- Improved repeat detection for DistanceWidthProtocol.
- Print of IR frame duration in printIRResultShort();
- PulseDistanceWidthProtocolConstants now in PROGMEM, this saves 190 bytes RAM for unit test.
- Support for PROGMEM PulseDistanceWidthProtocol data.
- Support duplicated 8 bit address for sendSamsungLG().
# 4.4.1
- Support for ESP core 3.x by akellai.
- restartTimer() now uses variable sMicrosAtLastStopTimer to keep track of uncounted ticks between stopTimer() and restartTimer().
- Removed functions addTicksToInternalTickCounter() and addMicrosToInternalTickCounter(), which were added in 4.1.0.
- Version 2.2.0 of TinyIR with new TinyReceiverDecode() function to be used as drop in for IrReceiver.decode().
- Support of RC6A.
# 4.4.0
- Using 8 bit raw timing buffer for all timings except frame gap (former rawbuf[0]).
- Renamed decodedIRData.initialGap to decodedIRData.initialGapTicks.
- sendNEC() and sendNEC2() now accepts 16 bit command to better map to NECext protocol found in IRDB databases.
- ir_DistanceWidthProtocol() now decodes up to 10 ms mark or spaces if RAM is bigger than 2 k.
- Improved sensitivity and decoding of PULSE_DISTANCE + PULSE_WIDTH protocols.
- Changed TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING to TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING_PERCENT.
- Improved examples AllProtocolsOnLCD, UnitTest and SimpleReceiver.
- New functions decodePulseDistanceWidthData() with 6 parameters and decodePulseDistanceWidthDataStrict() with 7 parameters.
# 4.3.2
- Added sendSonyMSB(unsigned long data, int nbits) as a clone of sendSony(unsigned long data, int nbits) to be more consistent.
- Added sendSamsungMSB(unsigned long data, int nbits) as a clone of sendSAMSUNG(unsigned long data, int nbits) to be more consistent.
- Added ESP32 core 3.x error message.
# 4.3.1
- Fixed overflow bug for rawlen > 254.
- Removed deprecated sendPulseDistance... functions with parameter aSendStopBit.
# 4.3.0
- Removed default value USE_DEFAULT_FEEDBACK_LED_PIN for last parameter of IRsend::begin(bool aEnableLEDFeedback, uint_fast8_t aFeedbackLEDPin).
Therefore IrSender.begin(DISABLE_LED_FEEDBACK) will not longer work!
@@ -31,14 +87,14 @@ See also the commit log at github: https://github.com/Arduino-IRremote/Arduino-I
- Usage of ATTinyCore pin numbering scheme e.g. PIN_PB2.
- Added ARDUINO_ARCH_NRF52 to support Seeed XIAO nRF52840 Sense.
- First untested support of Uno R4.
- Extraced version macros to IRVersion.h.
- Extracted version macros to IRVersion.h.
## 4.1.2
- Workaround for ESP32 RTOS delay() timing bug influencing the mark() function.
## 4.1.1
- SAMD51 use timer3 if timer5 not available.
- Disabled #define LOCAL_DEBUG in IRReceive.hpp, which was accidently enabled at 4.1.0.
- Disabled #define LOCAL_DEBUG in IRReceive.hpp, which was accidentally enabled at 4.1.0.
## 4.1.0
- Fixed bug in printing durations > 64535 in printIRResultRawFormatted().
@@ -65,7 +121,7 @@ See also the commit log at github: https://github.com/Arduino-IRremote/Arduino-I
- 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().
- New convenience functions 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.
@@ -109,7 +165,7 @@ See also the commit log at github: https://github.com/Arduino-IRremote/Arduino-I
- Improved pin mapping for TinyReceiver.
## 3.7.1
- SendRaw now supports bufferlenght > 255.
- SendRaw now supports buffer length > 255.
- Improved DistanceProtocol decoder output.
- Fixed ESP32 send bug for 2.x ESP32 cores.
@@ -277,7 +333,7 @@ See also the commit log at github: https://github.com/Arduino-IRremote/Arduino-I
- Corrected keywords.txt.
- BoseWave protocol added PR #690.
- Formatting comply to the new stylesheet.
- Renamed "boarddefs.h" [ISSUE #375](https://github.com/Arduino-IRremote/Arduino-IRremote/issues/375).
- Renamed "boarddefs.h".
- Renamed `SEND_PIN` to `IR_SEND_PIN`.
- Renamed state macros.
- Enabled `DUTY_CYCLE` for send signal.
@@ -344,7 +400,7 @@ Changes from #268 by adamlhumphreys
- Fixed #110 Mess
- Created Gitter Room
- Added Gitter Badge
- Standardised Code Base
- Standardized Code Base
- Clean Debug Output
- Optimized Send Loops
- Modularized Design
@@ -372,4 +428,4 @@ Changes from #268 by adamlhumphreys
- Broke Teensy 3 / 3.1 Support
### Not Working
- Teensy 3 / 3.1 Support is in Development
- Teensy 3 / 3.1 Support is in Development

View File

@@ -34,9 +34,17 @@ void dumpFooter();
void setup() {
Serial.begin(115200);
#if defined(__AVR_ATmega32U4__) || defined(SERIAL_PORT_USBVIRTUAL) || defined(SERIAL_USB) /*stm32duino*/|| defined(USBCON) /*STM32_stm32*/|| defined(SERIALUSB_PID) || defined(ARDUINO_attiny3217)
delay(4000); // To be able to connect Serial monitor after reset or power up and before first print out. Do not wait for an attached Serial Monitor!
#if defined(__AVR_ATmega32U4__) || defined(SERIAL_PORT_USBVIRTUAL) || defined(SERIAL_USB) /*stm32duino*/|| defined(USBCON) /*STM32_stm32*/ \
|| defined(SERIALUSB_PID) || defined(ARDUINO_ARCH_RP2040) || defined(ARDUINO_attiny3217)
// Wait until Serial Monitor is attached.
// Required for boards using USB code for Serial like Leonardo.
// Is void for USB Serial implementations using external chips e.g. a CH340.
while (!Serial)
;
// !!! Program will not proceed if no Serial Monitor is attached !!!
#endif
// Just to know which program is running on my Arduino
Serial.println(F("START " __FILE__ " from " __DATE__ "\r\nUsing library version " VERSION_IRREMOTE));
@@ -193,7 +201,7 @@ void dumpPulseParams() {
;
Serial.println(F(" uSecs"));
Serial.print(F("Measurement tolerance: "));
Serial.print(TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING);
Serial.print(TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING_PERCENT);
Serial.println(F("%"));
}

View File

@@ -67,12 +67,11 @@
#include "PinDefinitionsAndMore.h" // Define macros for input and output pin etc.
#if !defined(RAW_BUFFER_LENGTH)
# if RAMEND <= 0x4FF || RAMSIZE < 0x4FF
#define RAW_BUFFER_LENGTH 180 // 750 (600 if we have only 2k RAM) is the value for air condition remotes. Default is 112 if DECODE_MAGIQUEST is enabled, otherwise 100.
# elif RAMEND <= 0x8FF || RAMSIZE < 0x8FF
#define RAW_BUFFER_LENGTH 500 // 750 (600 if we have only 2k RAM) is the value for air condition remotes. Default is 112 if DECODE_MAGIQUEST is enabled, otherwise 100.
// For air condition remotes it may require up to 750. Default is 200.
# if (defined(RAMEND) && RAMEND <= 0x4FF) || (defined(RAMSIZE) && RAMSIZE < 0x4FF)
#define RAW_BUFFER_LENGTH 360
# else
#define RAW_BUFFER_LENGTH 750 // 750 (600 if we have only 2k RAM) is the value for air condition remotes. Default is 112 if DECODE_MAGIQUEST is enabled, otherwise 100.
#define RAW_BUFFER_LENGTH 750
# endif
#endif
@@ -83,6 +82,8 @@
#define BAUDRATE 115200
#define NO_DECODER
//#define NO_LED_FEEDBACK_CODE // Saves 346 bytes program memory
#include "IRremote.hpp"
#include <limits.h>
@@ -190,8 +191,7 @@ String Tokenizer::getRest() {
}
String Tokenizer::getLine() {
if (index == invalidIndex)
return String("");
if (index == invalidIndex) return String("");
int i = payload.indexOf('\n', index);
String s = (i > 0) ? payload.substring(index, i) : payload.substring(index);
@@ -200,16 +200,13 @@ String Tokenizer::getLine() {
}
String Tokenizer::getToken() {
if (index < 0)
return String("");
if (index < 0) return String("");
int i = payload.indexOf(' ', index);
String s = (i > 0) ? payload.substring(index, i) : payload.substring(index);
index = (i > 0) ? i : invalidIndex;
if (index != invalidIndex)
if (index != invalidIndex)
while (payload.charAt(index) == ' ')
index++;
if (index != invalidIndex) if (index != invalidIndex) while (payload.charAt(index) == ' ')
index++;
return s;
}
@@ -253,26 +250,23 @@ static inline unsigned hz2khz(frequency_t hz) {
*/
static void sendRaw(const microseconds_t intro[], unsigned lengthIntro, const microseconds_t repeat[], unsigned lengthRepeat,
const microseconds_t ending[], unsigned lengthEnding, frequency_t frequency, unsigned times) {
if (lengthIntro > 0U)
IrSender.sendRaw(intro, lengthIntro, hz2khz(frequency));
if (lengthRepeat > 0U)
for (unsigned i = 0U; i < times - (lengthIntro > 0U); i++)
IrSender.sendRaw(repeat, lengthRepeat, hz2khz(frequency));
if (lengthEnding > 0U)
IrSender.sendRaw(ending, lengthEnding, hz2khz(frequency));
if (lengthIntro > 0U) IrSender.sendRaw(intro, lengthIntro, hz2khz(frequency));
if (lengthRepeat > 0U) for (unsigned i = 0U; i < times - (lengthIntro > 0U); i++)
IrSender.sendRaw(repeat, lengthRepeat, hz2khz(frequency));
if (lengthEnding > 0U) IrSender.sendRaw(ending, lengthEnding, hz2khz(frequency));
}
#endif // TRANSMIT
#if defined(RECEIVE)
static void dump(Stream &stream) {
unsigned int count = IrReceiver.decodedIRData.rawDataPtr->rawlen;
unsigned int count = IrReceiver.irparams.rawlen;
// If buffer gets full, count = RAW_BUFFER_LENGTH, which is odd,
// and IrScrutinizer does not like that.
count &= ~1;
for (unsigned int i = 1; i < count; i++) {
stream.write(i & 1 ? '+' : '-');
stream.print(IrReceiver.decodedIRData.rawDataPtr->rawbuf[i] * MICROS_PER_TICK, DEC);
stream.print(IrReceiver.irparams.rawbuf[i] * MICROS_PER_TICK, DEC);
stream.print(" ");
}
stream.print('-');
@@ -300,8 +294,6 @@ static void receive(Stream &stream) {
*/
void setup() {
Serial.begin(BAUDRATE);
while (!Serial)
; // wait for serial port to connect.
Serial.println(F(PROGNAME " " VERSION));
// Just to know which program is running on my Arduino
@@ -317,9 +309,13 @@ void setup() {
#endif
#if defined(IR_SEND_PIN)
IrSender.begin(); // Start with IR_SEND_PIN -which is defined in PinDefinitionsAndMore.h- as send pin and enable feedback LED at default feedback LED pin
/*
* No IR library setup required :-)
* Default is to use IR_SEND_PIN -which is defined in PinDefinitionsAndMore.h- as send pin
* and use feedback LED at default feedback LED pin if not disabled by #define NO_LED_SEND_FEEDBACK_CODE
*/
#else
IrSender.begin(3, ENABLE_LED_FEEDBACK, USE_DEFAULT_FEEDBACK_LED_PIN); // Specify send pin and enable feedback LED at default feedback LED pin
IrSender.begin(3); // Specify send pin and enable feedback LED at default feedback LED pin
#endif
}

View File

@@ -16,45 +16,56 @@ decodedIRData KEYWORD1
#######################################
# Methods and Functions (KEYWORD2)
#######################################
setFeedbackLED KEYWORD2
enableLEDFeedback KEYWORD2
enableLEDFeedbackForSend KEYWORD2
disableLEDFeedback KEYWORD2
disableLEDFeedbackForSend KEYWORD2
printIRResultShort KEYWORD2
begin KEYWORD2
start KEYWORD2
# IRReceive
available KEYWORD2
begin KEYWORD2
decode KEYWORD2
disableIRIn KEYWORD2
enableIRIn KEYWORD2
isIdle KEYWORD2
printActiveIRProtocols KEYWORD2
printIRResultMinimal KEYWORD2
printIRResultRawFormatted KEYWORD2
printIRResultShort KEYWORD2
printIRSendUsage KEYWORD2
registerReceiveCompleteCallback KEYWORD2
restartAfterSend KEYWORD2
restartTimer KEYWORD2
restartTimerWithTicksToAdd KEYWORD2
resume KEYWORD2
setReceivePin KEYWORD2
start KEYWORD2
read KEYWORD2
stop KEYWORD2
end KEYWORD2
enableLEDFeedback KEYWORD2
decode KEYWORD2
resume KEYWORD2
enableIRIn KEYWORD2
disableIRIn KEYWORD2
sendNEC KEYWORD2
# IRSend
setSendPin KEYWORD2
write KEYWORD2
enableIROut KEYWORD2
IRLedOff KEYWORD2
sendRaw KEYWORD2
sendApple KEYWORD2
sendFAST KEYWORD2
sendJVC KEYWORD2
sendLegoPowerFunctions KEYWORD2
sendLG KEYWORD2
sendLGRepeat KEYWORD2
sendLG2 KEYWORD2
sendLG2Repeat KEYWORD2
sendLGRaw KEYWORD2
sendMaranz KEYWORD2
sendMagiQuest KEYWORD2
sendNEC KEYWORD2
sendNEC2 KEYWORD2
sendNECRepeat KEYWORD2
sendNECRaw KEYWORD2
sendOnkyo KEYWORD2
sendApple KEYWORD2
sendPanasonic KEYWORD2
sendPronto KEYWORD2
sendKaseikyo KEYWORD2
sendKaseikyo_Denon KEYWORD2
sendKaseikyo_Sharp KEYWORD2
sendKaseikyo_JVC KEYWORD2
sendKaseikyo_Mitsubishi KEYWORD2
sendRaw KEYWORD2
sendRaw_P KEYWORD2
sendRC5 KEYWORD2
sendRC6 KEYWORD2
sendSamsungRepeat KEYWORD2
@@ -62,23 +73,42 @@ sendSamsung KEYWORD2
sendSharp KEYWORD2
sendSony KEYWORD2
sendSharpRaw KEYWORD2
sendLegoPowerFunctions KEYWORD2
sendMagiQuest KEYWORD2
sendPronto KEYWORD2
sendMagiQuest KEYWORD2
sendVelux KEYWORD2
# IRFeedbackLED
disableLEDFeedback KEYWORD2
disableLEDFeedbackForSend KEYWORD2
enableLEDFeedback KEYWORD2
enableLEDFeedbackForSend KEYWORD2
setFeedbackLED KEYWORD2
setLEDFeedback KEYWORD2
# TinyIRReceiver
disablePCIInterruptForTinyReceiver KEYWORD2
enablePCIInterruptForTinyReceiver KEYWORD2
initPCIInterruptForTinyReceiver KEYWORD2
isIRReceiverAttachedForTinyReceiver KEYWORD2
printTinyReceiverResultMinimal KEYWORD2
TinyReceiverDecode KEYWORD2
# TinyIRSender
sendExtendedNEC KEYWORD2
sendFAST KEYWORD2
#######################################
# Constants (LITERAL1)
#######################################
UNKNOWN LITERAL1
PULSE_DISTANCE LITERAL1
PULSE_WIDTH LITERAL1
APPLE LITERAL1
DENON LITERAL1
DISH LITERAL1
JVC LITERAL1
LG LITERAL1
LG2 LITERAL1
NEC LITERAL1
NEC2 LITERAL1
ONKYO LITERAL1
PANASONIC LITERAL1
KASEIKYO LITERAL1
KASEIKYO_JVC LITERAL1
@@ -87,18 +117,57 @@ KASEIKYO_SHARP LITERAL1
KASEIKYO_MITSUBISHI LITERAL1
RC5 LITERAL1
RC6 LITERAL1
RC6A LITERAL1
SAMSUNG LITERAL1
SAMSUNGLG LITERAL1
SAMSUNG48 LITERAL1
SHARP LITERAL1
SONY LITERAL1
ONKYO LITERAL1
APPLE LITERAL1
BANG_OLUFSEN LITERAL1
BOSEWAVE LITERAL1
LEGO_PF LITERAL1
MAGIQUEST LITERAL1
WHYNTER LITERAL1
FAST LITERAL1
UNKNOWN LITERAL1
IR_RECEIVE_PIN LITERAL1
IRDATA_FLAGS_IS_REPEAT LITERAL1
IRDATA_FLAGS_IS_AUTO_REPEAT LITERAL1
IRDATA_FLAGS_PARITY_FAILED LITERAL1
IRDATA_FLAGS_TOGGLE_BIT LITERAL1
IRDATA_FLAGS_EXTRA_INFO LITERAL1
IRDATA_FLAGS_WAS_OVERFLOW LITERAL1
IRDATA_FLAGS_IS_MSB_FIRST LITERAL1
RAW_BUFFER_LENGTH LITERAL1
EXCLUDE_UNIVERSAL_PROTOCOLS LITERAL1
EXCLUDE_EXOTIC_PROTOCOLS LITERAL1
IR_REMOTE_DISABLE_RECEIVE_COMPLETE_CALLBACK LITERAL1
MARK_EXCESS_MICROS LITERAL1
RECORD_GAP_MICROS LITERAL1
DISTANCE_WIDTH_DECODER_DURATION_ARRAY_SIZE LITERAL1
IR_INPUT_IS_ACTIVE_HIGH LITERAL1
IR_SEND_PIN LITERAL1
FEEDBACK_LED_IS_ACTIVE_LOW LITERAL1
SEND_PWM_BY_TIMER LITERAL1
IR_SEND_DUTY_CYCLE_PERCENT LITERAL1
USE_ACTIVE_LOW_OUTPUT_FOR_SEND_PIN LITERAL1
USE_OPEN_DRAIN_OUTPUT_FOR_SEND_PIN LITERAL1
USE_NO_SEND_PWM LITERAL1
USE_ACTIVE_HIGH_OUTPUT_FOR_NO_SEND_PWM LITERAL1
DISABLE_CODE_FOR_RECEIVER LITERAL1
FEEDBACK_LED_IS_ACTIVE_LOW LITERAL1
NO_LED_FEEDBACK_CODE LITERAL1
NO_LED_RECEIVE_FEEDBACK_CODE LITERAL1
NO_LED_SEND_FEEDBACK_CODE LITERAL1
MICROS_PER_TICK LITERAL1
TOLERANCE_FOR_DECODERS_MARK_OR_SPACE_MATCHING_PERCENT LITERAL1
# Constants for TinyIRReceiver
IR_RECEIVE_PIN LITERAL1
IR_FEEDBACK_LED_PIN LITERAL1
DISABLE_PARITY_CHECKS LITERAL1
USE_EXTENDED_NEC_PROTOCOL LITERAL1
USE_ONKYO_PROTOCOL LITERAL1
USE_FAST_PROTOCOL LITERAL1
ENABLE_NEC2_REPEATS LITERAL1
USE_CALLBACK_FOR_TINY_RECEIVER LITERAL1

View File

@@ -1,15 +1,14 @@
{
"name": "IRremote",
"keywords": "communication, infrared, ir, remote",
"version": "4.5.0",
"description": "Send and receive infrared signals with multiple protocols",
"keywords": "communication, infrared, ir, remote",
"homepage": "https://github.com/Arduino-IRremote/Arduino-IRremote",
"repository":
{
"type": "git",
"url": "https://github.com/z3t0/Arduino-IRremote.git"
"url": "https://github.com/Arduino-IRremote/Arduino-IRremote.git"
},
"version": "4.3.0",
"frameworks": "arduino",
"platforms": ["atmelavr", "atmelmegaavr", "atmelsam", "espressif8266", "espressif32", "ststm32"],
"authors" :
[
{
@@ -26,5 +25,10 @@
"email":"ken.shirriff@gmail.com"
}
],
"headers": "IRRemote.hpp"
"license": "MIT",
"frameworks": "arduino",
"platforms": ["atmelavr", "atmelmegaavr", "atmelsam", "espressif8266", "espressif32", "ststm32", "raspberrypi"],
"headers": "IRRemote.hpp",
"examples": "examples/*/*.ino",
"export": {"exclude": [".github", "pictures"]}
}

View File

@@ -1,9 +1,9 @@
name=IRremote
version=4.3.0
version=4.5.0
author=shirriff, z3t0, ArminJo
maintainer=Armin Joachimsmeyer <armin.arduino@gmail.com>
sentence=Send and receive infrared signals with multiple protocols
paragraph=Currently included protocols: Denon / Sharp, JVC, LG / LG2, NEC / Onkyo / Apple, Panasonic / Kaseikyo, RC5, RC6, Samsung, Sony, (Pronto), BangOlufsen, BoseWave, Lego, Whynter, FAST, MagiQuest, Universal Pulse Distance and Pulse Width. NEW: TinyRSender improvements, sendSamsung bug fixes, new fields rawlen and initialGap and new functions stop/startTimer...().
paragraph=Currently included protocols: Denon / Sharp, JVC, LG / LG2, NEC / Onkyo / Apple, Panasonic / Kaseikyo, RC5, RC6, Samsung, Sony, (Pronto), BangOlufsen, BoseWave, Lego, Whynter, FAST, MagiQuest, Velux, Universal Pulse Distance and Pulse Width.
category=Communication
url=https://github.com/Arduino-IRremote/Arduino-IRremote
architectures=avr,megaavr,samd,esp8266,esp32,stm32,STM32F1,mbed,mbed_nano,rp2040,mbed_rp2040,renesas_uno

View File

@@ -9,14 +9,13 @@
#include "IRremote.hpp"
#warning Thank you for using the IRremote library!
#warning It seems, that you are using a old version 2.0 code / example.
#warning It seems, that you are using an old version 2.0 code / example.
#warning This version is no longer supported!
#warning Please use one of the new code examples from the library available at "File > Examples > Examples from Custom Libraries / IRremote".
#warning Or downgrade your library to version 2.6.0.
#warning Upgrade instructions can be found here: "https://github.com/Arduino-IRremote/Arduino-IRremote?tab=readme-ov-file#converting-your-2x-program-to-the-4x-version"
#warning Please use one of the new code examples from the library, available at "File > Examples > Examples from Custom Libraries / IRremote".
#warning Start with the SimpleReceiver or SimpleSender example.
#warning The examples are documented here: https://github.com/Arduino-IRremote/Arduino-IRremote#examples-for-this-library
#warning A guide how to convert your 2.0 program is here: https://github.com/Arduino-IRremote/Arduino-IRremote#converting-your-2x-program-to-the-4x-version
#warning The examples are documented here: "https://github.com/Arduino-IRremote/Arduino-IRremote?tab=readme-ov-file#examples-for-this-library"
#warning Or just downgrade your library to version 2.6.0.
/**********************************************************************************************************************
* The OLD and DEPRECATED decode function with parameter aResults, kept for backward compatibility to old 2.0 tutorials
@@ -31,18 +30,19 @@ bool IRrecv::decode(decode_results *aResults) {
if (!sMessageWasSent) {
Serial.println(F("**************************************************************************************************"));
Serial.println(F("Thank you for using the IRremote library!"));
Serial.println(F("It seems, that you are using a old version 2.0 code / example."));
Serial.println(F("It seems, that you are using an old version 2.0 code / example."));
Serial.println(F("This version is no longer supported!"));
Serial.println();
Serial.println(F("Upgrade instructions can be found here:"));
Serial.println(F(" https://github.com/Arduino-IRremote/Arduino-IRremote?tab=readme-ov-file#converting-your-2x-program-to-the-4x-version"));
Serial.println();
Serial.println(F("Please use one of the new code examples from the library,"));
Serial.println(F(" available at \"File > Examples > Examples from Custom Libraries / IRremote\"."));
Serial.println(F("Or downgrade your library to version 2.6.0."));
Serial.println();
Serial.println(F("Start with the SimpleReceiver or SimpleSender example."));
Serial.println();
Serial.println(F("The examples are documented here:"));
Serial.println(F(" https://github.com/Arduino-IRremote/Arduino-IRremote#examples-for-this-library"));
Serial.println(F("A guide how to convert your 2.0 program is here:"));
Serial.println(F(" https://github.com/Arduino-IRremote/Arduino-IRremote#converting-your-2x-program-to-the-4x-version"));
Serial.println(F(" https://github.com/Arduino-IRremote/Arduino-IRremote?tab=readme-ov-file#examples-for-this-library"));
Serial.println();
Serial.println(F("Or just downgrade your library to version 2.6.0."));
Serial.println();
Serial.println(F("Thanks"));
Serial.println(F("**************************************************************************************************"));