#ifndef STA_CORE_ARDUINO_I2C_HPP #define STA_CORE_ARDUINO_I2C_HPP #include #ifdef STA_PLATFORM_ARDUINO #include #include #include namespace sta { class ArduinoI2C : public I2C { public: #ifdef STA_PLATFORM_ARDUINO_DEVICE_ESP32 ArduinoI2C(Mutex * mutex = nullptr, uint8_t sda = STA_ESP32_SDA_DEFAULT, uint8_t scl = STA_ESP32_SCL_DEFAULT, uint32_t frequency = 0U); #else ArduinoI2C(Mutex * mutex = nullptr); #endif // STA_PLATFORM_ARDUINO_DEVICE_ESP32 void transfer(uint8_t value) override; void transfer16(uint16_t value) override; void transfer(const uint8_t * buffer, size_t size) override; void receive(uint8_t * buffer, size_t size) override; void fill(uint8_t value, size_t count) override; }; class ArduinoI2CDevice : public I2CDevice { public: ArduinoI2CDevice(I2C * intf, uint8_t address, bool master=true, bool blocking=true); }; } // namespace sta #endif // STA_PLATFORM_ARDUINO #endif // STA_CORE_ARDUINO_I2C_HPP