From 87fc54bc1b2f41c5474ca1ff2644d698c35163aa Mon Sep 17 00:00:00 2001 From: Alexander Entinger Date: Thu, 10 Dec 2020 06:34:27 +0100 Subject: [PATCH] Changing return type of 'requestFrom' from uint8_t to size_t allows the function to return the correct amount of bytes read (since internally it's already a size_t which is downcast to a uint8_t upon returning it. --- libraries/Wire/src/Wire.cpp | 8 ++++---- libraries/Wire/src/Wire.h | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libraries/Wire/src/Wire.cpp b/libraries/Wire/src/Wire.cpp index febee50c..cdec85cf 100644 --- a/libraries/Wire/src/Wire.cpp +++ b/libraries/Wire/src/Wire.cpp @@ -95,7 +95,7 @@ void TwoWire::setClock(uint32_t clock) TWI_MasterSetBaud(clock); } -uint8_t TwoWire::requestFrom(uint8_t address, size_t quantity, bool sendStop) { +size_t TwoWire::requestFrom(uint8_t address, size_t quantity, bool sendStop) { if(quantity > BUFFER_LENGTH){ quantity = BUFFER_LENGTH; } @@ -109,17 +109,17 @@ uint8_t TwoWire::requestFrom(uint8_t address, size_t quantity, bool sendStop) { return bytes_read; } -uint8_t TwoWire::requestFrom(uint8_t address, size_t quantity) +size_t TwoWire::requestFrom(uint8_t address, size_t quantity) { return requestFrom(address, quantity, true); } -uint8_t TwoWire::requestFrom(int address, int quantity) +size_t TwoWire::requestFrom(int address, int quantity) { return requestFrom((uint8_t)address, (size_t)quantity, true); } -uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop) +size_t TwoWire::requestFrom(int address, int quantity, int sendStop) { return requestFrom((uint8_t)address, (size_t)quantity, (bool)sendStop); } diff --git a/libraries/Wire/src/Wire.h b/libraries/Wire/src/Wire.h index cee8752e..3871e350 100644 --- a/libraries/Wire/src/Wire.h +++ b/libraries/Wire/src/Wire.h @@ -58,10 +58,10 @@ class TwoWire : public HardwareI2C void beginTransmission(int); uint8_t endTransmission(void); uint8_t endTransmission(bool); - uint8_t requestFrom(uint8_t, size_t); - uint8_t requestFrom(uint8_t, size_t, bool); - uint8_t requestFrom(int, int); - uint8_t requestFrom(int, int, int); + size_t requestFrom(uint8_t, size_t); + size_t requestFrom(uint8_t, size_t, bool); + size_t requestFrom(int, int); + size_t requestFrom(int, int, int); virtual size_t write(uint8_t); virtual size_t write(const uint8_t *, size_t); virtual int available(void);