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.

135 lines
2.7 KiB

#include "ii2c.hpp"
#include <memory>
#include <iostream>
//
// implementation
//
/**
* dummy implementation version
*/
class I2C::I2C_impl
{
public:
I2C_impl()
{
std::cout << "dummy I2C Ctor" << std::endl;
}
uint8_t readByte(const uint8_t& address,
const uint8_t& reg)
{
std::cout << "dummy I2C readByte()" << std::endl;
std::cout << "address: " << static_cast<int>(address) << std::endl;
std::cout << "reg : " << static_cast<int>(reg) << std::endl;
std::cout << "returning 0" << std::endl;
return 0;
}
void writeByte(const uint8_t& address,
const uint8_t& reg,
const uint8_t& byte)
{
std::cout << "dummy I2C writeByte()" << std::endl;
std::cout << "address: " << static_cast<int>(address) << std::endl;
std::cout << "reg : " << static_cast<int>(reg) << std::endl;
std::cout << "byte : " << static_cast<int>(byte) << std::endl;
}
uint16_t readWord(const uint8_t& address,
const uint8_t& reg)
{
std::cout << "dummy I2C readWord()" << std::endl;
std::cout << "address: " << static_cast<int>(address) << std::endl;
std::cout << "reg : " << static_cast<int>(reg) << std::endl;
std::cout << "returning 0" << std::endl;
return 0;
}
void writeWord(const uint8_t& address,
const uint8_t& reg,
const uint16_t& word)
{
std::cout << "dummy I2C writeWord()" << std::endl;
std::cout << "address: " << static_cast<int>(address) << std::endl;
std::cout << "reg : " << static_cast<int>(reg) << std::endl;
std::cout << "word : " << static_cast<int>(word) << std::endl;
}
#if 0
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);
#endif
};
//
// information relay
//
I2C::I2C() :
impl{std::make_unique<I2C_impl>()}
{
}
I2C::~I2C()
{
}
uint8_t I2C::readByte(const uint8_t& address,
const uint8_t& reg)
{
return impl->readByte(address,
reg);
}
void I2C::writeByte(const uint8_t& address,
const uint8_t& reg,
const uint8_t& word)
{
impl->writeByte(address,
reg,
word);
}
uint16_t I2C::readWord(const uint8_t& address,
const uint8_t& reg)
{
return impl->readWord(address,
reg);
}
void I2C::writeWord(const uint8_t& address,
const uint8_t& reg,
const uint16_t& word)
{
impl->writeWord(address,
reg,
word);
}
#if 0
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);
#endif