You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KED/ked/oldDevFiles/temp/implemented_pImpl_for_I2C/ii2c.hpp

50 lines
943 B

#ifndef _II2C_HPP_
#define _II2C_HPP_
#include <memory>
#include <stdint.h>
/**
* Interface class for i2c
*
* It's basedon the pointer to implementation idom (pImpl idom).
*/
class I2C
{
public:
I2C();
~I2C();
uint8_t readByte(const uint8_t& address,
const uint8_t& reg);
void writeByte(const uint8_t& address,
const uint8_t& reg,
const uint8_t& byte);
uint16_t readWord(const uint8_t& address,
const uint8_t& reg);
void writeWord(const uint8_t& address,
const uint8_t& reg,
const uint16_t& word);
void readBuffer(const uint8_t& address,
const uint8_t& reg,
uint8_t data[],
uint8_t len);
void writeBuffer(const uint8_t& address,
const uint8_t& reg,
const uint8_t data[],
uint8_t len);
private:
class I2C_impl;//< forward declaration
std::unique_ptr<I2C_impl> impl; // pointer to implementation
};
#endif // _II2C_HPP_