#ifndef STA_CORE_I2C_HPP #define STA_CORE_I2C_HPP #include #include namespace sta { /** * @brief Interface class for %SPI Hardware. */ class I2cDevice { public: I2cDevice(uint16_t address_10bit, Mutex* mutex=nullptr, bool master=false, bool blocking=true); virtual bool transmit(uint8_t* data, uint16_t size) = 0; virtual bool receive(uint8_t* data, uint16_t size) = 0; virtual void acquire(); virtual void release(); protected: uint16_t address; Mutex* mutex; bool master; bool blocking; }; } // namespace sta #endif // STA_CORE_I2C_HPP