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