10#ifndef M5_UNIT_RF433_UNIT_SYN531R_HPP
11#define M5_UNIT_RF433_UNIT_SYN531R_HPP
13#include <M5UnitComponent.hpp>
26class UnitSYN531R :
public Component {
27 M5_UNIT_COMPONENT_HPP_BUILDER(UnitSYN531R, 0x00);
30 using container_type = rf433::container_type;
49#if defined(M5_UNIT_UNIFIED_USING_RMT_V2)
74 virtual ~UnitSYN531R()
79 virtual bool begin()
override;
81 virtual void update(
const bool force =
false)
override;
98 return !_data.empty() ? _data.front() : 0;
103 return !_data.empty() ? _data.back() : 0;
108 if (!_data.empty()) {
109 _data.erase(_data.begin());
126 inline std::shared_ptr<rf433::ProtocolCodec>
codec()
141 void operator()(uint8_t* p)
const
146 std::shared_ptr<rf433::ProtocolCodec> _codec{std::make_shared<rf433::M5Codec>()};
147 container_type _data{};
148 std::unique_ptr<uint8_t[], FreeDeleter> _rx_buffer{};
149 size_t _rx_buffer_size{};
config_t config()
Gets the configuration.
Definition unit_SYN531R.hpp:60
virtual bool begin() override
Initialize the receiver unit.
Definition unit_SYN531R.cpp:37
void config(const config_t &cfg)
Set the configuration.
Definition unit_SYN531R.hpp:65
size_t available() const
Gets the number of stored data.
Definition unit_SYN531R.hpp:86
const container_type & container() const
Gets the received container reference.
Definition unit_SYN531R.hpp:119
void discard()
Discard the oldest data accumulated.
Definition unit_SYN531R.hpp:106
bool empty() const
Is empty stored data?
Definition unit_SYN531R.hpp:91
std::shared_ptr< rf433::ProtocolCodec > codec()
Get codec (for codec-specific configuration)
Definition unit_SYN531R.hpp:126
virtual void update(const bool force=false) override
Update the receiver unit.
Definition unit_SYN531R.cpp:112
uint8_t latest() const
Retrieve latest stored data.
Definition unit_SYN531R.hpp:101
uint8_t oldest() const
Retrieve oldest stored data.
Definition unit_SYN531R.hpp:96
void setCodec(std::shared_ptr< rf433::ProtocolCodec > codec)
Set protocol codec (default: M5Codec)
Definition unit_SYN531R.hpp:131
void flush()
Discard all data.
Definition unit_SYN531R.hpp:113
M5Unit-RF433 original protocol codec.
Top level namespace of M5Stack.
Settings for begin.
Definition unit_SYN531R.hpp:36
uint8_t max_payload_size
Definition unit_SYN531R.hpp:48