diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..eba1110 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..737bcf8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# VSCode directories +.vscode + diff --git a/src/sfeTkArdI2C.cpp b/src/sfeTkArdI2C.cpp index 34127c1..880afb4 100644 --- a/src/sfeTkArdI2C.cpp +++ b/src/sfeTkArdI2C.cpp @@ -220,6 +220,10 @@ sfeTkError_t sfeTkArdI2C::readRegisterRegion(uint8_t devReg, uint8_t *data, size if (!_i2cPort) return kSTkErrBusNotInit; + // Buffer valid? + if (!data) + return kSTkErrBusNullBuffer; + readBytes = 0; uint16_t nOrig = numBytes; // original number of bytes. @@ -261,7 +265,7 @@ sfeTkError_t sfeTkArdI2C::readRegisterRegion(uint8_t devReg, uint8_t *data, size } // end while - readBytes = nOrig - numBytes; + readBytes = nOrig - numBytes; // Bytes read. - return kSTkErrOk; + return (readBytes == nOrig) ? kSTkErrOk : kSTkErrBusUnderRead; // Success } diff --git a/src/sfeTkArdI2C.h b/src/sfeTkArdI2C.h index 85a74da..69e488d 100644 --- a/src/sfeTkArdI2C.h +++ b/src/sfeTkArdI2C.h @@ -168,11 +168,12 @@ class sfeTkArdI2C : public sfeTkII2C @note This method is virtual to allow it to be overridden to support a device that requires a unique impl @param devReg The device's register's address. - @param data Data to write. - @param numBytes - length of data + @param data Data being read. + @param numBytes Number of bytes to read. @param[out] readBytes - Number of bytes read - @retval kStkErrOk on success + + @retval kSTkErrOk on success */ sfeTkError_t readRegisterRegion(uint8_t devReg, uint8_t *data, size_t numBytes, size_t &readBytes);