#ifndef STA_I2C_HPP #define STA_I2C_HPP #include #include namespace sta { class I2cDevice { protected: uint16_t address; Mutex* mutex; bool master; public: I2cDevice(uint16_t address_10bit, Mutex* mutex=nullptr, bool master=false); virtual bool transmit(uint8_t* data, uint16_t size, bool blocking=true) = 0; virtual bool receive(uint8_t* data, uint16_t size, bool blocking=true) = 0; virtual void acquire(); virtual void release(); }; } #endif // #ifdef STA_I2C_HPP