9static const char *
const TAG =
"systa_bus";
13static bool checksum(std::span<const uint8_t> data) {
15 for (uint8_t i : data)
36 if (message_type != MESSAGE_TYPE_AQUA_SENSOR_DATA) {
37 ESP_LOGV(TAG,
"Unknown message type 0x%04x", message_type);
45 if (this->
buffer_.
size() < this->buffer_[1] + FRAME_OVERHEAD)
48 ESP_LOGW(TAG,
"Checksum failed");
52#ifdef SYSTA_BUS_LISTENER_COUNT
54 listener->handle_message(this->
buffer_);
62 std::array<uint8_t, MAX_MESSAGE_SIZE> failed;
64 std::copy(this->
buffer_.
begin(), this->buffer_.end(), failed.begin());
66 for (
size_t i = 1; i <
count; i++)
void push_back(const T &value)
void dump_config() override
void handle_byte_(uint8_t c)
StaticVector< uint8_t, MAX_MESSAGE_SIZE > buffer_
StaticVector< SystaBusListener *, SYSTA_BUS_LISTENER_COUNT > listeners_
bool read_byte(uint8_t *data)
uint16_t get_message_type(std::span< const uint8_t > message)