10 _i2cStatus = I2C_NOT_STARTED;
20 virtual bool begin() =0;
24 virtual void setPins(int8_t sdaPin, int8_t sclPin) { _sdaPin = sdaPin; _sclPin = sclPin; };
25 virtual void setBufferSize(uint32_t bufferSize) { _bufferSize = bufferSize; };
26 virtual void setI2CNum(int8_t i2c_num) { _i2c_num = i2c_num; };
27 virtual void setFrequency(uint32_t frequency) { _frequency = frequency; };
28 virtual uint32_t setMaxFrequency(uint32_t frequency) {
29 if(frequency < _frequency) {
30 _frequency = frequency;
31 INFO_PRINTLN(
"[I2CCore] Max allowed I2C frequency set to " + String(_frequency) +
" Hz");
35 virtual void beginTransmission(uint8_t address)=0;
36 virtual uint8_t endTransmission()=0;
37 virtual size_t write(uint8_t data)=0;
38 virtual size_t write(
const uint8_t *data,
size_t quantity)=0;
39 virtual size_t requestFrom(uint8_t address,
size_t len,
bool stopBit)=0;
40 virtual int available()=0;
42 virtual int peek(){
return -1; };
43 virtual void flush() = 0;
45 virtual I2CStatus getI2CStatus()
const {
return _i2cStatus; }
46 static constexpr uint32_t I2C_DEFAULT_FREQUENCY = 1700000;
49 static constexpr uint16_t I2C_DEFAULT_BUFFER_LENGTH = 32;
53 uint32_t _frequency= I2C_DEFAULT_FREQUENCY;
55 uint32_t _bufferSize= I2C_DEFAULT_BUFFER_LENGTH;
56 I2CStatus _i2cStatus = I2C_NOT_STARTED;