M5Unit-RF433 0.2.0 git rev:ed9ef39
Loading...
Searching...
No Matches
unit_SYN115.hpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD
3 *
4 * SPDX-License-Identifier: MIT
5 */
10#ifndef M5_UNIT_RF433_UNIT_SYN115_HPP
11#define M5_UNIT_RF433_UNIT_SYN115_HPP
12
13#include <M5UnitComponent.hpp>
14#include "codec/m5_codec.hpp"
15
16namespace m5 {
17namespace unit {
18
24class UnitSYN115 : public Component {
25 M5_UNIT_COMPONENT_HPP_BUILDER(UnitSYN115, 0x00);
26
27public:
32 struct config_t {
34 bool send_in_update{false};
37 };
38
41
43 {
44 return _cfg;
45 }
47 inline void config(const config_t& cfg)
48 {
49 _cfg = cfg;
50 }
52
53 UnitSYN115() : Component(0x00)
54 {
55 }
56 virtual ~UnitSYN115()
57 {
58 }
59
61 virtual bool begin() override;
63 virtual void update(const bool force = false) override;
64
70 {
71 if (_codec) {
72 return *_codec;
73 }
74 return _default_codec;
75 }
77 inline const rf433::ProtocolCodec& codec() const
78 {
79 if (_codec) {
80 return *_codec;
81 }
82 return _default_codec;
83 }
84
94 bool push_back(const uint8_t* data, const uint32_t len);
95
102 bool send(const uint8_t burst_transmission_count = 0);
103
107 inline void clear()
108 {
109 _payload.clear();
110 _payload_size = 0;
111 }
112
119 {
120 _codec = (&codec == &_default_codec) ? nullptr : &codec;
121 }
122
125 {
126 _codec = nullptr;
127 }
128
129protected:
130 TickType_t estimate_tx_timeout_ticks(const rf433::item_container_type& items, const uint32_t margin_ms = 10) const;
131
132private:
133 rf433::M5Codec _default_codec{};
134 rf433::ProtocolCodec* _codec{}; // nullptr: use _default_codec
135 std::vector<uint8_t> _payload{};
136 uint16_t _payload_size{};
137 config_t _cfg{};
138};
139
140} // namespace unit
141} // namespace m5
142#endif
virtual bool begin() override
Initialize the transmitter unit.
Definition unit_SYN115.cpp:36
void resetCodec()
Reset to default M5Codec.
Definition unit_SYN115.hpp:124
const rf433::ProtocolCodec & codec() const
Get codec (for codec-specific configuration)
Definition unit_SYN115.hpp:77
void setCodec(rf433::ProtocolCodec &codec)
Set protocol codec.
Definition unit_SYN115.hpp:118
rf433::ProtocolCodec & codec()
Get codec (for codec-specific configuration)
Definition unit_SYN115.hpp:69
bool push_back(const uint8_t *data, const uint32_t len)
Push back data to payload.
Definition unit_SYN115.cpp:89
bool send(const uint8_t burst_transmission_count=0)
Send force if exists payload.
Definition unit_SYN115.cpp:104
void clear()
Clear inner buffer.
Definition unit_SYN115.hpp:107
void config(const config_t &cfg)
Set the configuration.
Definition unit_SYN115.hpp:47
virtual void update(const bool force=false) override
Update the transmitter unit.
Definition unit_SYN115.cpp:79
config_t config()
Gets the configuration.
Definition unit_SYN115.hpp:42
M5Unit-RF433 original protocol codec.
Definition m5_codec.hpp:29
Abstract base class for RF433 protocol encoding/decoding.
Definition protocol_codec.hpp:49
M5Unit-RF433 original protocol codec.
Top level namespace of M5Stack.
Unit-related namespace.
std::vector< gpio::m5_rmt_item_t > item_container_type
Item container.
Definition rmt_item_types.hpp:31
Settings for begin.
Definition unit_SYN115.hpp:32
uint8_t burst_transmission_count
Count of burst transmission.
Definition unit_SYN115.hpp:36
bool send_in_update
If true, pushed data is automatically sent during update(). If false, call send() explicitly.
Definition unit_SYN115.hpp:34