Infrared4Arduino
IrReceiverPoll.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "IrReceiver.h"
4 
8 class IrReceiverPoll : public IrReceiver {
9 private:
11  microseconds_t *durationData;
12 
14  size_t dataLength;
15 
16 public:
17  IrReceiverPoll(size_t captureLength = defaultCaptureLength,
18  pin_t pin = defaultPin,
19  bool pullup = false,
23 
25 
26  bool isReady() const {
27  return timeouted || !isEmpty();
28  }
29 
30  void reset();
31 
32  size_t getDataLength() const {
33  return dataLength;
34  }
35 
36  microseconds_t getDuration(unsigned int i) const {
37  return durationData[i];
38  }
39 
41  endingTimeout = timeOut;
42  }
43 
45  return endingTimeout;
46  }
47 
49  return beginningTimeout;
50  }
51 
53  beginningTimeout = timeOut;
54  }
55 
61  void enable();
62 
63  void disable() {};
64 
65 private:
66  bool searchForStart();
67 
68  void collectData();
69 
70  void recordDuration(unsigned long t);
71 };
An implementation of IrReceiver using polling of the input pin.
Definition: IrReceiverPoll.h:8
void setBeginningTimeout(milliseconds_t timeOut)
bool timeouted
True if last receive ended with a timeout.
Definition: IrReader.h:47
static const milliseconds_t defaultBeginningTimeout
Definition: IrReader.h:33
uint16_t microseconds_t
Type for durations in micro seconds.
Definition: InfraredTypes.h:15
static const microseconds_t defaultMarkExcess
Definition: IrReceiver.h:19
static const milliseconds_t defaultEndingTimeout
Definition: IrReader.h:34
bool isReady() const
Returns true if there is collected data.
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
Definition: InfraredTypes.h:37
milliseconds_t getBeginningTimeout() const
microseconds_t getDuration(unsigned int i) const
Returns the index-th duration, if possible.
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.
Definition: InfraredTypes.h:25
Abstract base class for demodulating IR receivers.
Definition: IrReceiver.h:11
void disable()
Stop reception of IR data.
void enable()
In this class, enable does the actual collection of the data.
milliseconds_t endingTimeout
Definition: IrReader.h:39
static const pin_t defaultPin
Definition: IrReceiver.h:18
milliseconds_t getEndingTimeout() const
milliseconds_t beginningTimeout
Definition: IrReader.h:38
static const size_t defaultCaptureLength
Definition: IrReader.h:35
size_t getDataLength() const
Returns the number of collected durations.
void setEndingTimeout(milliseconds_t timeOut)
int16_t markExcess
Microseconds subtracted from pulses and added to gaps.
Definition: IrReader.h:44
virtual bool isEmpty() const
Definition: IrReader.h:126