Skip to content

2.5.0: Issues with Arduino API #5749

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
d-a-v opened this issue Feb 9, 2019 · 9 comments · Fixed by #5969
Closed

2.5.0: Issues with Arduino API #5749

d-a-v opened this issue Feb 9, 2019 · 9 comments · Fixed by #5969

Comments

@d-a-v
Copy link
Collaborator

d-a-v commented Feb 9, 2019

UDP virtual IPAddress remoteIP() =0; virtual IPAddress remoteIP() const =0;
you can't change a virtual function in an established Arduino core class

5c4db3a#commitcomment-32254962

other networking libraries Client implementations do not implement flush and stop with parameter.
"The type 'UIPClient' must implement the inherited pure virtual method 'Client::stop' "

83a8076#commitcomment-32254941

@JAndrassy Can you please give more details ?

Also If your sketch does not compile and returns error needs to be addressed.

@JAndrassy
Copy link
Contributor

JAndrassy commented Feb 10, 2019

There are other networking libraries used with esp8266, not only the native WiFi or bundled Ethernet library (why is it there?). If you change the virtual functions of the Arduino networking base classes Client, Server, UDP the libraries don't compile. Function flush with parameter is a different virtual function then flush without parameter. The default value of the parameter doesn't change it. So now for example the UIPEthernet library or the standard Ethernet library and perhaps some GPRS libraries don't compile for esp8266 because they don't implement flush, stop, remoteIP with a parameter.

UIPEthernet/UIPEthernet#49

To Ethernet library: The official Arduino Ethernet library was upgraded last year to 2.0.0 by Paul Stoffregen to support Wiznet 5200 and 5500. He tested it with esp8266. The Ethernet library bundled in esp8266 core package supports only W5100.

@d-a-v
Copy link
Collaborator Author

d-a-v commented Feb 20, 2019

It will be addressed for next release 2.5.1

@PaulStoffregen
Copy link

FWIW, there was an unresolved problem with DNS lookups by the Ethernet lib. Only ESP8266 has this problem. The exact same code ran perfectly on all other boards, including ESP32. I never did a deeper investigation into why that failed on ESP8266. Maybe someday....

If anyone cares about Wiznet-based Ethernet on ESP8266, please test some of the library's examples which use a text-based hostname rather than only IP numbers.

@JAndrassy
Copy link
Contributor

@JAndrassy
Copy link
Contributor

FWIW, there was an unresolved problem with DNS lookups by the Ethernet lib. Only ESP8266 has this problem. The exact same code ran perfectly on all other boards, including ESP32. I never did a deeper investigation into why that failed on ESP8266. Maybe someday....

If anyone cares about Wiznet-based Ethernet on ESP8266, please test some of the library's examples which use a text-based hostname rather than only IP numbers.

@PaulStoffregen, I tested it now and both examples with DNS work with esp8266 core 2.4.2 (hw: Wemos D1 mini clone with WIZ850io)

@d-a-v, I think the bundled Ethernet library should be removed from esp8266 arduino boards package

@d-a-v
Copy link
Collaborator Author

d-a-v commented Apr 14, 2019

I think the bundled Ethernet library should be removed from esp8266 arduino boards package

That can be done after #5969 is merged.
We also can replace it by a submodule linking to @PaulStoffregen repository.
This is not mandatory since we have no examples external to this library using Ethernet class.
Comments about that are welcome.

@JAndrassy
Copy link
Contributor

I think the bundled Ethernet library should be removed from esp8266 arduino boards package

That can be done after #5969 is merged.
We also can replace it by a submodule linking to @PaulStoffregen repository.
This is not mandatory since we have no examples external to this library using Ethernet class.
Comments about that are welcome.

bundle only architecture specific libraries. for the Ethernet library the SPI library does the abstraction

@d-a-v
Copy link
Collaborator Author

d-a-v commented Apr 22, 2019

Did you need to make changes to the new Ethernet library ? I had to (arduino-libraries/Ethernet#96).

(@JAndrassy) I tested it now and both examples with DNS work with esp8266 core 2.4.2 (hw: Wemos D1 mini clone with WIZ850io)

#5997 removes old ethernet library and replace it with a submodule. Would you be able to test it ?

I currently can't make it pointing to Ethernet repo so I made a fork. It would be far better to point to master when the Ethernet PR is merged, especially for release 2.5.1 (or I'd need to keep this fork forever on my repo).

@JAndrassy
Copy link
Contributor

Did you need to make changes to the new Ethernet library ? I had to (arduino-libraries/Ethernet#96).

I was on 2.4.2

JAndrassy referenced this issue in arduino-libraries/ArduinoMqttClient Nov 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants