17 delete [] durationData;
35 return micros() - then;
38 boolean 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
uint16_t microseconds_t
Type for durations in micro seconds.
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
irdata_t
Enum for the duration types.
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.
boolean timeouted
True if last receive ended with a timeout.
milliseconds_t endingTimeout
on-period, also called flash
IrReceiverPoll(size_t captureLength=defaultCaptureLength, pin_t pin=defaultPin, boolean pullup=false, microseconds_t markExcess=defaultMarkExcess, milliseconds_t beginningTimeout=defaultBeginningTimeout, milliseconds_t endingTimeout=defaultEndingTimeout)
milliseconds_t beginningTimeout
unsigned long timeSince(unsigned long then)
void setEndingTimeout(milliseconds_t timeOut)