Update IR lib/sensor to use the latest IR_Remote fork by Chris Young (IRLib)
https://github.com/cyborg5/IRLib
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
/* IRLibRData.h from IRLib – an Arduino library for infrared encoding and decoding
|
||||
* Version 1.4 March 2014
|
||||
* Copyright 2014 by Chris Young http://cyborg5.com
|
||||
*
|
||||
* This library is a major rewrite of IRemote by Ken Shirriff which was covered by
|
||||
* GNU LESSER GENERAL PUBLIC LICENSE which as I read it allows me to make modified versions.
|
||||
* That same license applies to this modified version. See his original copyright below.
|
||||
* The latest Ken Shirriff code can be found at https://github.com/shirriff/Arduino-IRremote
|
||||
* My purpose was to reorganize the code to make it easier to add or remove protocols.
|
||||
* As a result I have separated the act of receiving a set of raw timing codes from the act of decoding them
|
||||
* by making them separate classes. That way the receiving aspect can be more black box and implementers
|
||||
* of decoders and senders can just deal with the decoding of protocols. It also allows for alternative
|
||||
* types of receivers independent of the decoding. This makes porting to different hardware platforms easier.
|
||||
* Also added provisions to make the classes base classes that could be extended with new protocols
|
||||
* which would not require recompiling of the original library nor understanding of its detailed contents.
|
||||
* Some of the changes were made to reduce code size such as unnecessary use of long versus bool.
|
||||
* Some changes were just my weird programming style. Also extended debugging information added.
|
||||
*/
|
||||
/*
|
||||
* IRremote
|
||||
* Version 0.1 July, 2009
|
||||
* Copyright 2009 Ken Shirriff
|
||||
* For details, see http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html http://www.righto.com/
|
||||
*
|
||||
* Interrupt code based on NECIRrcv by Joe Knapp
|
||||
* http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556
|
||||
* Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/
|
||||
*/
|
||||
|
||||
#ifndef IRLibRData_h
|
||||
#define IRLibRData_h
|
||||
|
||||
/*
|
||||
* The structure contains a variety of variables needed by the receiver routines.
|
||||
* Typically this data would be part of the IRrecv class however the interrupt service routine
|
||||
* must have access to it and you cannot pass a parameter to such a routine. The data must be global.
|
||||
* You need not include this file unless you are creating a custom receiver class or extending
|
||||
* the provided IRrecv class.
|
||||
*/
|
||||
|
||||
// receiver states
|
||||
enum rcvstate_t {STATE_UNKNOWN, STATE_IDLE, STATE_MARK, STATE_SPACE, STATE_STOP, STATE_RUNNING};
|
||||
// information for the interrupt handler
|
||||
typedef struct {
|
||||
unsigned char recvpin; // pin for IR data from detector
|
||||
rcvstate_t rcvstate; // state machine
|
||||
bool blinkflag; // TRUE to enable blinking of pin 13 on IR processing
|
||||
unsigned long timer; // state timer, counts 50uS ticks.(and other uses)
|
||||
unsigned int rawbuf[RAWBUF]; // raw data
|
||||
unsigned char rawlen; // counter of entries in rawbuf
|
||||
}
|
||||
irparams_t;
|
||||
extern volatile irparams_t irparams;
|
||||
#endif
|
||||
Reference in New Issue
Block a user