Newer
Older
libngkh_i2c / ngkh_i2c.cpp
Kohei Nagasu on 25 Feb 2019 771 bytes First commitment.
#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"