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

Abstract base class for RF433 protocol encoding/decoding. More...

#include <protocol_codec.hpp>

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

Public Member Functions

 ProtocolCodec (CodecType t)
 
CodecType type () const
 Get codec type for safe downcasting.
 
TX
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)
 
RX
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.
 
Properties
virtual uint8_t overhead () const =0
 Maximum protocol overhead in bytes (excluding payload)
 

Detailed Description

Abstract base class for RF433 protocol encoding/decoding.

Member Function Documentation

◆ decode()

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

Try to decode a valid frame from RMT items.

Parameters
itemsRMT items from receiver
numNumber of items
work_bufWorking buffer for Manchester decoding
work_buf_sizeSize of working buffer
[out]resultDecoded frame result
Returns
true if a valid frame was found and decoded

Implemented in m5::unit::rf433::M5Codec.

◆ encode()

virtual item_container_type m5::unit::rf433::ProtocolCodec::encode ( const uint8_t * payload,
uint32_t payload_len )
pure virtual

Encode payload into a complete RMT frame (preamble + SOF + header + data + EOF)

Parameters
payloadPayload data
payload_lenPayload length in bytes
Returns
RMT items for transmission

Implemented in m5::unit::rf433::M5Codec.

◆ overhead()

virtual uint8_t m5::unit::rf433::ProtocolCodec::overhead ( ) const
pure virtual

Maximum protocol overhead in bytes (excluding payload)

Returns
Overhead size

Implemented in m5::unit::rf433::M5Codec.