|
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.