An improved version of mbed's I2C class.

Dependents:   acd52832_Humidity_Temp_Example BB acnSensa_LIS aconnoCellularGnss ... more

Revision:
4:db46d6bb60f0
Parent:
3:b9f3eef1fad9
Child:
5:54ba0e4f13ae
--- a/aconno_i2c.cpp	Tue Jan 02 15:46:59 2018 +0000
+++ b/aconno_i2c.cpp	Thu May 24 17:50:45 2018 +0200
@@ -9,56 +9,94 @@
 
 #include "aconno_i2c.h"
 
+/**
+ * [aconno_i2c::aconno_i2c description]
+ * @param i2c     [description]
+ * @param address [description]
+ */
 aconno_i2c::aconno_i2c(I2C *i2c, char address){
-    this->i2c = i2c;    
+    this->i2c = i2c;
     i2cAddress = address;
 }
 
+/**
+ * [aconno_i2c::writeToReg description]
+ * @param  regAddress [description]
+ * @param  data       [description]
+ * @param  len        [description]
+ * @return            [description]
+ */
 uint8_t aconno_i2c::writeToReg(char regAddress, char *data, int len){
     uint8_t success; /* 0 on success (ack), non-0 on failure (nack) */
     char dataToSend[2];
-    
+
     dataToSend[0] = regAddress;
     dataToSend[1] = *data;
     success = i2c->write(i2cAddress & 0xFE, dataToSend, len + 1); // R/W bit is set low for a write command
     return success;
 }
 
+/**
+ * [aconno_i2c::readFromReg description]
+ * @param  regAddress [description]
+ * @param  dataBuffer [description]
+ * @param  len        [description]
+ * @return            [description]
+ */
 uint8_t aconno_i2c::readFromReg(char regAddress, char *dataBuffer, int len){
     uint8_t success;    /* 0 on success (ack), non-0 on failure (nack) */
     char regAddr = regAddress;
-    
+
     i2c->write(i2cAddress & 0xFE, &regAddr, 1);               // R/W bit is set low for a write command
     success = i2c->read(i2cAddress | 0x01, dataBuffer, len);     // R/W bit is set high for a read command
     return success;
 }
 
-/* 
- *  This method is used with sendCommand(char *command, uint8_t len) method when delay between command
- *  and response from the slave is required
+/**
+ * This method is used with sendCommand(char *command, uint8_t len) method when delay between command
+ * and response from the slave is required
+ * @param  dataBuffer [description]
+ * @param  len        [description]
+ * @return            [description]
  */
 uint8_t aconno_i2c::readBus(char *dataBuffer, int len){
     uint8_t success;    /* 0 on success (ack), non-0 on failure (nack) */
-    
+
     success = i2c->read(i2cAddress | 0x01, dataBuffer, len);     // R/W bit is set high for a read command
     return success;
 }
 
-/*
- *  This method is used to send commands to I2C Device. 
+/**
+ *  This method is used to send commands to I2C Device.
  *  Ex. send 2B command to Si7006 to get Device ID.
+ * @param  command     [description]
+ * @param  len         [description]
+ * @param  response    [description]
+ * @param  responseLen [description]
+ * @param  repeated    [description]
+ * @return 0 on success (ack), non-0 on failure (nack)
  */
-uint8_t aconno_i2c::sendCommand(char *command, uint8_t len, char *response, uint8_t responseLen){
+uint8_t aconno_i2c::sendCommand(char *command, uint8_t len, char *response,
+    uint8_t responseLen, bool repeated)
+    {
     uint8_t success;    /* 0 on success (ack), non-0 on failure (nack) */
-    
-    i2c->write(i2cAddress & 0xFE, command, len);               // R/W bit is set low for a write command
-    success = i2c->read(i2cAddress | 0x01, response, responseLen);     // R/W bit is set high for a read command
+
+    // R/W bit is set low for a write command
+    i2c->write(i2cAddress & 0xFE, command, len, repeated);
+    // R/W bit is set high for a read command
+    success = i2c->read(i2cAddress | 0x01, response, responseLen);
     return success;
 }
 
+/**
+ * [aconno_i2c::sendCommand description]
+ * @param  command [description]
+ * @param  len     [description]
+ * @return         [description]
+ */
 uint8_t aconno_i2c::sendCommand(char *command, uint8_t len){
     uint8_t success;    /* 0 on success (ack), non-0 on failure (nack) */
-    
+
     success = i2c->write(i2cAddress & 0xFE, command, len);
     return success;
 }