1 #ifndef IRRECEIVERSAMPLE_H
2 #define IRRECEIVERSAMPLE_H
61 boolean pullup =
false,
81 boolean pullup =
false,
Between signals; waiting for first mark.
static const unsigned long microsPerTick
microseconds per clock interrupt
static const milliseconds_t defaultBeginningTimeout
void setBeginningTimeout(milliseconds_t timeOut)
uint16_t microseconds_t
Type for durations in micro seconds.
static const microseconds_t defaultMarkExcess
volatile ReceiverState_t receiverState
State of the state machine.
static const milliseconds_t defaultEndingTimeout
virtual ~IrReceiverSampler()
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
volatile size_t dataLength
Number of entries in durationData.
ReceiverState_t
State space for the receiver state machine.
void setEndingTimeout(milliseconds_t timeOut)
This receiving class samples the input pin every 50 microseconds using a timer interrupt.
uint16_t milliseconds_t
Type for durations in milli seconds.
Abstract base class for demodulating IR receivers.
microseconds_t getDuration(unsigned int i) const
Returns the index-th duration, if possible.
void enable()
Start reception of IR data.
static IrReceiverSampler * newIrReceiverSampler(size_t captureLength=defaultCaptureLength, pin_t pin=defaultPin, boolean pullup=false, microseconds_t markExcess=defaultMarkExcess, milliseconds_t beginningTimeout=defaultBeginningTimeout, milliseconds_t endingTimeout=defaultEndingTimeout)
This factory method replaces public constructors.
volatile uint32_t timer
state timer, counts 50uS ticks.
static void deleteInstance()
Deletes the instance, thereby freeing up the resources it occupied, and allowing for another instance...
size_t getDataLength() const
Returns the number of collected durations.
volatile microseconds_t * durationData
Data buffer.
milliseconds_t endingTimeout
void disable()
Stop reception of IR data.
static const pin_t defaultPin
Complete signal has been read.
milliseconds_t beginningTimeout
milliseconds_t getBeginningTimeout() const
static const size_t defaultCaptureLength
uint32_t beginningTimeoutInTicks
int16_t markExcess
Microseconds subtracted from pulses and added to gaps.
milliseconds_t getEndingTimeout() const
boolean isReady() const
Returns true if there is collected data.
uint32_t endingTimeoutInTicks
static IrReceiverSampler * getInstance()
Returns a pointer to the instance, or NULL.