11static constexpr size_t BQ76972_NUM_CELLS = 16;
12static constexpr size_t BQ76972_NUM_TEMPERATURES = 10;
16 void setup()
override;
29 bool read_block_(uint8_t start_register, uint8_t *data,
size_t len);
30 bool write_block_(uint8_t start_register,
const uint8_t *data,
size_t len);
31 bool read_words_(uint8_t start_register, uint16_t *data,
size_t num_words);
This class simplifies creating components that periodically check a state.
void set_crc_mode(bool crc_mode)
bool read_block_(uint8_t start_register, uint8_t *data, size_t len)
bool wait_for_subcommand_()
void dump_config() override
bool read_subcommand_(uint16_t subcommand, uint8_t *data, size_t len)
bool wait_for_cfgupdate_()
bool read_words_(uint8_t start_register, uint16_t *data, size_t num_words)
const LogString * write_config_(bool write_regs)
void set_temperature_sensor(sensor::Sensor *s, size_t index)
std::array< sensor::Sensor *, BQ76972_NUM_CELLS > cell_sensors_
bool write_subcommand_(uint16_t subcommand, const uint8_t *data, size_t len)
bool write_block_(uint8_t start_register, const uint8_t *data, size_t len)
void program_i2c_address(uint8_t address)
const LogString * configure_()
bool regs_disabled_(bool &out)
std::array< sensor::Sensor *, BQ76972_NUM_TEMPERATURES > temperature_sensors_
sensor::Sensor * stack_voltage_sensor_
void set_cell_sensor(sensor::Sensor *s, size_t index)
void set_reg_disable(bool reg_disable)
void set_stack_voltage_sensor(sensor::Sensor *s)
bool send_subcommand_(uint16_t subcommand)
This Class provides the methods to read/write bytes from/to an i2c device.
Base-class for all sensors.
std::vector< uint8_t > & out