Open andreaskuster opened 3 years ago
A comptibility issue with the arduino-esp32
framework arised during advanced testing. The generic Server class expects the virtual void begin(uint16_t port) to be implemented. I added a wrapper to this PR in order to fix this as well.
_SOURCE -DIDF_VER=\"v4.4-dev-1594-g1d7068e4b\" -DESP_PLATFORM -DARDUINO=10812 -DARDUINO_ESP32_DEV -DARDUINO_ARCH_ESP32 -DARDUINO_BOARD=\"ESP32_DEV\" -DARDUINO_VARIANT=\"esp32\" -DESP32 -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj -MF esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/main.cpp.obj -c ../main/main.cpp
../main/main.cpp:23:16: error: cannot declare variable 'server' to be of abstract type 'EthernetServer'
EthernetServer server(80);
^~~~~~
In file included from ../main/main.cpp:19:
../components/Ethernet/src/Ethernet.h:253:7: note: because the following virtual functions are pure within 'EthernetServer':
class EthernetServer : public Server {
^~~~~~~~~~~~~~
In file included from ../components/arduino/cores/esp32/Arduino.h:155,
from ../components/ArduinoJson/src/ArduinoJson/Configuration.hpp:155,
from ../components/ArduinoJson/src/ArduinoJson.hpp:7,
from ../components/ArduinoJson/src/ArduinoJson.h:9,
from ../main/main.cpp:18:
../components/arduino/cores/esp32/Server.h:28:18: note: 'virtual void Server::begin(uint16_t)'
virtual void begin(uint16_t port=0) =0;
^~~~~
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
Memory usage change @ c8fe12e21d3e9c36e915f413a7e8011710708655
Board | flash | % | RAM for global variables | % |
---|---|---|---|---|
arduino:avr:leonardo | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:avr:mega | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:avr:nano | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:megaavr:nona4809 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:megaavr:uno2018 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:sam:arduino_due_x_dbg | 0 - 0 | 0.0 - 0.0 | N/A | N/A |
arduino:samd:arduino_zero_edbg | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkr1000 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrfox1200 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrgsm1400 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrnb1500 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrvidor4000 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrwan1300 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrwan1310 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrwifi1010 | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:mkrzero | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
arduino:samd:nano_33_iot | 0 - 0 | 0.0 - 0.0 | 0 - 0 | 0.0 - 0.0 |
A comptibility issue with the
arduino-esp32
framework arised during advanced testing. The generic Server class expects the virtual void begin(uint16_t port) to be implemented. I added a wrapper to this PR in order to fix this as well.
the esp32 Arduino has modified Arduino API's Server class. many networking libraries for Arduino are now not compatible with esp32 Arduino.
A comptibility issue with the
arduino-esp32
framework arised during advanced testing. The generic Server class expects the virtual void begin(uint16_t port) to be implemented. I added a wrapper to this PR in order to fix this as well.the esp32 Arduino has modified Arduino API's Server class. many networking libraries for Arduino are now not compatible with esp32 Arduino.
@jandrassy Yeah that is a pity, but I guess we should make such a widely used libary as much compatible as possible. So far, I regression tested all examples in ArduinoJson/examples, with class instances of EthernetClient, EthernetServer, EthernetUDP
.
I think we should merge this as is since it does not break any existing functionality and add new PRs in case other compatibility issues arise.
In order to use this library as a ESP-IDF component (ESP32), we need these component registration files in place. They are non-intrusive and shouldn't influence other parts of your library, but allow to use this great library as git submodule / library in the project while profiting from updates/bug fixes in your repo.
More info: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/build-system.html#minimal-component-cmakelists
I especially need this to add a CI pipeline to this PR: https://github.com/bblanchon/ArduinoJson/pull/1562