Infrared4Arduino 1.2.3
|
This receiving class samples the input pin every 50 microseconds using a timer interrupt. More...
#include <IrReceiverSampler.h>
Public Types | |
enum | ReceiverState_t { STATE_IDLE , STATE_MARK , STATE_SPACE , STATE_STOP } |
State space for the receiver state machine. More... | |
Public Types inherited from IrReceiver | |
enum | irdata_t { IR_MARK , IR_SPACE } |
Enum for the duration types. More... | |
Public Member Functions | |
void | enable () |
Start reception of IR data. More... | |
void | disable () |
Stop reception of IR data. More... | |
void | reset () |
void | setEndingTimeout (milliseconds_t timeOut) |
milliseconds_t | getEndingTimeout () const |
void | setBeginningTimeout (milliseconds_t timeOut) |
milliseconds_t | getBeginningTimeout () const |
size_t | getDataLength () const |
Returns the number of collected durations. More... | |
microseconds_t | getDuration (unsigned int i) const |
Returns the index-th duration, if possible. More... | |
bool | isReady () const |
Returns true if there is collected data. More... | |
Public Member Functions inherited from IrReceiver | |
IrReceiver (size_t bufSize, pin_t pin, bool pullup=false, microseconds_t markExcess=defaultMarkExcess) | |
Constructor. More... | |
virtual | ~IrReceiver () |
virtual frequency_t | getFrequency () const |
Returns frequency of received signal. More... | |
virtual void | receive () |
Convenience function: enable, wait until data is collected or timeout has occured, disable. More... | |
pin_t | getPin () const |
Public Member Functions inherited from IrReader | |
virtual void | reset () |
virtual frequency_t | getFrequency () const =0 |
Returns frequency of received signal. More... | |
virtual void | enable () |
Start reception of IR data. More... | |
virtual void | disable () |
Stop reception of IR data. More... | |
virtual void | receive ()=0 |
Convenience function: enable, wait until data is collected or timeout has occured, disable. More... | |
virtual bool | isReady () const =0 |
Returns true if there is collected data. More... | |
operator bool () const | |
Same as isReady() More... | |
virtual size_t | getDataLength () const =0 |
Returns the number of collected durations. More... | |
virtual microseconds_t | getDuration (unsigned int index) const =0 |
Returns the index-th duration, if possible. More... | |
virtual void | dump (Stream &stream) const |
Prints a textual representation of the received data to the Stream supplied. More... | |
IrSequence * | toIrSequence () const |
Generates an IrSequence from the IrReader. More... | |
virtual bool | isEmpty () const |
virtual void | setEndingTimeout (milliseconds_t timeOut) |
virtual milliseconds_t | getEndingTimeout () const |
virtual void | setBeginningTimeout (milliseconds_t timeOut) |
virtual milliseconds_t | getBeginningTimeout () const |
unsigned int | getBufferSize () const |
void | setMarkExcess (int16_t markExcess_) |
Sets the markExcess, a number (possibly negative) to be subtracted from the on-durations and added to the off.durations. More... | |
int16_t | getMarkExcess () const |
Gets the markExcess, a number (possibly negative) to be subtracted from the on-durations and added to the off.durations. More... | |
Static Public Member Functions | |
static IrReceiverSampler * | newIrReceiverSampler (size_t captureLength=defaultCaptureLength, pin_t pin=defaultPin, bool pullup=false, microseconds_t markExcess=defaultMarkExcess, milliseconds_t beginningTimeout=defaultBeginningTimeout, milliseconds_t endingTimeout=defaultEndingTimeout) |
This factory method replaces public constructors. More... | |
static void | deleteInstance () |
Deletes the instance, thereby freeing up the resources it occupied, and allowing for another instance to be created. More... | |
static IrReceiverSampler * | getInstance () |
Returns a pointer to the instance, or nullptr. More... | |
Public Attributes | |
volatile ReceiverState_t | receiverState |
State of the state machine. More... | |
uint32_t | endingTimeoutInTicks |
uint32_t | beginningTimeoutInTicks |
volatile uint32_t | timer |
state timer, counts 50uS ticks. More... | |
volatile microseconds_t * | durationData |
Data buffer. More... | |
volatile size_t | dataLength |
Number of entries in durationData. More... | |
Protected Member Functions | |
virtual | ~IrReceiverSampler () |
Protected Member Functions inherited from IrReader | |
IrReader (size_t bufSize_) | |
Constructs an IrReader with buffersize bufSize_, possibly increased to be even. More... | |
IrReader () | |
virtual | ~IrReader () |
Additional Inherited Members | |
Static Public Attributes inherited from IrReceiver | |
static constexpr pin_t | defaultPin = 5 |
static constexpr microseconds_t | defaultMarkExcess = 50U |
static constexpr bool | invertingSensor = true |
Are we using inverting sensor, like most TSOPs? More... | |
Static Public Attributes inherited from IrReader | |
static constexpr milliseconds_t | defaultBeginningTimeout = 2000U |
static constexpr milliseconds_t | defaultEndingTimeout = 30U |
static constexpr size_t | defaultCaptureLength = 100U |
Static Protected Member Functions inherited from IrReader | |
static unsigned int | forceEven (unsigned int x) |
Protected Attributes inherited from IrReader | |
milliseconds_t | beginningTimeout |
milliseconds_t | endingTimeout |
size_t | bufferSize |
int16_t | markExcess |
Microseconds subtracted from pulses and added to gaps. More... | |
bool | timeouted |
True if last receive ended with a timeout. More... | |
This receiving class samples the input pin every 50 microseconds using a timer interrupt.
Due to the ISP, this is a singleton class; it can only be instantiated once. This is enforced by the absence of public constructors: it has to be instantiated by the factory method newIrReceiverSampler.
Definition at line 18 of file IrReceiverSampler.h.
State space for the receiver state machine.
Enumerator | |
---|---|
STATE_IDLE | Between signals; waiting for first mark. |
STATE_MARK | Last read a mark. |
STATE_SPACE | Last read a space. |
STATE_STOP | Complete signal has been read. |
Definition at line 22 of file IrReceiverSampler.h.
|
protectedvirtual |
|
static |
Deletes the instance, thereby freeing up the resources it occupied, and allowing for another instance to be created.
|
virtual |
Stop reception of IR data.
Reimplemented from IrReader.
|
virtual |
Start reception of IR data.
Reimplemented from IrReader.
|
virtual |
Reimplemented from IrReader.
|
inlinevirtual |
Returns the number of collected durations.
Implements IrReader.
Definition at line 111 of file IrReceiverSampler.h.
|
inlinevirtual |
Returns the index-th duration, if possible.
index | index of duration |
Implements IrReader.
Definition at line 115 of file IrReceiverSampler.h.
|
virtual |
Reimplemented from IrReader.
|
inlinestatic |
Returns a pointer to the instance, or nullptr.
Definition at line 93 of file IrReceiverSampler.h.
|
inlinevirtual |
Returns true if there is collected data.
Implements IrReader.
Definition at line 120 of file IrReceiverSampler.h.
|
static |
This factory method replaces public constructors.
Provided that no instance currently exists, it constructs a new instance and return a pointer to it, if possible. Otherwise, it returns nullptr.
captureLength | buffersize requested |
pin | GPIO pin to use |
pullup | true if the internal pullup resistor should be enabled |
markExcess | markExcess to use |
beginningTimeout | beginningTimeout to use |
endingTimeout | endingTimeout to use |
|
virtual |
Reimplemented from IrReader.
|
virtual |
Reimplemented from IrReader.
|
virtual |
Reimplemented from IrReader.
uint32_t IrReceiverSampler::beginningTimeoutInTicks |
Definition at line 36 of file IrReceiverSampler.h.
volatile size_t IrReceiverSampler::dataLength |
Number of entries in durationData.
Definition at line 45 of file IrReceiverSampler.h.
volatile microseconds_t* IrReceiverSampler::durationData |
Data buffer.
Definition at line 42 of file IrReceiverSampler.h.
uint32_t IrReceiverSampler::endingTimeoutInTicks |
Definition at line 34 of file IrReceiverSampler.h.
volatile ReceiverState_t IrReceiverSampler::receiverState |
State of the state machine.
Definition at line 30 of file IrReceiverSampler.h.
volatile uint32_t IrReceiverSampler::timer |
state timer, counts 50uS ticks.
Definition at line 39 of file IrReceiverSampler.h.