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

Appearance settings

Commit 7bb30b3

Browse filesBrowse files
Maelstrom96flaviutme-no-dev
authored
Refactoring TwoWire::requestFrom() headers in Wire.cpp (espressif#5935)
* Refactoring function headers Changing the header so the main TwoWire::requestFrom() definition uses a `size_t` instead of a `uint8_t`, removing the 255 bytes limit on I2C requests. Co-authored-by: Flaviu Tamas <me@flaviutamas.com> Co-authored-by: Me No Dev <me-no-dev@users.noreply.github.com>
1 parent 4b638de commit 7bb30b3
Copy full SHA for 7bb30b3

File tree

Expand file treeCollapse file tree

2 files changed

+21
-15
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+21
-15
lines changed

‎libraries/Wire/src/Wire.cpp

Copy file name to clipboardExpand all lines: libraries/Wire/src/Wire.cpp
+20-15Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ uint8_t TwoWire::endTransmission(bool sendStop)
354354
return 4;
355355
}
356356

357-
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t size, bool sendStop)
357+
size_t TwoWire::requestFrom(uint16_t address, size_t size, bool sendStop)
358358
{
359359
if(is_slave){
360360
log_e("Bus is in Slave Mode");
@@ -445,42 +445,47 @@ void TwoWire::flush(void)
445445
//i2cFlush(num); // cleanup
446446
}
447447

448-
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity, uint8_t sendStop)
448+
size_t TwoWire::requestFrom(uint8_t address, size_t len, bool sendStop)
449449
{
450-
return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), static_cast<bool>(sendStop));
450+
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(len), static_cast<bool>(sendStop));
451+
}
452+
453+
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t len, uint8_t sendStop)
454+
{
455+
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(len), static_cast<bool>(sendStop));
451456
}
452457

453-
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity, uint8_t sendStop)
458+
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t len, uint8_t sendStop)
454459
{
455-
return requestFrom(address, static_cast<uint8_t>(quantity), static_cast<bool>(sendStop));
460+
return requestFrom(address, static_cast<size_t>(len), static_cast<bool>(sendStop));
456461
}
457462

458463
/* Added to match the Arduino function definition: https://github.com/arduino/ArduinoCore-API/blob/173e8eadced2ad32eeb93bcbd5c49f8d6a055ea6/api/HardwareI2C.h#L39
459464
* See: https://github.com/arduino-libraries/ArduinoECCX08/issues/25
460465
*/
461-
size_t TwoWire::requestFrom(uint8_t address, size_t len, bool stopBit)
466+
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t len, bool stopBit)
462467
{
463-
return requestFrom((uint16_t)address, (uint8_t)len, stopBit);
468+
return requestFrom((uint16_t)address, (size_t)len, stopBit);
464469
}
465470

466-
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity)
471+
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t len)
467472
{
468-
return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), true);
473+
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(len), true);
469474
}
470475

471-
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t quantity)
476+
uint8_t TwoWire::requestFrom(uint16_t address, uint8_t len)
472477
{
473-
return requestFrom(address, static_cast<uint8_t>(quantity), true);
478+
return requestFrom(address, static_cast<size_t>(len), true);
474479
}
475480

476-
uint8_t TwoWire::requestFrom(int address, int quantity)
481+
uint8_t TwoWire::requestFrom(int address, int len)
477482
{
478-
return requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), true);
483+
return requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(len), true);
479484
}
480485

481-
uint8_t TwoWire::requestFrom(int address, int quantity, int sendStop)
486+
uint8_t TwoWire::requestFrom(int address, int len, int sendStop)
482487
{
483-
return static_cast<uint8_t>(requestFrom(static_cast<uint16_t>(address), static_cast<uint8_t>(quantity), static_cast<bool>(sendStop)));
488+
return static_cast<uint8_t>(requestFrom(static_cast<uint16_t>(address), static_cast<size_t>(len), static_cast<bool>(sendStop)));
484489
}
485490

486491
void TwoWire::beginTransmission(int address)

‎libraries/Wire/src/Wire.h

Copy file name to clipboardExpand all lines: libraries/Wire/src/Wire.h
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ class TwoWire: public Stream
9393
uint8_t endTransmission(bool sendStop);
9494
uint8_t endTransmission(void);
9595

96+
size_t requestFrom(uint16_t address, size_t size, bool sendStop);
9697
uint8_t requestFrom(uint16_t address, uint8_t size, bool sendStop);
9798
uint8_t requestFrom(uint16_t address, uint8_t size, uint8_t sendStop);
9899
size_t requestFrom(uint8_t address, size_t len, bool stopBit);

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.