23 virtual void run_electrical_update() = 0;
26 virtual uint8_t get_i2c_address()
const = 0;
29 virtual int i2c_write_data(
const uint8_t registerAddress,
const uint8_t dataSize,
const uint8_t* dataBuffer)
31 if (_registerMap[registerAddress] !=
nullptr)
33 uint16_t data = dataBuffer[0];
35 data |= (dataBuffer[1] << 8);
36 return _registerMap[registerAddress]->write(data);
44 virtual int i2c_read_data(
const uint8_t registerAddress,
const uint8_t dataSize, uint8_t* dataBuffer)
46 if (_registerMap[registerAddress] !=
nullptr)
48 const uint16_t d = _registerMap[registerAddress]->read();
50 dataBuffer[0] = d & 0xff;
52 dataBuffer[1] = (d >> 8) & 0xff;
61 virtual int i2c_xfer_data(
const int outSize,
const uint8_t* out,
const int inSize, uint8_t* in)
72 virtual uint16_t read() {
return _data; }
73 virtual int write(uint16_t data)
81 std::unique_ptr<Register> _registerMap[255];
Simulator dedicated namespace.
Definition: default_simulation.h:8