int read(char * data, size_t length) {
return mraa_i2c_read(m_i2c, (uint8_t*) data, (int) length);
}
+ /**
+ * Read length bytes from the bus, this function will allocate memory
+ * and will require you to free the returned pointer
+ *
+ * @param length Size of read to make
+ * @return pointer to read data which must be freed
+ */
+ uint8_t* read(size_t length) {
+ uint8_t* data = (uint8_t*) malloc(sizeof(uint8_t) * length);
+ mraa_i2c_read(m_i2c, data, (int) length);
+ return data;
+ }
/**
* Write one byte to the bus
*