Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 16a9cf7

Browse files
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>
1 parent b1497fb commit 16a9cf7

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

‎libraries/Wire/src/Wire.cpp‎

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -447,32 +447,40 @@ void TwoWire::flush(void)
447447

448448
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop)
449449
{
450-
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), static_cast<bool>(sendStop));
450+
return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), static_cast<bool>(sendStop));
451451
}
452452

453453
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity, uint8_t sendStop)
454454
{
455-
return requestFrom(address, static_cast<size_t>(quantity), static_cast<bool>(sendStop));
455+
return requestFrom(address, static_cast<uint8_t>(quantity), static_cast<bool>(sendStop));
456+
}
457+
458+
/* Added to match the Arduino function definition: https://github.com/arduino/ArduinoCore-API/blob/173e8eadced2ad32eeb93bcbd5c49f8d6a055ea6/api/HardwareI2C.h#L39
459+
* See: https://github.com/arduino-libraries/ArduinoECCX08/issues/25
460+
*/
461+
size_t TwoWire::requestFrom(uint8_t address, size_t len, bool stopBit)
462+
{
463+
return requestFrom((uint16_t)address, (uint8_t)len, stopBit);
456464
}
457465

458466
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity)
459467
{
460-
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), true);
468+
return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), true);
461469
}
462470

463471
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity)
464472
{
465-
return requestFrom(address, static_cast<size_t>(quantity), true);
473+
return requestFrom(address, static_cast<uint8_t>(quantity), true);
466474
}
467475

468476
uint8_t TwoWire::requestFrom(int address, int quantity)
469477
{
470-
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), true);
478+
return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), true);
471479
}
472480

473481
uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop)
474482
{
475-
return static_cast<uint8_t>(requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(quantity), static_cast<bool>(sendStop)));
483+
return static_cast<uint8_t>(requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), static_cast<bool>(sendStop)));
476484
}
477485

478486
void TwoWire::beginTransmission(int address)

‎libraries/Wire/src/Wire.h‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ class TwoWire: public Stream
9595

9696
uint8_t requestFrom(uint16_t address, uint8_t size, bool sendStop);
9797
uint8_t requestFrom(uint16_t address, uint8_t size, uint8_t sendStop);
98+
size_t requestFrom(uint8_t address, size_t len, bool stopBit);
9899
uint8_t requestFrom(uint16_t address, uint8_t size);
99100
uint8_t requestFrom(uint8_t address, uint8_t size, uint8_t sendStop);
100101
uint8_t requestFrom(uint8_t address, uint8_t size);

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /