#include <string>
#include "include/ngkh_i2c.hpp"
using std::string;
namespace ngkh {
// File-only variables
unsigned int I2cDev::_numDevices = 0;
// Constructors/Destructors
I2cDev::I2cDev(const string i2cDeviceFilePath, uint8_t devAddr)
{
if (I2cDev::_numDevices == 0) ngkh_i2cInitialize();
this->_i2cDev = ngkh_i2cDevAdd(i2cDeviceFilePath.c_str(), devAddr);
I2cDev::_numDevices++;
}
I2cDev::~I2cDev(void)
{
ngkh_i2cDevRemove(this->_i2cDev);
I2cDev::_numDevices--;
if (I2cDev::_numDevices == 0) ngkh_i2cDeinitialize();
}
// Methods
void I2cDev::write(uint8_t regAddr, uint8_t data)
{
ngkh_i2cWrite(this->_i2cDev, regAddr, data);
}
uint8_t I2cDev::read(uint8_t regAddr)
{
return ngkh_i2cRead(this->_i2cDev, regAddr);
}
} // End of "namespace ngkh"