M5Unit-RF433 0.0.1 git rev:a9e15af
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 <m5_utility/crc.hpp>
15#include "rmt_item_types.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{true};
39 rf433::Protocol protocol{rf433::ProtocolIncludeSendCount | rf433::ProtocolIncludeIdentifier};
40 };
41
44
46 {
47 return _cfg;
48 }
50 inline void config(const config_t& cfg)
51 {
52 _cfg = cfg;
53 }
55
56 UnitSYN115() : Component(0x00)
57 {
58 }
59 virtual ~UnitSYN115()
60 {
61 }
62
63 virtual bool begin() override;
64 virtual void update(const bool force = false) override;
65
70 {
71 return _comm_id;
72 }
75 {
76 _comm_id = id;
77 }
79
86 bool push_back(const uint8_t* data, const uint32_t len);
87
94 bool send(const uint8_t burst_transmission_count = 4);
95
99 inline void clear()
100 {
101 clear_rmt_buffer();
102 }
103
104protected:
105 void clear_rmt_buffer();
106 TickType_t estimate_tx_timeout_ticks(const uint32_t margin_ms = 10) const;
107
108protected:
109 m5::utility::CRC8_Checksum _crc8{};
110 uint16_t _payload_size{};
111
112private:
113 rf433::item_container_type _rmt_buffer{};
114 rf433::communication_identifier_t _comm_id{};
115 bool _closing{};
116 uint8_t _send_count{}; // Transmission Counter
117 config_t _cfg{};
118};
119
120} // namespace unit
121} // namespace m5
122#endif
bool push_back(const uint8_t *data, const uint32_t len)
Definition unit_SYN115.cpp:88
void clear()
Clear inner buffer.
Definition unit_SYN115.hpp:99
void config(const config_t &cfg)
Set the configration.
Definition unit_SYN115.hpp:50
config_t config()
Gets the configration.
Definition unit_SYN115.hpp:45
void setCommunicationIdentifier(rf433::communication_identifier_t id)
Set communication identifier.
Definition unit_SYN115.hpp:74
bool send(const uint8_t burst_transmission_count=4)
Send force if exists payload.
Definition unit_SYN115.cpp:106
rf433::communication_identifier_t communicationIdentifier() const
Get communication identifier.
Definition unit_SYN115.hpp:69
Top level namespace of M5stack.
Unit-related namespace.
RMT releated definition and function for RF433.
uint32_t communication_identifier_t
Communication identifier.
Definition rmt_item_types.hpp:29
uint8_t Protocol
Protocol type.
Definition rmt_item_types.hpp:33
Settings for begin.
Definition unit_SYN115.hpp:33
uint8_t burst_transmission_count
Count of burst transmission.
Definition unit_SYN115.hpp:37
rf433::Protocol protocol
Protocol.
Definition unit_SYN115.hpp:39
bool send_in_update
Send in update() if true.
Definition unit_SYN115.hpp:35