8class I2CInterface :
public Interface{
10 I2CInterface() =
default;
12 Interface::Type getType()
const override {
13 return Interface::BUS;
16 void setI2CCore(
I2CCore* core){i2cCore = core;}
17 I2CCore* getI2CCore(){
return i2cCore;}
20 if(!i2cCore->begin()){
21 ERROR_PRINTLN(
"[I2CInterface] ERROR: I2C initialization failed.");
27 void beginTransmission(uint16_t address){
28 i2cCore->beginTransmission((uint8_t)address);
30 void beginTransmission(uint8_t address){
31 i2cCore->beginTransmission(address);
34 void beginTransmission(
int address){
35 i2cCore->beginTransmission((uint8_t)address);
38 uint8_t endTransmission(
bool sendStop){
39 return i2cCore->endTransmission();
41 uint8_t endTransmission(
void){
42 return i2cCore->endTransmission();
45 size_t write(uint8_t data){
46 return i2cCore->write(data);
48 size_t write(
const uint8_t* data,
size_t length){
49 return i2cCore->write(data, length);
52 return i2cCore->available();
55 return i2cCore->read();
58 return i2cCore->peek();
64 inline size_t write(
const char * s)
66 return write((uint8_t*) s, strlen(s));
68 inline size_t write(
unsigned long n)
70 return write((uint8_t)n);
72 inline size_t write(
long n)
74 return write((uint8_t)n);
76 inline size_t write(
unsigned int n)
78 return write((uint8_t)n);
80 inline size_t write(
int n)
82 return write((uint8_t)n);