17 delete [] durationData;
35 return micros() - then;
38 bool IrReceiverPoll::searchForStart() {
39 unsigned long start = micros();
42 if (
timeSince(start) > beginningTimeoutInMicros)
47 void IrReceiverPoll::collectData() {
50 unsigned long lastTime = micros();
52 unsigned long now = micros();
54 if (data != lastDataRead) {
55 recordDuration(now - lastTime);
58 }
else if (data == HIGH && (now - lastTime > endingTimeoutInMicros)) {
59 recordDuration(now - lastTime);
65 void IrReceiverPoll::recordDuration(
unsigned long t) {
void setBeginningTimeout(milliseconds_t timeOut)
off-period, also called gap
bool timeouted
True if last receive ended with a timeout.
uint16_t microseconds_t
Type for durations in micro seconds.
#define MICROSECONDS_T_MAX
Largest microseconds_t number possible.
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
irdata_t
Enum for the duration types.
IrReceiverPoll(size_t captureLength=defaultCaptureLength, pin_t pin=defaultPin, bool pullup=false, microseconds_t markExcess=defaultMarkExcess, milliseconds_t beginningTimeout=defaultBeginningTimeout, milliseconds_t endingTimeout=defaultEndingTimeout)
uint16_t milliseconds_t
Type for durations in milli seconds.
Abstract base class for demodulating IR receivers.
void enable()
In this class, enable does the actual collection of the data.
milliseconds_t endingTimeout
on-period, also called flash
milliseconds_t beginningTimeout
unsigned long timeSince(unsigned long then)
void setEndingTimeout(milliseconds_t timeOut)