13static constexpr uint8_t START_BYTE = 0xfc;
14static constexpr uint8_t FRAME_OVERHEAD = 3;
19static constexpr uint16_t MESSAGE_TYPE_AQUA_SENSOR_DATA = 0xfc16;
22static constexpr size_t MAX_MESSAGE_SIZE = (MESSAGE_TYPE_AQUA_SENSOR_DATA & 0xff) + FRAME_OVERHEAD;
37#ifdef SYSTA_BUS_LISTENER_COUNT
45#ifdef SYSTA_BUS_LISTENER_COUNT
Minimal static vector - saves memory by avoiding std::vector overhead.
void dump_config() override
void register_listener(SystaBusListener *listener)
void handle_byte_(uint8_t c)
StaticVector< uint8_t, MAX_MESSAGE_SIZE > buffer_
StaticVector< SystaBusListener *, SYSTA_BUS_LISTENER_COUNT > listeners_
virtual void handle_message(std::span< const uint8_t > message)=0
const LogString * message
uint16_t get_message_type(std::span< const uint8_t > message)
constexpr uint16_t encode_uint16(uint8_t msb, uint8_t lsb)
Encode a 16-bit value given the most and least significant byte.