ESPHome 2025.5.0
Loading...
Searching...
No Matches
gobox_protocol.h
Go to the documentation of this file.
1#pragma once
2
4#include "remote_base.h"
5
6namespace esphome {
7namespace remote_base {
8
9struct GoboxData {
10 int code;
11 bool operator==(const GoboxData &rhs) const { return code == rhs.code; }
12};
13
14enum {
15 GOBOX_MENU = 0xaa55,
16 GOBOX_RETURN = 0x22dd,
17 GOBOX_UP = 0x0af5,
18 GOBOX_LEFT = 0x8a75,
19 GOBOX_RIGHT = 0x48b7,
20 GOBOX_DOWN = 0xa25d,
21 GOBOX_OK = 0xc837,
22 GOBOX_TOGGLE = 0xb847,
23 GOBOX_PROFILE = 0xfa05,
24 GOBOX_FASTER = 0xf00f,
25 GOBOX_SLOWER = 0xd02f,
26 GOBOX_LOUDER = 0xb04f,
27 GOBOX_SOFTER = 0xf807,
28};
29
30class GoboxProtocol : public RemoteProtocol<GoboxData> {
31 private:
32 void dump_timings_(const RawTimings &timings) const;
33
34 public:
35 void encode(RemoteTransmitData *dst, const GoboxData &data) override;
37 void dump(const GoboxData &data) override;
38};
39
40DECLARE_REMOTE_PROTOCOL(Gobox)
41
42template<typename... Ts> class GoboxAction : public RemoteTransmitterActionBase<Ts...> {
43 public:
44 TEMPLATABLE_VALUE(uint64_t, code);
45
46 void encode(RemoteTransmitData *dst, Ts... x) override {
47 GoboxData data{};
48 data.code = this->code_.value(x...);
49 GoboxProtocol().encode(dst, data);
50 }
51};
52
53} // namespace remote_base
54} // namespace esphome
void dump(const GoboxData &data) override
void encode(RemoteTransmitData *dst, const GoboxData &data) override
optional< GoboxData > decode(RemoteReceiveData src) override
std::vector< int32_t > RawTimings
Definition remote_base.h:23
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
bool operator==(const GoboxData &rhs) const
uint16_t x
Definition tt21100.cpp:5