16 uint32_t longPulseUs = 1200, uint32_t toleranceUs = 200)
override {
17 _ref.
init(detector, shortPulseUs, longPulseUs, toleranceUs);
19 void setFrameSize(uint16_t size) {
20 _ref.setFrameSize(size);
24 bool decodeEdge(uint32_t durationUs,
bool level, uint8_t& result)
override {
25 _recordedEdges.push_back({level, durationUs});
26 return _ref.
decodeEdge(durationUs, level, result);
28 bool begin(uint32_t bitFrequencyHz) {
30 return _ref.
begin(bitFrequencyHz);
39 void clear() { _recordedEdges.clear(); }
49 void encodeByte(uint8_t
byte, std::vector<bool>& bits)
const override {
Abstract base class for IR protocol encoding and decoding.
virtual bool decodeEdge(uint32_t durationUs, bool level, uint8_t &result)
Edge-based decoding for protocol-agnostic RX drivers.
virtual bool begin(uint32_t bitFrequencyHz)
initialization method for codecs that require setup before use (e.g., loading PIO programs,...
virtual size_t encodeBit(bool bit, Vector< OutputEdge > &output)
Fill output vector with protocol-specific OutputSpec(s) for a bit.
virtual int getEndOfFrameDelayUs()=0
Provide the end of frame delay in microseconds for this protocol, used by RX driver to.
virtual void init(Preamble &detector, uint32_t shortPulseUs=600, uint32_t longPulseUs=1200, uint32_t toleranceUs=200)
virtual CodecEnum getCodecType() const =0
instance.
virtual bool decodeByte(Vector< OutputEdge > &edges, uint8_t &result)=0
Decode edges into a byte.
virtual size_t getEdgeCount() const =0
Get the number of protocol symbols (bits, pulses, etc.) per encoded byte.
virtual void encodeByte(uint8_t byte, std::vector< bool > &bits) const
Encode a byte to protocol bitstream. Default implementation encodes to raw bits (MSB first),...
Abstract base class for preamble detection and generation.
Codec Wrapper that records all edges passed to decodeEdge() for later analysis or testing.
int getEndOfFrameDelayUs() override
Provide the end of frame delay in microseconds for this protocol, used by RX driver to.
virtual size_t getEdgeCount() const
Get the number of protocol symbols (bits, pulses, etc.) per encoded byte.
bool decodeEdge(uint32_t durationUs, bool level, uint8_t &result) override
Edge-based decoding for protocol-agnostic RX drivers.
void encodeByte(uint8_t byte, std::vector< bool > &bits) const override
Encode a byte to protocol bitstream. Default implementation encodes to raw bits (MSB first),...
void init(Preamble &detector, uint32_t shortPulseUs=600, uint32_t longPulseUs=1200, uint32_t toleranceUs=200) override
size_t encodeBit(bool bit, Vector< OutputEdge > &output)
Fill output vector with protocol-specific OutputSpec(s) for a bit.
bool decodeByte(Vector< OutputEdge > &edges, uint8_t &result) override
Decode edges into a byte.
CodecEnum getCodecType() const override
instance.
bool begin(uint32_t bitFrequencyHz)
initialization method for codecs that require setup before use (e.g., loading PIO programs,...
Small, header-only vector replacement for non-STL environments.