[DOC] Clarification of Stream methods' availability in objects from derived libraries
- Dominant language
- Java
- Stars
- 14.6k
- Forks
- 7k
- PR merge metrics
- No merged PRs in 30d
Description
Hello. I read in https://www.arduino.cc/reference/en/language/functions/communication/stream/ that Stream object is the base of several other objects (namely, five: Serial, SD, Wire, EthernetServer and EthernetClient) and it has several methods (find(), findUntil(), readBytes(), readBytesUntil(), readString(), readStringUntil(), peek(), parseInt(), parseFloat(), setTimeout()...) which are only mentioned there and in Serial's page (https://www.arduino.cc/reference/en/language/functions/communication/serial/) but not in the other four ones (SD, Wire, EthernetServer, EthernetClient). So, it isn't clear if it is possible to use all Stream methods as SD/EthernetServer/etc methods. I mean, for instance,could I write this?
```
#include
#include
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 177 };
EthernetServer myserver(23);
EthernetClient myclient;
boolean found;
void setup() {
Ethernet.begin(mac, ip);
myserver.begin();
Serial.begin(9600);
}
void loop() {
myclient = myserver.available();
if (myclient > 0) {
found=myclient.find("astring");
Serial.println(found);
}
}
```
It compiles but I have'nt right now a Ethernet Shield to check if this sketch works as it should: it isn't clear from documentation.
In conclusion: I think Stream and derived/related pages need a big rewrite to clarify/arrange this.
Thanks.
Contributor guide
Assessment
This issue has not been assessed yet.