Add another Wire requestFrom function signature (#5768)

* Re-add with clean master

* Address @me-no-dev's comments

* static_cast<size_t> to static_cast<uint8_t>
This commit is contained in:
Anthony Elder
2021-11-08 12:29:04 +00:00
committed by GitHub
parent b1497fb257
commit 16a9cf781f
2 changed files with 15 additions and 6 deletions

View File

@ -447,32 +447,40 @@ void TwoWire::flush(void)
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop) uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop)
{ {
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), static_cast<bool>(sendStop)); return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), static_cast<bool>(sendStop));
} }
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity, uint8_t sendStop) uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity, uint8_t sendStop)
{ {
return requestFrom(address, static_cast<size_t>(quantity), static_cast<bool>(sendStop)); return requestFrom(address, static_cast<uint8_t>(quantity), static_cast<bool>(sendStop));
}
/* Added to match the Arduino function definition: https://github.com/arduino/ArduinoCore-API/blob/173e8eadced2ad32eeb93bcbd5c49f8d6a055ea6/api/HardwareI2C.h#L39
* See: https://github.com/arduino-libraries/ArduinoECCX08/issues/25
*/
size_t TwoWire::requestFrom(uint8_t address, size_t len, bool stopBit)
{
return requestFrom((uint16_t)address, (uint8_t)len, stopBit);
} }
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity) uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity)
{ {
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), true); return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), true);
} }
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity) uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity)
{ {
return requestFrom(address, static_cast<size_t>(quantity), true); return requestFrom(address, static_cast<uint8_t>(quantity), true);
} }
uint8_t TwoWire::requestFrom(int address, int quantity) uint8_t TwoWire::requestFrom(int address, int quantity)
{ {
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), true); return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), true);
} }
uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop) uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop)
{ {
return static_cast<uint8_t>(requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), static_cast<bool>(sendStop))); return static_cast<uint8_t>(requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), static_cast<bool>(sendStop)));
} }
void TwoWire::beginTransmission(int address) void TwoWire::beginTransmission(int address)

View File

@ -95,6 +95,7 @@ public:
uint8_t requestFrom(uint16_t address, uint8_t size, bool sendStop); uint8_t requestFrom(uint16_t address, uint8_t size, bool sendStop);
uint8_t requestFrom(uint16_t address, uint8_t size, uint8_t sendStop); uint8_t requestFrom(uint16_t address, uint8_t size, uint8_t sendStop);
size_t requestFrom(uint8_t address, size_t len, bool stopBit);
uint8_t requestFrom(uint16_t address, uint8_t size); uint8_t requestFrom(uint16_t address, uint8_t size);
uint8_t requestFrom(uint8_t address, uint8_t size, uint8_t sendStop); uint8_t requestFrom(uint8_t address, uint8_t size, uint8_t sendStop);
uint8_t requestFrom(uint8_t address, uint8_t size); uint8_t requestFrom(uint8_t address, uint8_t size);