20 Commits

Author SHA1 Message Date
Rafi Khan
4cdac5fcc8 Revert "Added ESP32 IR receive support (IRsend not implemented yet)." 2017-04-05 10:27:46 -06:00
Rafi Khan
e0c2649b9f Merge pull request #425 from marcmerlin/master
Added ESP32 IR receive support (IRsend not implemented yet).
2017-04-01 12:55:05 -06:00
Marc MERLIN
419c948c29 Fixed rev to 2.3.3 and added info on timer used. 2017-04-01 08:32:37 -07:00
Marc MERLIN
9133814e60 Rev'ed to 2.2.4. 2017-03-31 23:10:07 -07:00
Marc MERLIN
3875097df9 Merge branch 'master' of github.com:marcmerlin/Arduino-IRremote 2017-03-31 22:33:16 -07:00
Marc MERLIN
88b294a0cd change no-op defines from '1' to ''. 2017-03-31 22:32:48 -07:00
Marc MERLIN
ffdb6081ae Merge branch 'master' into master 2017-03-31 22:04:36 -07:00
Marc MERLIN
6b8f2bdbfc move comment about 'or else' chips that use TIMER2. 2017-03-31 22:01:31 -07:00
Marc MERLIN
eae9de4307 Cleaned up ESP32 integration, reverted ESP32 ifdefs on irreceive examples.
- fixed indenting on existing code in a few places for consistency
- introduced IR_TIMER_USE_ESP32 for ifdefs within the code as per
  request
- added comments explaining what's missing for irsend support on ESP32
- IRrecvDemo.ino gets a warning before and after interrupt is enabled in
  case it causes a crash

TESTED=IoTuz ESP32 board and original 328p arduino to make sure current
code did not break.
2017-03-31 21:52:52 -07:00
Rafi Khan
513e104515 Merge pull request #427 from philipphenkel/lego_pf_integer_overflow_2
Fix calculation of pause length in LEGO PF protocol
2017-03-27 16:25:19 -06:00
Philipp Henkel
ccc9d0135c Add Lego fix to change and bump version up to 2.2.3 2017-03-27 19:57:25 +02:00
Philipp Henkel
257a15130f Fix calculation of pause length in LEGO PF protocol
Fix #384 Integer overflow in LEGO Power Functions affects pause between
messages
Is rebased version of PR #385
2017-03-26 22:32:55 +02:00
Marc MERLIN
1b56da6cc7 Rename ESP32 timer name so that it doesn't conflict with other timers. 2017-03-19 21:28:14 -07:00
Marc MERLIN
aa8f7b31fe Added ESP32 IR receive support (IRsend not implemented yet).
- disable a lot of defines not relevant to ESP32, set them to 1 (no-op)
- change default IR pin to 35 from 11
- changed serial speed to 115200 (9600 is too slow to keep up with IR input)
- irSend disables code that will not compile on ESP32. It won't work,
  but it won't break compilation either.
2017-03-19 20:27:56 -07:00
Rafi Khan
048efb23a2 Merge pull request #414 from z3t0/z3t0-patch-1
Update ISSUE_TEMPLATE.md
2017-02-06 22:26:51 -06:00
Rafi Khan
4f24b696cf Update ISSUE_TEMPLATE.md 2017-02-03 21:18:47 -06:00
Rafi Khan
a4cf8bc43e Merge pull request #406 from z3t0/panasonic-jvc
IRrecord.ino typo
2017-01-26 21:11:10 -06:00
Rafi Khan
3b41130ff9 Manual merge of #398 2017-01-22 01:52:14 -06:00
Rafi Khan
96efb5930a Merge pull request #402 from felipenoris/fn/fix-msg
fix example error message
2017-01-14 14:14:16 -06:00
Felipe Noronha
9a74475c8d fix example error message 2017-01-13 11:58:40 -02:00
43 changed files with 93 additions and 87 deletions

View File

@@ -16,7 +16,7 @@ These are the active contributors of this project that you may contact if there
- [Sebazzz](https://github.com/sebazz): Contributor
- [lumbric](https://github.com/lumbric): Contributor
- [ElectricRCAircraftGuy](https://github.com/electricrcaircraftguy): Active Contributor
- [henkel](https://github.com/henkel): Contributor
- [philipphenkel](https://github.com/philipphenkel): Active Contributor
- [MCUdude](https://github.com/MCUdude): Contributor
Note: This list is being updated constantly so please let [z3t0](https://github.com/z3t0) know if you have been missed.

View File

@@ -22,7 +22,7 @@
// Defining IR_GLOBAL here allows us to declare the instantiation of global variables
#define IR_GLOBAL
# include "AIRremote.h"
# include "IRremote.h"
# include "IRremoteInt.h"
#undef IR_GLOBAL

View File

@@ -15,8 +15,8 @@
// Whynter A/C ARC-110WD added by Francesco Meschia
//******************************************************************************
#ifndef AIRremote_h
#define AIRremote_h
#ifndef IRremote_h
#define IRremote_h
//------------------------------------------------------------------------------
// The ISR header contains several useful macros the user may wish to use

View File

@@ -5,7 +5,7 @@
**Code Block:**
```c
#include <AIRremote.h>
#include <IRremote.h>
.....
@@ -14,8 +14,12 @@
Use [a gist](gist.github.com) if the code exceeds 30 lines
**checklist:**
- [] I have **read** the README.md file thoroughly
- [] I have searched existing issues to see if there is anything I have missed.
- [] The latest [release](https://github.com/z3t0/Arduino-IRremote/releases/latest) is used
- [] Any code referenced is provided
- [] Any code referenced is provided and if over 30 lines a gist is linked INSTEAD of it being pasted in here
- [] The title of the issue is helpful and relevant
The above is a short template allowing you to make detailed issues!
** We will start to close issues that do not follow these guidelines as it doesn't help the contributors who spend time trying to solve issues if the community ignores guidelines!**
The above is a short template allowing you to make detailed issues!

View File

@@ -8,7 +8,7 @@ This library enables you to send and receive using infra-red signals on an Ardui
Tutorials and more information will be made available on [the official homepage](http://z3t0.github.io/Arduino-IRremote/).
## Version - 2.2.1
## Version - 2.2.3
## Installation
1. Navigate to the [Releases](https://github.com/z3t0/Arduino-IRremote/releases) page.
@@ -65,7 +65,7 @@ Check [here](Contributing.md) for some guidelines.
## Contact
Email: zetoslab@gmail.com
Please only email me if it is more appropriate than creating an Issue / PR. I **will** not respond to requests for adding support for particular boards, unless of course you are the creator of the board and would like to cooperate on the project. I will also **ignore** any emails asking me to tell you how to implement your ideas. However, if you have a private inquiry that you would only apply to you and you would prefer it to be via email, by all means.
Please only email me if it is more appropriate than creating an Issue / PR. I **will** not respond to requests for adding support for particular boards, unless of course you are the creator of the board and would like to cooperate on the project. I will also **ignore** any emails asking me to tell you how to implement your ideas. However, if you have a private inquiry that you would only apply to you and you would prefer it to be via email, by all means.
## Contributors
Check [here](Contributors.md)

View File

@@ -1,3 +1,9 @@
## 2.2.3 - 2017/03/27
- Fix calculation of pause length in LEGO PF protocol [PR #427](https://github.com/z3t0/Arduino-IRremote/pull/427)
## 2.2.2 - 2017/01/20
- Fixed naming bug [PR #398](https://github.com/z3t0/Arduino-IRremote/pull/398)
## 2.2.1 - 2016/07/27
- Added tests for Lego Power Functions Protocol [PR #336](https://github.com/z3t0/Arduino-IRremote/pull/336)

View File

@@ -6,7 +6,7 @@
* http://arcfn.com
*/
#include "AIRremote.h"
#include "IRremote.h"
#define POWER 0x7F80
#define AIWA_RC_T501

View File

@@ -15,7 +15,7 @@
* http://arcfn.com
*/
#include <AIRremote.h>
#include <IRremote.h>
int RECV_PIN = 11;
int BUTTON_PIN = 12;
@@ -126,7 +126,7 @@ void sendCode(int repeat) {
Serial.println(codeValue, HEX);
}
else if (codeType == JVC) {
irsend.sendPanasonic(codeValue, codeLen);
irsend.sendJVC(codeValue, codeLen, false);
Serial.print("Sent JVC");
Serial.println(codeValue, HEX);
}

View File

@@ -6,7 +6,7 @@
* http://arcfn.com
*/
#include <AIRremote.h>
#include <IRremote.h>
int RECV_PIN = 11;

View File

@@ -8,7 +8,7 @@
* LG added by Darryl Smith (based on the JVC protocol)
*/
#include <AIRremote.h>
#include <IRremote.h>
/*
* Default is Arduino pin D11.

View File

@@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// Include the IRremote library header
//
#include <AIRremote.h>
#include <IRremote.h>
//------------------------------------------------------------------------------
// Tell IRremote which Arduino pin is connected to the IR Receiver (TSOP4838)
@@ -66,7 +66,7 @@ void dumpInfo (decode_results *results)
{
// Check if the buffer overflowed
if (results->overflow) {
Serial.println("IR code too long. Edit IRremoteInt.h and increase RAWLEN");
Serial.println("IR code too long. Edit IRremoteInt.h and increase RAWBUF");
return;
}

View File

@@ -6,7 +6,7 @@
* http://arcfn.com
*/
#include <AIRremote.h>
#include <IRremote.h>
int RECV_PIN = 11;
int RELAY_PIN = 4;

View File

@@ -11,7 +11,7 @@
*/
#include <AIRremote.h>
#include <IRremote.h>
void setup()
{
@@ -224,7 +224,7 @@ void dumpFooter() {
Serial.println(F("Notes: "));
Serial.println(F(" - Most of the seetings above can be configured in the following files included as part of the library"));
Serial.println(F(" - IRremteInt.h"));
Serial.println(F(" - AIRremote.h"));
Serial.println(F(" - IRremote.h"));
Serial.println(F(" - You can save SRAM by disabling the Decode or Send features for any protocol (Near the top of IRremoteInt.h)"));
Serial.println(F(" - Some Timer conflicts, with other libraries, can be easily resolved by configuring a differnt Timer for your platform"));
}

View File

@@ -7,7 +7,7 @@
*/
#include <AIRremote.h>
#include <IRremote.h>
IRsend irsend;

View File

@@ -18,7 +18,7 @@
*/
#include <AIRremote.h>
#include <IRremote.h>
IRsend irsend;

View File

@@ -4,12 +4,12 @@
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*
* Note: to run these tests, edit IRremote/AIRremote.h to add "#define TEST"
* Note: to run these tests, edit IRremote/IRremote.h to add "#define TEST"
* You must then recompile the library by removing IRremote.o and restarting
* the arduino IDE.
*/
#include <AIRremote.h>
#include <IRremote.h>
#include <IRremoteInt.h>
// Dumps out the decode_results structure.

View File

@@ -25,7 +25,7 @@
* http://arcfn.com
*/
#include <AIRremote.h>
#include <IRremote.h>
int RECV_PIN = 11;
int LED_PIN = 3;

View File

@@ -6,7 +6,7 @@
* http://arcfn.com
* JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
*/
#include <AIRremote.h>
#include <IRremote.h>
#define PanasonicAddress 0x4004 // Panasonic address (Pre data)
#define PanasonicPower 0x100BCBD // Panasonic Power button

View File

@@ -1,4 +1,4 @@
#include <AIRremote.h>
#include <IRremote.h>
#include <Wire.h>

View File

@@ -3,7 +3,7 @@
* Copyright (c) 2016 Philipp Henkel
*/
#include <AIRremote.h>
#include <IRremote.h>
#include <IRremoteInt.h>
IRsend irsend;

View File

@@ -1,6 +1,6 @@
/*
* LegoPowerFunctionsTest: LEGO Power Functions Tests
* Copyright (c) 2016 Philipp Henkel
* Copyright (c) 2016, 2017 Philipp Henkel
*/
#include <ir_Lego_PF_BitStreamEncoder.h>
@@ -78,14 +78,14 @@ void testMessageBitCount(LegoPfBitStreamEncoder& bitStreamEncoder) {
logTestResult(bitCount == 18);
}
boolean check(LegoPfBitStreamEncoder& bitStreamEncoder, int markDuration, int pauseDuration) {
boolean check(LegoPfBitStreamEncoder& bitStreamEncoder, unsigned long markDuration, unsigned long pauseDuration) {
bool result = true;
result = result && bitStreamEncoder.getMarkDuration() == markDuration;
result = result && bitStreamEncoder.getPauseDuration() == pauseDuration;
return result;
}
boolean checkNext(LegoPfBitStreamEncoder& bitStreamEncoder, int markDuration, int pauseDuration) {
boolean checkNext(LegoPfBitStreamEncoder& bitStreamEncoder, unsigned long markDuration, unsigned long pauseDuration) {
bool result = bitStreamEncoder.next();
result = result && check(bitStreamEncoder, markDuration, pauseDuration);
return result;
@@ -129,16 +129,16 @@ void testMessage407Repeated(LegoPfBitStreamEncoder& bitStreamEncoder) {
bool result = true;
result = result && check(bitStreamEncoder, 158, 1026);
result = result && checkDataBitsOfMessage407(bitStreamEncoder);
result = result && checkNext(bitStreamEncoder, 158, 1026 + 5 * 16000 - 10844);
result = result && checkNext(bitStreamEncoder, 158, 1026L + 5L * 16000L - 10844L);
result = result && checkNext(bitStreamEncoder, 158, 1026);
result = result && checkDataBitsOfMessage407(bitStreamEncoder);
result = result && checkNext(bitStreamEncoder, 158, 1026 + 5 * 16000 - 10844);
result = result && checkNext(bitStreamEncoder, 158, 1026L + 5L * 16000L - 10844L);
result = result && checkNext(bitStreamEncoder, 158, 1026);
result = result && checkDataBitsOfMessage407(bitStreamEncoder);
result = result && checkNext(bitStreamEncoder, 158, 1026 + 8 * 16000 - 10844);
result = result && checkNext(bitStreamEncoder, 158, 1026L + 8L * 16000L - 10844L);
result = result && checkNext(bitStreamEncoder, 158, 1026);
result = result && checkDataBitsOfMessage407(bitStreamEncoder);
result = result && checkNext(bitStreamEncoder, 158, 1026 + 8 * 16000 - 10844);
result = result && checkNext(bitStreamEncoder, 158, 1026L + 8L * 16000L - 10844L);
result = result && checkNext(bitStreamEncoder, 158, 1026);
result = result && checkDataBitsOfMessage407(bitStreamEncoder);
result = result && checkNext(bitStreamEncoder, 158, 1026);
@@ -191,7 +191,3 @@ void testGetMessageLengthAllLow(LegoPfBitStreamEncoder& bitStreamEncoder) {
bitStreamEncoder.reset(0x0, false);
logTestResult(bitStreamEncoder.getMessageLength() == 9104);
}

View File

@@ -17,7 +17,7 @@
void mark (int t) { printf("+%d," , t); }
void space (int t) { printf("-%d, ", t); }
#else
# include "AIRremote.h"
# include "IRremote.h"
#endif // TEST
//+=============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//+=============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//+=============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
// Reverse Engineered by looking at RAW dumps generated by IRremote

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
#include "ir_Lego_PF_BitStreamEncoder.h"

View File

@@ -4,7 +4,7 @@
// L E E O O
// L EEEE E EEE O O
// L E E E O O LEGO Power Functions
// LLLLLL EEEEEE EEEE OOOO Copyright (c) 2016 Philipp Henkel
// LLLLLL EEEEEE EEEE OOOO Copyright (c) 2016, 2017 Philipp Henkel
//==============================================================================
//+=============================================================================
@@ -14,25 +14,25 @@ class LegoPfBitStreamEncoder {
private:
uint16_t data;
bool repeatMessage;
int messageBitIdx;
int repeatCount;
int messageLength;
// HIGH data bit = IR mark + high pause
// LOW data bit = IR mark + low pause
static const int LOW_BIT_DURATION = 421;
static const int HIGH_BIT_DURATION = 711;
static const int START_BIT_DURATION = 1184;
static const int STOP_BIT_DURATION = 1184;
static const int IR_MARK_DURATION = 158;
static const int HIGH_PAUSE_DURATION = HIGH_BIT_DURATION - IR_MARK_DURATION;
static const int LOW_PAUSE_DURATION = LOW_BIT_DURATION - IR_MARK_DURATION;
static const int START_PAUSE_DURATION = START_BIT_DURATION - IR_MARK_DURATION;
static const int STOP_PAUSE_DURATION = STOP_BIT_DURATION - IR_MARK_DURATION;
static const int MESSAGE_BITS = 18;
static const int MAX_MESSAGE_LENGTH = 16000;
uint8_t messageBitIdx;
uint8_t repeatCount;
uint16_t messageLength;
public:
// HIGH data bit = IR mark + high pause
// LOW data bit = IR mark + low pause
static const uint16_t LOW_BIT_DURATION = 421;
static const uint16_t HIGH_BIT_DURATION = 711;
static const uint16_t START_BIT_DURATION = 1184;
static const uint16_t STOP_BIT_DURATION = 1184;
static const uint8_t IR_MARK_DURATION = 158;
static const uint16_t HIGH_PAUSE_DURATION = HIGH_BIT_DURATION - IR_MARK_DURATION;
static const uint16_t LOW_PAUSE_DURATION = LOW_BIT_DURATION - IR_MARK_DURATION;
static const uint16_t START_PAUSE_DURATION = START_BIT_DURATION - IR_MARK_DURATION;
static const uint16_t STOP_PAUSE_DURATION = STOP_BIT_DURATION - IR_MARK_DURATION;
static const uint8_t MESSAGE_BITS = 18;
static const uint16_t MAX_MESSAGE_LENGTH = 16000;
void reset(uint16_t data, bool repeatMessage) {
this->data = data;
this->repeatMessage = repeatMessage;
@@ -43,9 +43,9 @@ class LegoPfBitStreamEncoder {
int getChannelId() const { return 1 + ((data >> 12) & 0x3); }
int getMessageLength() const {
uint16_t getMessageLength() const {
// Sum up all marks
int length = MESSAGE_BITS * IR_MARK_DURATION;
uint16_t length = MESSAGE_BITS * IR_MARK_DURATION;
// Sum up all pauses
length += START_PAUSE_DURATION;
@@ -75,9 +75,9 @@ class LegoPfBitStreamEncoder {
}
}
int getMarkDuration() const { return IR_MARK_DURATION; }
uint8_t getMarkDuration() const { return IR_MARK_DURATION; }
int getPauseDuration() const {
uint32_t getPauseDuration() const {
if (messageBitIdx == 0)
return START_PAUSE_DURATION;
else if (messageBitIdx < MESSAGE_BITS - 1) {
@@ -88,13 +88,13 @@ class LegoPfBitStreamEncoder {
}
private:
int getDataBitPause() const {
uint16_t getDataBitPause() const {
const int pos = MESSAGE_BITS - 2 - messageBitIdx;
const bool isHigh = data & (1 << pos);
return isHigh ? HIGH_PAUSE_DURATION : LOW_PAUSE_DURATION;
}
int getStopPause() const {
uint32_t getStopPause() const {
if (repeatMessage) {
return getRepeatStopPause();
} else {
@@ -102,12 +102,12 @@ class LegoPfBitStreamEncoder {
}
}
int getRepeatStopPause() const {
uint32_t getRepeatStopPause() const {
if (repeatCount == 0 || repeatCount == 1) {
return STOP_PAUSE_DURATION + 5 * MAX_MESSAGE_LENGTH - messageLength;
return STOP_PAUSE_DURATION + (uint32_t)5 * MAX_MESSAGE_LENGTH - messageLength;
} else if (repeatCount == 2 || repeatCount == 3) {
return STOP_PAUSE_DURATION
+ (6 + 2 * getChannelId()) * MAX_MESSAGE_LENGTH - messageLength;
+ (uint32_t)(6 + 2 * getChannelId()) * MAX_MESSAGE_LENGTH - messageLength;
} else {
return STOP_PAUSE_DURATION;
}

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//+=============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -31,7 +31,7 @@ You have written the code to support your new protocol!
Now you must do a few things to add it to the IRremote system:
1. Open AIRremote.h and make the following changes:
1. Open IRremote.h and make the following changes:
REMEMEBER to change occurences of "SHUZU" with the name of your protocol
A. At the top, in the section "Supported Protocols", add:
@@ -91,7 +91,7 @@ Regards,
BlueChip
*/
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -1,4 +1,4 @@
#include "AIRremote.h"
#include "IRremote.h"
#include "IRremoteInt.h"
//==============================================================================

View File

@@ -7,7 +7,7 @@
"type": "git",
"url": "https://github.com/z3t0/Arduino-IRremote.git"
},
"version": "2.2.1",
"version": "2.2.3",
"frameworks": "arduino",
"platforms": "atmelavr",
"authors" :

View File

@@ -1,5 +1,5 @@
name=IRremote
version=2.2.1
version=2.2.3
author=shirriff
maintainer=shirriff
sentence=Send and receive infrared signals with multiple protocols