10#ifndef M5_UNIT_RF433_CODEC_PROTOCOL_CODEC_HPP
11#define M5_UNIT_RF433_CODEC_PROTOCOL_CODEC_HPP
84 virtual bool decode(
const gpio::m5_rmt_item_t* items, uint32_t num, uint8_t* work_buf, uint16_t work_buf_size,
Abstract base class for RF433 protocol encoding/decoding.
Definition protocol_codec.hpp:49
virtual item_container_type encode(const uint8_t *payload, uint32_t payload_len)=0
Encode payload into a complete RMT frame (preamble + SOF + header + data + EOF)
virtual bool decode(const gpio::m5_rmt_item_t *items, uint32_t num, uint8_t *work_buf, uint16_t work_buf_size, DecodeResult &result)=0
Try to decode a valid frame from RMT items.
virtual uint8_t overhead() const =0
Maximum protocol overhead in bytes (excluding payload)
CodecType type() const
Get codec type for safe downcasting.
Definition protocol_codec.hpp:57
Top level namespace of M5Stack.
CodecType
Identifies the protocol codec implementation.
Definition protocol_codec.hpp:36
@ Custom
User-defined custom protocol.
@ M5RF433
M5Unit-RF433 original protocol (.
RMT related definition and function for RF433.
uint8_t communication_identifier_t
Communication identifier (0-255)
Definition rmt_item_types.hpp:29
std::vector< gpio::m5_rmt_item_t > item_container_type
Item container.
Definition rmt_item_types.hpp:28
Result of decoding a received frame.
Definition protocol_codec.hpp:23
uint8_t send_count
Send count (for duplicate detection)
Definition protocol_codec.hpp:25
uint16_t payload_offset
Offset to payload in decode buffer.
Definition protocol_codec.hpp:27
uint8_t payload_length
Payload length in bytes.
Definition protocol_codec.hpp:26