M5Unit-RF433 0.1.0 git rev:5415b86
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 <memory>
15#include "codec/m5_codec.hpp"
16
17namespace m5 {
18namespace unit {
19
25class UnitSYN115 : public Component {
26 M5_UNIT_COMPONENT_HPP_BUILDER(UnitSYN115, 0x00);
27
28public:
33 struct config_t {
35 bool send_in_update{false};
38 };
39
42
44 {
45 return _cfg;
46 }
48 inline void config(const config_t& cfg)
49 {
50 _cfg = cfg;
51 }
53
54 UnitSYN115() : Component(0x00)
55 {
56 }
57 virtual ~UnitSYN115()
58 {
59 }
60
62 virtual bool begin() override;
64 virtual void update(const bool force = false) override;
65
67 inline std::shared_ptr<rf433::ProtocolCodec> codec()
68 {
69 return _codec;
70 }
71
81 bool push_back(const uint8_t* data, const uint32_t len);
82
89 bool send(const uint8_t burst_transmission_count = 0);
90
94 inline void clear()
95 {
96 _payload.clear();
97 _payload_size = 0;
98 }
99
101 void setCodec(std::shared_ptr<rf433::ProtocolCodec> codec)
102 {
103 _codec = codec;
104 }
105
106protected:
107 TickType_t estimate_tx_timeout_ticks(const rf433::item_container_type& items, const uint32_t margin_ms = 10) const;
108
109private:
110 std::shared_ptr<rf433::ProtocolCodec> _codec{std::make_shared<rf433::M5Codec>()};
111 std::vector<uint8_t> _payload{};
112 uint16_t _payload_size{};
113 config_t _cfg{};
114};
115
116} // namespace unit
117} // namespace m5
118#endif
virtual bool begin() override
Initialize the transmitter unit.
Definition unit_SYN115.cpp:36
bool push_back(const uint8_t *data, const uint32_t len)
Push back data to payload.
Definition unit_SYN115.cpp:84
bool send(const uint8_t burst_transmission_count=0)
Send force if exists payload.
Definition unit_SYN115.cpp:99
void clear()
Clear inner buffer.
Definition unit_SYN115.hpp:94
void config(const config_t &cfg)
Set the configuration.
Definition unit_SYN115.hpp:48
void setCodec(std::shared_ptr< rf433::ProtocolCodec > codec)
Set protocol codec (default: M5Codec)
Definition unit_SYN115.hpp:101
virtual void update(const bool force=false) override
Update the transmitter unit.
Definition unit_SYN115.cpp:74
config_t config()
Gets the configuration.
Definition unit_SYN115.hpp:43
std::shared_ptr< rf433::ProtocolCodec > codec()
Get codec (for codec-specific configuration)
Definition unit_SYN115.hpp:67
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:28
Settings for begin.
Definition unit_SYN115.hpp:33
uint8_t burst_transmission_count
Count of burst transmission.
Definition unit_SYN115.hpp:37
bool send_in_update
If true, pushed data is automatically sent during update(). If false, call send() explicitly.
Definition unit_SYN115.hpp:35