|
Arduino PulseWire Transceiver Library
|
High-performance ESP32 IR RX driver using the RMT peripheral and Manchester decoding. More...
#include <RxDriverESP32.h>


Public Member Functions | |
| RxDriverESP32 (ManchesterCodec &codec, uint8_t pin, bool useChecksum=false) | |
| void | setFrameSize (uint16_t size) override |
| Set the expected frame size for dynamic data reception. | |
| void | setRxBufferSize (size_t size) override |
| Set the size of the internal RX buffer. | |
| bool | begin (uint32_t bitFrequencyHz) override |
| Start the receiver. | |
| void | end () override |
| Stop the receiver. | |
| size_t | readBytes (uint8_t *buffer, size_t length) override |
| int | available () override |
| Get the number of bytes available in the internal buffer. | |
| void | setTimeout (uint32_t timeoutMs) |
| Defines the read timeout for readBytes() in milliseconds. | |
Protected Member Functions | |
| size_t | readFrame () |
| void | toEdges (rmt_symbol_word_t *symbols, size_t num_symbols, RingBuffer< OutputEdge > &edges) |
| Convert RMT symbols to edges and feed into codec. | |
Protected Attributes | |
| size_t | _rxBufferSize = 1024 |
| size_t | _frameSize = 0 |
| uint8_t | _rxPin |
| uint32_t | _freqHz |
| rmt_channel_handle_t | _rxChannel = nullptr |
| RingBuffer< uint8_t > | _rxBuffer |
| RingBuffer< OutputEdge > | _edgeBuffer |
| Vector< rmt_symbol_word_t > | _symbols |
| Codec & | _codec |
| bool | _useChecksum = false |
| bool | isActive = false |
| QueueHandle_t | receive_queue |
| uint32_t | _readTimeoutMs = 50 |
High-performance ESP32 IR RX driver using the RMT peripheral and Manchester decoding.
Definition at line 52 of file RxDriverESP32.h.
|
inline |
| codec | IR codec |
| pin | RX pin |
| freqHz | Bit frequency |
| useChecksum | If true, validate checksum (default: false) |
| timeoutUs | Timeout in microseconds to flush frame if no symbol received (default: 5000) |
Definition at line 62 of file RxDriverESP32.h.
|
inlineoverridevirtual |
Get the number of bytes available in the internal buffer.
Implements pulsewire::RxDriver.
Definition at line 167 of file RxDriverESP32.h.
|
inlineoverridevirtual |
Read up to 'size' bytes from the internal buffer into 'data'. Returns number of bytes read.
Implements pulsewire::RxDriver.
Definition at line 159 of file RxDriverESP32.h.
|
inlineprotected |
Definition at line 189 of file RxDriverESP32.h.
Set the expected frame size for dynamic data reception.
Implements pulsewire::RxDriver.
Definition at line 65 of file RxDriverESP32.h.
Set the size of the internal RX buffer.
Implements pulsewire::RxDriver.
Definition at line 67 of file RxDriverESP32.h.
Defines the read timeout for readBytes() in milliseconds.
Definition at line 26 of file RxDriver.h.
|
inlineprotected |
Convert RMT symbols to edges and feed into codec.
Definition at line 247 of file RxDriverESP32.h.
|
protected |
Definition at line 184 of file RxDriverESP32.h.
|
protected |
Definition at line 182 of file RxDriverESP32.h.
|
protected |
Definition at line 177 of file RxDriverESP32.h.
|
protected |
Definition at line 179 of file RxDriverESP32.h.
|
protectedinherited |
Definition at line 29 of file RxDriver.h.
|
protected |
Definition at line 181 of file RxDriverESP32.h.
|
protected |
Definition at line 176 of file RxDriverESP32.h.
|
protected |
Definition at line 180 of file RxDriverESP32.h.
|
protected |
Definition at line 178 of file RxDriverESP32.h.
|
protected |
Definition at line 183 of file RxDriverESP32.h.
Definition at line 185 of file RxDriverESP32.h.
Definition at line 186 of file RxDriverESP32.h.
|
protected |
Definition at line 187 of file RxDriverESP32.h.