8static const char *
const TAG =
"remote.gobox";
11constexpr uint32_t BIT_ONE_SPACE_US = 1640;
12constexpr uint32_t BIT_ZERO_SPACE_US = 545;
13constexpr uint64_t
HEADER = 0b011001001100010uL;
17void GoboxProtocol::dump_timings_(
const RawTimings &timings)
const {
18 ESP_LOGD(TAG,
"Gobox: size=%u", timings.size());
19 for (int32_t timing : timings) {
20 ESP_LOGD(TAG,
"Gobox: timing=%ld", (
long) timing);
25 ESP_LOGI(TAG,
"Send Gobox: code=0x%x", data.code);
29 ESP_LOGI(TAG,
"Send Gobox: code=0x%016" PRIx64, code);
31 if (code & ((uint64_t) 1 << i)) {
32 dst->
item(BIT_MARK_US, BIT_ONE_SPACE_US);
34 dst->
item(BIT_MARK_US, BIT_ZERO_SPACE_US);
37 dst->
item(BIT_MARK_US, 2000);
50 if (code & ((uint64_t) 1 << i)) {
51 if (!src.
expect_item(BIT_MARK_US, BIT_ONE_SPACE_US)) {
55 if (!src.
expect_item(BIT_MARK_US, BIT_ZERO_SPACE_US)) {
63 for (int16_t i =
CODE_SIZE - 1; i >= 0; i--) {
87 ESP_LOGI(TAG,
"Received Gobox: code=0x%x", data.code);
90 ESP_LOGI(TAG,
"Received Gobox: key=MENU");
93 ESP_LOGI(TAG,
"Received Gobox: key=RETURN");
96 ESP_LOGI(TAG,
"Received Gobox: key=UP");
99 ESP_LOGI(TAG,
"Received Gobox: key=LEFT");
102 ESP_LOGI(TAG,
"Received Gobox: key=RIGHT");
105 ESP_LOGI(TAG,
"Received Gobox: key=DOWN");
108 ESP_LOGI(TAG,
"Received Gobox: key=OK");
111 ESP_LOGI(TAG,
"Received Gobox: key=TOGGLE");
114 ESP_LOGI(TAG,
"Received Gobox: key=PROFILE");
117 ESP_LOGI(TAG,
"Received Gobox: key=FASTER");
120 ESP_LOGI(TAG,
"Received Gobox: key=SLOWER");
123 ESP_LOGI(TAG,
"Received Gobox: key=LOUDER");
126 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 size_t CODE_SIZE
std::vector< int32_t > RawTimings
constexpr size_t HEADER_SIZE
Providing packet encoding functions for exchanging data with a remote host.