working clean pImpl idom for i2c

master
polymurph 4 years ago
parent b49f205284
commit 1e7e7fc168

@ -57,18 +57,40 @@ class I2C::I2C_impl
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);
uint8_t len)
{
uint8_t i = 0;
std::cout << "dummy I2C readBuffer()" << std::endl;
std::cout << "address: " << static_cast<int>(address) << std::endl;
std::cout << "reg : " << static_cast<int>(reg) << std::endl;
std::cout << "filling array..." << std::endl;
for(i = 0; i < len; i++) {
data[i] = i;
}
std::cout << "...done!" << std::endl;
}
void writeBuffer(const uint8_t& address,
const uint8_t& reg,
const uint8_t data[],
uint8_t len);
uint8_t len)
{
uint8_t i = 0;
#endif
std::cout << "dummy I2C writeBuffer()" << std::endl;
std::cout << "address: " << static_cast<int>(address) << std::endl;
std::cout << "reg : " << static_cast<int>(reg) << std::endl;
std::cout << "writing array..." << std::endl;
for(i = 0; i < len; i++) {
std::cout << static_cast<int>(data[i]) << std::endl;
}
}
};
@ -120,15 +142,25 @@ void I2C::writeWord(const uint8_t& address,
reg,
word);
}
#if 0
void readBuffer(const uint8_t& address,
void I2C::readBuffer(const uint8_t& address,
const uint8_t& reg,
uint8_t data[],
uint8_t len);
uint8_t len)
{
impl->readBuffer(address,
reg,
data,
len);
}
void writeBuffer(const uint8_t& address,
void I2C::writeBuffer(const uint8_t& address,
const uint8_t& reg,
const uint8_t data[],
uint8_t len);
#endif
uint8_t len)
{
impl->writeBuffer(address,
reg,
data,
len);
}

@ -28,7 +28,7 @@ class I2C
void writeWord(const uint8_t& address,
const uint8_t& reg,
const uint16_t& word);
#if 0
void readBuffer(const uint8_t& address,
const uint8_t& reg,
uint8_t data[],
@ -38,7 +38,6 @@ class I2C
const uint8_t& reg,
const uint8_t data[],
uint8_t len);
#endif
private:
class I2C_impl;//< forward declaration

@ -1,18 +1,32 @@
#include <iostream>
#include "ii2c.hpp"
#include <iostream>
#include <array>
int main(void)
{
int i = 0;
std::array<uint8_t,3> data = {0, 0, 0};
I2C i2c;
std::cout << static_cast<int>(i2c.readByte(100,50)) << std::endl;
i2c.writeByte(20,30,40);
i2c.writeByte(20, 30, 40);
std::cout<< static_cast<int>(i2c.readWord(23,24)) << std::endl;
i2c.writeWord(21,31,1024);
i2c.writeWord(21, 31, 1024);
i2c.readBuffer(31, 34, &data[0], data.size());
std::cout << "received data:"<< std::endl;
for(i = 0; i < data.size(); i++) {
std::cout << static_cast<int>(data[i]) << std::endl;
}
i2c.writeBuffer(77, 88, &data[0], data.size());
return 0;
}

Binary file not shown.
Loading…
Cancel
Save