7static const char *
const TAG =
"remote.gobox";
9constexpr uint32_t BIT_MARK_US = 580;
10constexpr uint32_t BIT_ONE_SPACE_US = 1640;
11constexpr uint32_t BIT_ZERO_SPACE_US = 545;
12constexpr uint64_t
HEADER = 0b011001001100010uL;
16void GoboxProtocol::dump_timings_(
const RawTimings &timings)
const {
17 ESP_LOGD(TAG,
"Gobox: size=%u", timings.size());
18 for (int32_t timing : timings) {
19 ESP_LOGD(TAG,
"Gobox: timing=%ld", (
long) timing);
24 ESP_LOGI(TAG,
"Send Gobox: code=0x%x", data.
code);
28 ESP_LOGI(TAG,
"Send Gobox: code=0x%Lx", code);
30 if (code & ((uint64_t) 1 << i)) {
31 dst->
item(BIT_MARK_US, BIT_ONE_SPACE_US);
33 dst->
item(BIT_MARK_US, BIT_ZERO_SPACE_US);
36 dst->
item(BIT_MARK_US, 2000);
49 if (code & ((uint64_t) 1 << i)) {
50 if (!src.
expect_item(BIT_MARK_US, BIT_ONE_SPACE_US)) {
54 if (!src.
expect_item(BIT_MARK_US, BIT_ZERO_SPACE_US)) {
62 for (int16_t i =
CODE_SIZE - 1; i >= 0; i--) {
86 ESP_LOGI(TAG,
"Received Gobox: code=0x%x", data.
code);
89 ESP_LOGI(TAG,
"Received Gobox: key=MENU");
92 ESP_LOGI(TAG,
"Received Gobox: key=RETURN");
95 ESP_LOGI(TAG,
"Received Gobox: key=UP");
98 ESP_LOGI(TAG,
"Received Gobox: key=LEFT");
101 ESP_LOGI(TAG,
"Received Gobox: key=RIGHT");
104 ESP_LOGI(TAG,
"Received Gobox: key=DOWN");
107 ESP_LOGI(TAG,
"Received Gobox: key=OK");
110 ESP_LOGI(TAG,
"Received Gobox: key=TOGGLE");
113 ESP_LOGI(TAG,
"Received Gobox: key=PROFILE");
116 ESP_LOGI(TAG,
"Received Gobox: key=FASTER");
119 ESP_LOGI(TAG,
"Received Gobox: key=SLOWER");
122 ESP_LOGI(TAG,
"Received Gobox: key=LOUDER");
125 ESP_LOGI(TAG,
"Received Gobox: key=SOFTER");
void dump(const GoboxData &data) override
void encode(RemoteTransmitData *dst, const GoboxData &data) override
optional< GoboxData > decode(RemoteReceiveData src) override
bool expect_item(uint32_t mark, uint32_t space)
bool expect_space(uint32_t length)
bool expect_mark(uint32_t length)
const RawTimings & get_raw_data() const
void set_carrier_frequency(uint32_t carrier_frequency)
void item(uint32_t mark, uint32_t space)
const RawTimings & get_data() const
void reserve(uint32_t len)
constexpr uint64_t HEADER
constexpr uint64_t HEADER_SIZE
constexpr uint64_t CODE_SIZE
std::vector< int32_t > RawTimings
Providing packet encoding functions for exchanging data with a remote host.