9static constexpr uint32_t HEADER_MARK_US = 3120;
10static constexpr uint32_t HEADER_SPACE_US = 1560;
11static constexpr uint32_t BIT_MARK_US = 520;
12static constexpr uint32_t BIT_ONE_SPACE_US = 1066;
13static constexpr uint32_t BIT_ZERO_SPACE_US = 312;
14static constexpr uint32_t FOOTER_MARK_US = 520;
15static constexpr uint32_t FOOTER_SPACE_US = 10010;
20 dst->
item(HEADER_MARK_US, HEADER_SPACE_US);
22 for (uint8_t mask = 1; mask; mask <<= 1)
23 dst->
item(BIT_MARK_US, (
src[idx] & mask) ? BIT_ONE_SPACE_US : BIT_ZERO_SPACE_US);
25 dst->
item(FOOTER_MARK_US, FOOTER_SPACE_US);
30 if (!
src.expect_item(HEADER_MARK_US, HEADER_SPACE_US))
33 for (uint8_t mask = 1; mask; mask <<= 1) {
34 if (
src.expect_item(BIT_MARK_US, BIT_ONE_SPACE_US)) {
36 }
else if (!
src.expect_item(BIT_MARK_US, BIT_ZERO_SPACE_US)) {
42 if (!
src.expect_mark(FOOTER_MARK_US))
44 if (!
out.is_valid()) {
46 ESP_LOGV(TAG,
"Checksum mismatch: %s",
out.to_str(buf));
54 ESP_LOGI(TAG,
"Received PD-Pioneer: %s", data.to_str(buf));
static constexpr uint8_t FRAME_SIZE
static constexpr size_t TO_STR_BUFFER_SIZE
void dump(const PDPioneerData &data)
void encode(RemoteTransmitData *dst, const PDPioneerData &src)
optional< PDPioneerData > decode(RemoteReceiveData src)
void set_carrier_frequency(uint32_t carrier_frequency)
void item(uint32_t mark, uint32_t space)
void reserve(uint32_t len)
std::vector< uint8_t > & out
ESPHOME_LOG_TAG(TAG, "remote.abbwelcome")