19 dst->
reserve(4 + data.nbits * 2u);
21 dst->
item(HEADER_HIGH_US, HEADER_LOW_US);
23 for (uint8_t bit = data.nbits; bit > 0; bit--) {
24 if ((data.data >> (bit - 1)) & 1) {
25 dst->
item(BIT_HIGH_US, BIT_ONE_LOW_US);
27 dst->
item(BIT_HIGH_US, BIT_ZERO_LOW_US);
31 dst->
item(FOOTER_HIGH_US, FOOTER_LOW_US);
38 if (!src.
expect_item(HEADER_HIGH_US, HEADER_LOW_US))
41 for (out.nbits = 0; out.nbits < 64; out.nbits++) {
43 out.data = (out.data << 1) | 1;
44 }
else if (src.
expect_item(BIT_HIGH_US, BIT_ZERO_LOW_US)) {
45 out.data = (out.data << 1) | 0;
46 }
else if (out.nbits >= 31) {