8static constexpr uint8_t NBITS = 8;
9static constexpr uint32_t BIT_ONE_HIGH_US = 3000;
10static constexpr uint32_t BIT_ONE_LOW_US = 1000;
11static constexpr uint32_t BIT_ZERO_HIGH_US = BIT_ONE_LOW_US;
12static constexpr uint32_t BIT_ZERO_LOW_US = BIT_ONE_HIGH_US;
18 for (
uint32_t mask = 1UL << (NBITS - 1); mask != 0; mask >>= 1) {
19 if (data.data & mask) {
20 dst->
item(BIT_ONE_HIGH_US, BIT_ONE_LOW_US);
22 dst->
item(BIT_ZERO_HIGH_US, BIT_ZERO_LOW_US);
29 for (uint8_t i = 0; i < (NBITS - 1); i++) {
31 if (
src.expect_item(BIT_ONE_HIGH_US, BIT_ONE_LOW_US)) {
33 }
else if (
src.expect_item(BIT_ZERO_HIGH_US, BIT_ZERO_LOW_US)) {
42 if (
src.expect_mark(BIT_ONE_HIGH_US)) {
44 }
else if (
src.expect_mark(BIT_ZERO_HIGH_US)) {
void set_carrier_frequency(uint32_t carrier_frequency)
void item(uint32_t mark, uint32_t space)
void reserve(uint32_t len)
void dump(const RoombaData &data)
optional< RoombaData > decode(RemoteReceiveData src)
void encode(RemoteTransmitData *dst, const RoombaData &data)
std::vector< uint8_t > & out
ESPHOME_LOG_TAG(TAG, "remote.abbwelcome")