From 484a201c3582ab6d1540ec4eb67bed9477e94684 Mon Sep 17 00:00:00 2001 From: Holger Lembke Date: Sat, 13 Mar 2021 13:51:50 +0100 Subject: [PATCH 1/3] add esp8266-style hostname-setting makes esp8266 code compile with esp32... --- libraries/WiFi/src/ESP8266WiFiSTA.h | 114 ++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 libraries/WiFi/src/ESP8266WiFiSTA.h diff --git a/libraries/WiFi/src/ESP8266WiFiSTA.h b/libraries/WiFi/src/ESP8266WiFiSTA.h new file mode 100644 index 00000000000..cf38e1254e7 --- /dev/null +++ b/libraries/WiFi/src/ESP8266WiFiSTA.h @@ -0,0 +1,114 @@ +/* + ESP8266WiFiSTA.h - esp8266 Wifi support. + Based on WiFi.h from Ardiono WiFi shield library. + Copyright (c) 2011-2014 Arduino. All right reserved. + Modified by Ivan Grokhotkov, December 2014 + Reworked by Markus Sattler, December 2015 + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef ESP8266WIFISTA_H_ +#define ESP8266WIFISTA_H_ + + +#include "ESP8266WiFiType.h" +#include "ESP8266WiFiGeneric.h" +#include "user_interface.h" + + +class ESP8266WiFiSTAClass { + // ---------------------------------------------------------------------------------------------- + // ---------------------------------------- STA function ---------------------------------------- + // ---------------------------------------------------------------------------------------------- + + public: + + wl_status_t begin(const char* ssid, const char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); + wl_status_t begin(char* ssid, char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); + wl_status_t begin(const String& ssid, const String& passphrase = emptyString, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); + wl_status_t begin(); + + //The argument order for ESP is not the same as for Arduino. However, there is compatibility code under the hood + //to detect Arduino arg order, and handle it correctly. Be aware that the Arduino default value handling doesn't + //work here (see Arduino docs for gway/subnet defaults). In other words: at least 3 args must always be given. + bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000); + + bool reconnect(); + bool disconnect(bool wifioff = false); + + bool isConnected(); + + bool setAutoConnect(bool autoConnect); + bool getAutoConnect(); + + bool setAutoReconnect(bool autoReconnect); + bool getAutoReconnect(); + + int8_t waitForConnectResult(unsigned long timeoutLength = 60000); + + // STA network info + IPAddress localIP(); + + uint8_t * macAddress(uint8_t* mac); + String macAddress(); + + IPAddress subnetMask(); + IPAddress gatewayIP(); + IPAddress dnsIP(uint8_t dns_no = 0); + + String hostname(); + bool hostname(const String& aHostname) { return hostname(aHostname.c_str()); } + bool hostname(const char* aHostname); + + // STA WiFi info + wl_status_t status(); + String SSID() const; + String psk() const; + + uint8_t * BSSID(); + String BSSIDstr(); + + int32_t RSSI(); + + static void enableInsecureWEP (bool enable = true) { _useInsecureWEP = enable; } + + protected: + + static bool _useStaticIp; + static bool _useInsecureWEP; + + // ---------------------------------------------------------------------------------------------- + // ------------------------------------ STA remote configure ----------------------------------- + // ---------------------------------------------------------------------------------------------- + + public: + + bool beginWPSConfig(void); + bool beginSmartConfig(); + bool stopSmartConfig(); + bool smartConfigDone(); + + protected: + + static bool _smartConfigStarted; + static bool _smartConfigDone; + + static void _smartConfigCallback(uint32_t status, void* result); + +}; + + +#endif /* ESP8266WIFISTA_H_ */ From 203391416ae0326e0a48eee310ae6e5f2deba4ab Mon Sep 17 00:00:00 2001 From: Holger Lembke Date: Sat, 13 Mar 2021 13:53:14 +0100 Subject: [PATCH 2/3] Delete ESP8266WiFiSTA.h --- libraries/WiFi/src/ESP8266WiFiSTA.h | 114 ---------------------------- 1 file changed, 114 deletions(-) delete mode 100644 libraries/WiFi/src/ESP8266WiFiSTA.h diff --git a/libraries/WiFi/src/ESP8266WiFiSTA.h b/libraries/WiFi/src/ESP8266WiFiSTA.h deleted file mode 100644 index cf38e1254e7..00000000000 --- a/libraries/WiFi/src/ESP8266WiFiSTA.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - ESP8266WiFiSTA.h - esp8266 Wifi support. - Based on WiFi.h from Ardiono WiFi shield library. - Copyright (c) 2011-2014 Arduino. All right reserved. - Modified by Ivan Grokhotkov, December 2014 - Reworked by Markus Sattler, December 2015 - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef ESP8266WIFISTA_H_ -#define ESP8266WIFISTA_H_ - - -#include "ESP8266WiFiType.h" -#include "ESP8266WiFiGeneric.h" -#include "user_interface.h" - - -class ESP8266WiFiSTAClass { - // ---------------------------------------------------------------------------------------------- - // ---------------------------------------- STA function ---------------------------------------- - // ---------------------------------------------------------------------------------------------- - - public: - - wl_status_t begin(const char* ssid, const char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); - wl_status_t begin(char* ssid, char *passphrase = NULL, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); - wl_status_t begin(const String& ssid, const String& passphrase = emptyString, int32_t channel = 0, const uint8_t* bssid = NULL, bool connect = true); - wl_status_t begin(); - - //The argument order for ESP is not the same as for Arduino. However, there is compatibility code under the hood - //to detect Arduino arg order, and handle it correctly. Be aware that the Arduino default value handling doesn't - //work here (see Arduino docs for gway/subnet defaults). In other words: at least 3 args must always be given. - bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000); - - bool reconnect(); - bool disconnect(bool wifioff = false); - - bool isConnected(); - - bool setAutoConnect(bool autoConnect); - bool getAutoConnect(); - - bool setAutoReconnect(bool autoReconnect); - bool getAutoReconnect(); - - int8_t waitForConnectResult(unsigned long timeoutLength = 60000); - - // STA network info - IPAddress localIP(); - - uint8_t * macAddress(uint8_t* mac); - String macAddress(); - - IPAddress subnetMask(); - IPAddress gatewayIP(); - IPAddress dnsIP(uint8_t dns_no = 0); - - String hostname(); - bool hostname(const String& aHostname) { return hostname(aHostname.c_str()); } - bool hostname(const char* aHostname); - - // STA WiFi info - wl_status_t status(); - String SSID() const; - String psk() const; - - uint8_t * BSSID(); - String BSSIDstr(); - - int32_t RSSI(); - - static void enableInsecureWEP (bool enable = true) { _useInsecureWEP = enable; } - - protected: - - static bool _useStaticIp; - static bool _useInsecureWEP; - - // ---------------------------------------------------------------------------------------------- - // ------------------------------------ STA remote configure ----------------------------------- - // ---------------------------------------------------------------------------------------------- - - public: - - bool beginWPSConfig(void); - bool beginSmartConfig(); - bool stopSmartConfig(); - bool smartConfigDone(); - - protected: - - static bool _smartConfigStarted; - static bool _smartConfigDone; - - static void _smartConfigCallback(uint32_t status, void* result); - -}; - - -#endif /* ESP8266WIFISTA_H_ */ From 129aa1474cd842911d8ffe1a79862aca0efcbc44 Mon Sep 17 00:00:00 2001 From: Holger Lembke Date: Sat, 13 Mar 2021 13:54:18 +0100 Subject: [PATCH 3/3] add esp8266-style hostname setting makes esp8266 code compile with esp32 without changes. --- libraries/WiFi/src/WiFiSTA.h | 1 + 1 file changed, 1 insertion(+) diff --git a/libraries/WiFi/src/WiFiSTA.h b/libraries/WiFi/src/WiFiSTA.h index 1e91d3f6bac..d983b0afeb8 100644 --- a/libraries/WiFi/src/WiFiSTA.h +++ b/libraries/WiFi/src/WiFiSTA.h @@ -74,6 +74,7 @@ class WiFiSTAClass const char * getHostname(); bool setHostname(const char * hostname); + bool hostname(const String& aHostname) { return setHostname(aHostname.c_str()); } // STA WiFi info static wl_status_t status();