Arduino PulseWire Transceiver Library
Loading...
Searching...
No Matches
RxDriver.h
1#pragma once
2#include <stddef.h>
3#include <stdint.h>
4
5namespace pulsewire {
6
10class RxDriver {
11 public:
13 virtual void setFrameSize(uint16_t size) = 0;
15 virtual bool begin(uint32_t bitFrequencyHz) = 0;
17 virtual void end() = 0;
20 virtual size_t readBytes(uint8_t* data, size_t size) = 0;
22 virtual int available() = 0;
24 virtual void setRxBufferSize(size_t size) = 0;
26 void setTimeout(uint32_t timeoutMs) { _readTimeoutMs = timeoutMs; }
27
28 protected:
29 uint32_t _readTimeoutMs = 50;
30};
31
32} // namespace pulsewire
Abstract base class for IR receivers.
Definition RxDriver.h:10
virtual void end()=0
Stop the receiver.
virtual int available()=0
Get the number of bytes available in the internal buffer.
virtual bool begin(uint32_t bitFrequencyHz)=0
Start the receiver.
void setTimeout(uint32_t timeoutMs)
Defines the read timeout for readBytes() in milliseconds.
Definition RxDriver.h:26
virtual void setFrameSize(uint16_t size)=0
Set the expected frame size for dynamic data reception.
virtual size_t readBytes(uint8_t *data, size_t size)=0
virtual void setRxBufferSize(size_t size)=0
Set the size of the internal RX buffer.
Small, header-only vector replacement for non-STL environments.
Definition Vector.h:29