Skip to content

Commit 97df40d

Browse files
Updated 16bit register support with functional code
All code is now corrected and has no errors
1 parent bdabd84 commit 97df40d

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

src/sfeTk/sfeTkIBus.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ class sfeTkIBus
150150
@retval int returns kSTkErrOk on success, or kSTkErrFail code
151151
152152
*/
153-
virtual sfeTkError_t read16BitRegisterRegion(uint16_t reg, uint8_t *data, size_t numBytes, size_t &readBytes) = 0;
153+
virtual sfeTkError_t read16BitRegisterRegion(uint16_t reg, uint8_t *data, size_t numBytes, size_t *readBytes = nullptr) = 0;
154154

155155
};
156156

src/sfeTkArdI2C.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ sfeTkError_t sfeTkArdI2C::readRegisterRegion(uint8_t devReg, uint8_t *data, size
301301
//
302302
// Returns the number of bytes read, < 0 is an error
303303
//
304-
sfeTkError_t sfeTkArdI2C::read16BitRegisterRegion(uint16_t devReg, uint8_t *data, size_t numBytes, size_t &readBytes)
304+
sfeTkError_t sfeTkArdI2C::read16BitRegisterRegion(uint16_t devReg, uint8_t *data, size_t numBytes, size_t *readBytes)
305305
{
306306

307307
// got port
@@ -312,7 +312,10 @@ sfeTkError_t sfeTkArdI2C::read16BitRegisterRegion(uint16_t devReg, uint8_t *data
312312
if (!data)
313313
return kSTkErrBusNullBuffer;
314314

315-
readBytes = 0;
315+
if(readBytes != nullptr)
316+
{
317+
readBytes = 0;
318+
}
316319

317320
uint16_t nOrig = numBytes; // original number of bytes.
318321
uint8_t nChunk;
@@ -354,7 +357,14 @@ sfeTkError_t sfeTkArdI2C::read16BitRegisterRegion(uint16_t devReg, uint8_t *data
354357

355358
} // end while
356359

357-
readBytes = nOrig - numBytes; // Bytes read.
360+
if(readBytes != nullptr)
361+
{
362+
*readBytes = nOrig - numBytes; // Bytes read.
358363

359-
return (readBytes == nOrig) ? kSTkErrOk : kSTkErrBusUnderRead; // Success
364+
return (*readBytes == nOrig) ? kSTkErrOk : kSTkErrBusUnderRead; // Success
365+
}
366+
else
367+
{
368+
return (numBytes == 0) ? kSTkErrOk : kSTkErrBusUnderRead; // Success
369+
}
360370
}

src/sfeTkArdI2C.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ class sfeTkArdI2C : public sfeTkII2C
201201
@retval int returns kSTkErrOk on success, or kSTkErrFail code
202202
203203
*/
204-
sfeTkError_t read16BitRegisterRegion(uint16_t reg, uint8_t *data, size_t numBytes, size_t &readBytes);
204+
sfeTkError_t read16BitRegisterRegion(uint16_t reg, uint8_t *data, size_t numBytes, size_t *readBytes = nullptr);
205205

206206
// Buffer size chunk getter/setter
207207
/*--------------------------------------------------------------------------

0 commit comments

Comments
 (0)