44 std::vector<uint8_t> data;
45 data.push_back(reg >> 8);
46 data.push_back(reg >> 0);
47 data.push_back(value);
48 return write(data.data(), data.size());
51 std::vector<uint8_t> data;
52 data.push_back(reg >> 8);
53 data.push_back(reg >> 0);
54 data.push_back(value >> 8);
55 data.push_back(value >> 0);
56 return write(data.data(), data.size());
59 std::vector<uint8_t> data;
60 data.push_back(reg >> 8);
61 data.push_back(reg >> 0);
62 data.push_back(value >> 24);
63 data.push_back(value >> 16);
64 data.push_back(value >> 8);
65 data.push_back(value >> 0);
66 return write(data.data(), data.size());
70 reg_data[0] = reg >> 8;
71 reg_data[1] = reg >> 0;
80 *value |= ((uint32_t) recv[0]) << 24;
81 *value |= ((uint32_t) recv[1]) << 16;
82 *value |= ((uint32_t) recv[2]) << 8;
83 *value |= ((uint32_t) recv[3]);
sensor::Sensor * current_a_sensor_
void set_voltage_sensor(sensor::Sensor *voltage_sensor)
void set_active_power_a_sensor(sensor::Sensor *active_power_a_sensor)
I2CRegister reg(uint8_t a_register)
ErrorCode read(uint8_t *data, size_t len)
void set_timeout(const std::string &name, uint32_t timeout, std::function< void()> &&f)
Set a timeout function with a unique name.
void set_active_power_b_sensor(sensor::Sensor *active_power_b_sensor)
This class simplifies creating components that periodically check a state.
i2c::ErrorCode ade_write_16_(uint16_t reg, uint16_t value)
sensor::Sensor * current_b_sensor_
InternalGPIOPin * irq_pin_
ErrorCode write(const uint8_t *data, uint8_t len, bool stop=true)
sensor::Sensor * active_power_b_sensor_
void dump_config() override
void set_irq_pin(InternalGPIOPin *irq_pin)
i2c::ErrorCode ade_write_8_(uint16_t reg, uint8_t value)
void set_current_a_sensor(sensor::Sensor *current_a_sensor)
Base-class for all sensors.
i2c::ErrorCode ade_write_32_(uint16_t reg, uint32_t value)
void set_current_b_sensor(sensor::Sensor *current_b_sensor)
sensor::Sensor * voltage_sensor_
sensor::Sensor * active_power_a_sensor_
i2c::ErrorCode ade_read_32_(uint16_t reg, uint32_t *value)