Private
Public Access
2
0

i2c.hpp: reorder & style header

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Brendan Le Foll
2014-11-17 16:15:11 +00:00
parent 72ff035301
commit 1133b32b5a

View File

@@ -56,9 +56,10 @@ class I2c {
m_i2c = mraa_i2c_init(bus);
}
if (m_i2c == NULL) {
throw std::invalid_argument("Invalid i2c bus");
throw std::invalid_argument("Invalid i2c bus");
}
}
/**
* Closes the I2c Bus used. This does not guarrantee the bus will not
* be usable by anyone else or communicates this disconnect to any
@@ -67,6 +68,7 @@ class I2c {
~I2c() {
mraa_i2c_stop(m_i2c);
}
/**
* Sets the i2c Frequency for communication. Your board may not support
* the set frequency. Anyone can change this at any time and this will
@@ -78,6 +80,7 @@ class I2c {
mraa_result_t frequency(int hz) {
return mraa_i2c_frequency(m_i2c, hz);
}
/**
* Set the slave to talk to, typically called before every read/write
* operation
@@ -88,6 +91,7 @@ class I2c {
mraa_result_t address(uint8_t address) {
return mraa_i2c_address(m_i2c, address);
}
/**
* Read exactly one byte from the bus
*
@@ -96,6 +100,7 @@ class I2c {
uint8_t read() {
return (uint8_t) mraa_i2c_read_byte(m_i2c);
}
/**
* Read mutliple bytes from the bus
*
@@ -106,13 +111,14 @@ class I2c {
uint8_t read(char *data, size_t length) {
return mraa_i2c_read(m_i2c, (uint8_t*) data, (int) length);
}
/**
* Read length bytes from the bus, and return as a std::string note
* that this is not a null terminated string
*
* @param length Size of read to make
* @return pointer to std::string
*/
/**
* Read length bytes from the bus, and return as a std::string note
* that this is not a null terminated string
*
* @param length Size of read to make
* @return pointer to std::string
*/
std::string read(size_t length) {
char* data = (char*) malloc(sizeof(char) * length);
mraa_i2c_read(m_i2c, (uint8_t*) data, (int) length);
@@ -120,6 +126,7 @@ class I2c {
free(data);
return str;
}
/**
* Write one byte to the bus
*
@@ -131,18 +138,6 @@ class I2c {
return mraa_i2c_write(m_i2c, (const unsigned char *)data, (int) length);
}
/**
* Write to an i2c register
*
* @param reg Register to write to
* @param data Value to write to register
* @return Result of operation
*/
mraa_result_t writeReg(uint8_t reg, uint8_t data) {
const uint8_t buf[2] = {reg, data};
return mraa_i2c_write(m_i2c, buf, 2);
}
/**
* Read an i2c register
*
@@ -162,6 +157,18 @@ class I2c {
mraa_result_t write(uint8_t data) {
return mraa_i2c_write_byte(m_i2c, data);
}
/**
* Write to an i2c register
*
* @param reg Register to write to
* @param data Value to write to register
* @return Result of operation
*/
mraa_result_t writeReg(uint8_t reg, uint8_t data) {
const uint8_t buf[2] = {reg, data};
return mraa_i2c_write(m_i2c, buf, 2);
}
private:
mraa_i2c_context m_i2c;
};