Quellcode durchsuchen

Added Support for AsyncDNSServer

Need to install https://github.com/devyte/ESPAsyncDNSServer and
https://github.com/me-no-dev/ESPAsyncUDP

* Enchancement proposed in
https://github.com/alanswx/ESPAsyncWiFiManager/issues/20
debsahu vor 6 Jahren
Ursprung
Commit
e3a1ec75c0

+ 5 - 4
ESPAsyncWiFiManager.cpp

@@ -61,7 +61,7 @@ const char* AsyncWiFiManagerParameter::getCustomHTML() {
   return _customHTML;
 }
 
-AsyncWiFiManager::AsyncWiFiManager(AsyncWebServer *server, DNSServer *dns) :server(server), dnsServer(dns) {
+AsyncWiFiManager::AsyncWiFiManager(AsyncWebServer *server, AsyncDNSServer *dns) :server(server), dnsServer(dns) {
   wifiSSIDs = NULL;
   wifiSSIDscan=true;
   _modeless=false;
@@ -415,7 +415,7 @@ void AsyncWiFiManager::criticalLoop(){
  * Anything that doesn't access WiFi, ESP or EEPROM can go here
  */
 void AsyncWiFiManager::safeLoop(){
-  dnsServer->processNextRequest();
+  //dnsServer->processNextRequest();
 }
 
 boolean  AsyncWiFiManager::startConfigPortal(char const *apName, char const *apPassword) {
@@ -436,7 +436,7 @@ boolean  AsyncWiFiManager::startConfigPortal(char const *apName, char const *apP
   scannow= -1 ;
   while (_configPortalTimeout == 0 || millis() < _configPortalStart + _configPortalTimeout) {
     //DNS
-    dnsServer->processNextRequest();
+    //dnsServer->processNextRequest();
 
     //
     //  we should do a scan every so often here
@@ -482,8 +482,9 @@ boolean  AsyncWiFiManager::startConfigPortal(char const *apName, char const *apP
     yield();
   }
 
-  dnsServer=(new DNSServer());
   server->reset();
+  //dnsServer=DNSServer();
+  *dnsServer=AsyncDNSServer();
 
   return  WiFi.status() == WL_CONNECTED;
 }

+ 5 - 3
ESPAsyncWiFiManager.h

@@ -22,7 +22,9 @@
 #define ESP_WPS_MODE WPS_TYPE_PBC
 #endif
 #include <ESPAsyncWebServer.h>
-#include <DNSServer.h>
+//#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>    //https://github.com/devyte/ESPAsyncDNSServer
+                                  //https://github.com/me-no-dev/ESPAsyncUDP
 #include <memory>
 
 #if defined(ESP8266)
@@ -93,7 +95,7 @@ public:
 class AsyncWiFiManager
 {
 public:
-  AsyncWiFiManager(AsyncWebServer * server, DNSServer *dns);
+  AsyncWiFiManager(AsyncWebServer * server, AsyncDNSServer *dns);
 
   void          scan();
   String        scanModal();
@@ -147,7 +149,7 @@ public:
   void          setRemoveDuplicateAPs(boolean removeDuplicates);
 
 private:
-  DNSServer      *dnsServer;
+  AsyncDNSServer      *dnsServer;
   AsyncWebServer *server;
 
 

+ 4 - 3
examples/AutoConnect/AutoConnect.ino

@@ -1,16 +1,17 @@
 #if defined(ESP8266)
-#include <ESP8266WiFi.h>          //https://github.com/esp8266/Arduino
+#include <ESP8266WiFi.h>                 //https://github.com/esp8266/Arduino
 #else
 #include <WiFi.h>
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 void setup() {
     // put your setup code here, to run once:

+ 3 - 2
examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino

@@ -7,7 +7,8 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
@@ -28,7 +29,7 @@ void saveConfigCallback () {
 }
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 
 void setup() {

+ 3 - 2
examples/AutoConnectWithFSParametersAndCustomIP/AutoConnectWithFSParametersAndCustomIP.ino

@@ -7,7 +7,8 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
@@ -33,7 +34,7 @@ void saveConfigCallback () {
 }
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 void setup() {
   // put your setup code here, to run once:

+ 4 - 3
examples/AutoConnectWithFeedback/AutoConnectWithFeedback.ino

@@ -1,11 +1,12 @@
 #if defined(ESP8266)
-#include <ESP8266WiFi.h>          //https://github.com/esp8266/Arduino
+#include <ESP8266WiFi.h>                 //https://github.com/esp8266/Arduino
 #else
 #include <WiFi.h>
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
@@ -17,7 +18,7 @@ void configModeCallback (AsyncWiFiManager *myWiFiManager) {
 }
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 void setup() {
   // put your setup code here, to run once:

+ 3 - 2
examples/AutoConnectWithFeedbackLED/AutoConnectWithFeedbackLED.ino

@@ -5,7 +5,8 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
@@ -31,7 +32,7 @@ void configModeCallback (AsyncWiFiManager *myWiFiManager) {
 }
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 void setup() {
   // put your setup code here, to run once:

+ 3 - 2
examples/AutoConnectWithReset/AutoConnectWithReset.ino

@@ -7,12 +7,13 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 void setup() {
   // put your setup code here, to run once:

+ 3 - 2
examples/AutoConnectWithStaticIP/AutoConnectWithStaticIP.ino

@@ -7,12 +7,13 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 
 /**************************************************************************************

+ 3 - 2
examples/AutoConnectWithTimeout/AutoConnectWithTimeout.ino

@@ -5,12 +5,13 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 
 

+ 3 - 2
examples/ModelessConnect/ModelessConnect.ino

@@ -5,12 +5,13 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 AsyncWiFiManager wifiManager(&server,&dns);
 
 void setup() {

+ 3 - 3
examples/ModelessWithInterrupts/ModelessWithInterrupts.ino

@@ -5,12 +5,13 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 AsyncWiFiManager wifiManager(&server,&dns);
 
 volatile boolean guard = true;
@@ -71,7 +72,6 @@ void setup() {
 	timer0_isr_init();
 	timer0_attachInterrupt(interruptFunction);
 	timer0_write(ESP.getCycleCount() + ESP.getCpuFreqMHz() * 1024);	// Wait 2 seconds before displaying
-	updateDisplay = false;
 }
 
 void loop() {

+ 3 - 2
examples/OnDemandConfigPortal/OnDemandConfigPortal.ino

@@ -5,13 +5,14 @@
 #endif
 
 //needed for library
-#include <DNSServer.h>
+#include <ESPAsyncDNSServer.h>           //https://github.com/devyte/ESPAsyncDNSServer
+                                         //https://github.com/me-no-dev/ESPAsyncUDP
 #include <ESPAsyncWebServer.h>
 #include <ESPAsyncWiFiManager.h>         //https://github.com/tzapu/WiFiManager
 
 
 AsyncWebServer server(80);
-DNSServer dns;
+AsyncDNSServer dns;
 
 // select wich pin will trigger the configuraton portal when set to LOW
 // ESP-01 users please note: the only pins available (0 and 2), are shared

+ 1 - 1
library.json

@@ -9,5 +9,5 @@
   },
   "frameworks": "arduino",
   "platforms": ["espressif8266", "espressif32"],
-  "version": "0.14"
+  "version": "0.15"
 }

+ 1 - 1
library.properties

@@ -1,5 +1,5 @@
 name=ESP Async WiFi Manager
-version=0.14
+version=0.15
 author=alanswx
 maintainer=alanswx
 sentence=ESP8266 and ESP32 Async WiFi Connection manager with fallback web configuration portal