M5Unit-RF433 0.1.0 git rev:5415b86
Loading...
Searching...
No Matches
m5::unit::rf433::M5Codec Class Reference

M5Unit-RF433 original protocol codec. More...

#include <m5_codec.hpp>

Inheritance diagram for m5::unit::rf433::M5Codec:
m5::unit::rf433::ProtocolCodec

Public Member Functions

item_container_type encode (const uint8_t *payload, uint32_t payload_len) override
 Encode payload into RMT items with M5 protocol framing.
 
bool decode (const gpio::m5_rmt_item_t *items, uint32_t num, uint8_t *work_buf, uint16_t work_buf_size, DecodeResult &result) override
 Decode RMT items into payload data.
 
uint8_t overhead () const override
 Get protocol overhead in bytes.
 
Communication identifier (M5Codec specific)
communication_identifier_t communicationIdentifier () const
 Get the communication identifier.
 
void setCommunicationIdentifier (communication_identifier_t id)
 Set the communication identifier.
 
- Public Member Functions inherited from m5::unit::rf433::ProtocolCodec
 ProtocolCodec (CodecType t)
 
CodecType type () const
 Get codec type for safe downcasting.
 

Detailed Description

M5Unit-RF433 original protocol codec.

Always includes communication identifier (1 byte) and send count (1 byte). CRC8 covers payload only.

Member Function Documentation

◆ communicationIdentifier()

communication_identifier_t m5::unit::rf433::M5Codec::communicationIdentifier ( ) const
inline

Get the communication identifier.

Returns
Current communication identifier (0-255)

◆ decode()

bool m5::unit::rf433::M5Codec::decode ( const gpio::m5_rmt_item_t * items,
uint32_t num,
uint8_t * work_buf,
uint16_t work_buf_size,
DecodeResult & result )
overridevirtual

Decode RMT items into payload data.

Parameters
itemsPointer to the received RMT items (after SOF detection)
numNumber of RMT items
work_bufWorking buffer for decoded bytes
work_buf_sizeSize of the working buffer
[out]resultDecoded result containing payload pointer and metadata
Returns
True if decoding and CRC8 verification succeeded

Implements m5::unit::rf433::ProtocolCodec.

◆ encode()

item_container_type m5::unit::rf433::M5Codec::encode ( const uint8_t * payload,
uint32_t payload_len )
overridevirtual

Encode payload into RMT items with M5 protocol framing.

Parameters
payloadPointer to the payload data
payload_lenLength of the payload in bytes
Returns
Encoded RMT items including preamble, SOF, protocol fields, and Manchester-encoded data

Implements m5::unit::rf433::ProtocolCodec.

◆ overhead()

uint8_t m5::unit::rf433::M5Codec::overhead ( ) const
inlineoverridevirtual

Get protocol overhead in bytes.

Returns
4 (CRC8 + ID + Count + Length)

Implements m5::unit::rf433::ProtocolCodec.

◆ setCommunicationIdentifier()

void m5::unit::rf433::M5Codec::setCommunicationIdentifier ( communication_identifier_t id)
inline

Set the communication identifier.

Parameters
idCommunication identifier (0-255) for filtering received frames