ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
mirage_protocol.h
Go to the documentation of this file.
1#pragma once
2
4#include "remote_base.h"
5
6namespace esphome::remote_base {
7
8struct MirageData {
9 std::vector<uint8_t> data;
10
11 bool operator==(const MirageData &rhs) const { return data == rhs.data; }
12};
13
14class MirageProtocol : public RemoteProtocol<MirageData> {
15 public:
16 void encode(RemoteTransmitData *dst, const MirageData &data) override;
17 optional<MirageData> decode(RemoteReceiveData src) override;
18 void dump(const MirageData &data) override;
19
20 protected:
21 void encode_byte_(RemoteTransmitData *dst, uint8_t item);
22};
23
24DECLARE_REMOTE_PROTOCOL(Mirage)
25
26template<typename... Ts> class MirageAction : public RemoteTransmitterActionBase<Ts...> {
27 public:
28 TEMPLATABLE_VALUE(std::vector<uint8_t>, code)
29
30 void encode(RemoteTransmitData *dst, Ts... x) override {
31 MirageData data{};
32 data.data = this->code_.value(x...);
33 MirageProtocol().encode(dst, data);
34 }
35};
36
37} // namespace esphome::remote_base
void encode_byte_(RemoteTransmitData *dst, uint8_t item)
void dump(const MirageData &data) override
void encode(RemoteTransmitData *dst, const MirageData &data) override
optional< MirageData > decode(RemoteReceiveData src) override
std::vector< uint8_t > data
bool operator==(const MirageData &rhs) const
uint16_t x
Definition tt21100.cpp:5