8static const char *
const TAG =
"uart_transport";
11 PacketTransport::loop();
16 ESP_LOGW(TAG,
"Failed to read byte from UART");
19 if (
byte == FLAG_BYTE) {
24 ESP_LOGD(TAG,
"CRC mismatch, discarding packet");
41 if (
byte == CONTROL_BYTE) {
50 ESP_LOGD(TAG,
"Packet too large, discarding");
62 PacketTransport::update();
70 if (
byte == FLAG_BYTE ||
byte == CONTROL_BYTE) {
79 for (uint8_t
byte : buf) {
82 auto crc =
crc16(buf.data(), buf.size());
void process_(const std::vector< uint8_t > &data)
Process a received packet.
void write_byte(uint8_t data)
bool read_byte(uint8_t *data)
virtual int available()=0
std::vector< uint8_t > receive_buffer_
void send_packet(const std::vector< uint8_t > &buf) const override
void write_byte_(uint8_t byte) const
Write a byte to the UART bus.
Providing packet encoding functions for exchanging data with a remote host.
uint16_t crc16(const uint8_t *data, uint16_t len, uint16_t crc, uint16_t reverse_poly, bool refin, bool refout)
Calculate a CRC-16 checksum of data with size len.