ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
toto_protocol.h
Go to the documentation of this file.
1#pragma once
2
3#include "remote_base.h"
4
5namespace esphome::remote_base {
6
7struct TotoData {
8 uint8_t rc_code_1 : 4;
9 uint8_t rc_code_2 : 4;
10 uint8_t command;
11
12 bool operator==(const TotoData &rhs) const {
13 return (rc_code_1 == rhs.rc_code_1) && (rc_code_2 == rhs.rc_code_2) && (command == rhs.command);
14 }
15};
16
17class TotoProtocol : public RemoteProtocol<TotoData> {
18 public:
19 void encode(RemoteTransmitData *dst, const TotoData &data) override;
20 optional<TotoData> decode(RemoteReceiveData src) override;
21 void dump(const TotoData &data) override;
22};
23
24DECLARE_REMOTE_PROTOCOL(Toto)
25
26template<typename... Ts> class TotoAction : public RemoteTransmitterActionBase<Ts...> {
27 public:
28 TEMPLATABLE_VALUE(uint8_t, rc_code_1)
29 TEMPLATABLE_VALUE(uint8_t, rc_code_2)
30 TEMPLATABLE_VALUE(uint8_t, command)
31
32 void encode(RemoteTransmitData *dst, Ts... x) override {
33 TotoData data{};
34 data.rc_code_1 = this->rc_code_1_.value(x...);
35 data.rc_code_2 = this->rc_code_2_.value(x...);
36 data.command = this->command_.value(x...);
37 TotoProtocol().encode(dst, data);
38 }
39};
40
41} // namespace esphome::remote_base
optional< TotoData > decode(RemoteReceiveData src) override
void dump(const TotoData &data) override
void encode(RemoteTransmitData *dst, const TotoData &data) override
const void * src
Definition hal.h:64
bool operator==(const TotoData &rhs) const
uint16_t x
Definition tt21100.cpp:5