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
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.
#define MICROSECONDS_T_MAX
Largest microseconds_t number possible.
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
microseconds_t getDuration(unsigned int i) const
Returns the index-th duration, if possible.
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.
void enable()
Start reception of IR data.
static void deleteInstance()
Deletes the instance, thereby freeing up the resources it occupied, and allowing for another instance...
volatile uint32_t timer
state timer, counts 50uS ticks.
volatile microseconds_t * durationData
Data buffer.
milliseconds_t endingTimeout
virtual ~IrReceiverSampler()
void disable()
Stop reception of IR data.
static const pin_t defaultPin
size_t getDataLength() const
Returns the number of collected durations.
Complete signal has been read.
milliseconds_t beginningTimeout
static const size_t defaultCaptureLength
bool isReady() const
Returns true if there is collected data.
uint32_t beginningTimeoutInTicks
int16_t markExcess
Microseconds subtracted from pulses and added to gaps.
milliseconds_t getEndingTimeout() const
milliseconds_t getBeginningTimeout() const
uint32_t endingTimeoutInTicks
static IrReceiverSampler * getInstance()
Returns a pointer to the instance, or NULL.