Library für ESP01 Webserver STM32F103RB Nucleo

Dependents:   Nucleo_dht11_Webserver WebServerGSOEWorkshopSlider WebServerGSOEWorkshopDynamisch WebServerGSOEWorkshopStatisch ... more

Revision:
17:87c762acb8d0
Parent:
16:b09391fb73b4
Child:
19:e0bcbb2a3480
--- a/ESP8266Webserver.cpp	Tue Jun 22 07:45:32 2021 +0000
+++ b/ESP8266Webserver.cpp	Tue Jun 22 09:58:10 2021 +0000
@@ -3,6 +3,7 @@
 
 ESP8266Webserver::ESP8266Webserver()
 {
+    bool erg;
     //HAL_Delay(1000);
     hs_count=0;
     clientIdx=0;
@@ -12,20 +13,18 @@
     dbg=pDebug;
     _serial = new BufferedSerial(tx,rx, ESP8266_DEFAULT_BAUD_RATE);
     _parser = new ATCmdParser(_serial, "\r\n");
-    _parser->debug_on(false);//pDebug);
+    _parser->debug_on(true);
 
-    _parser->set_timeout(1000);
+    _parser->set_timeout(2000);
     
 //AT
     if (pDebug) printf("\nATCmdParser: AT\r\n");
     _parser->send("AT");
-
-    //HAL_Delay(1000);
     
     if (_parser->recv("OK")) {
         if (pDebug) printf("\nAntw.: OK\r\n");
     } else {
-        if (pDebug) printf("\nATCmdParser: OK failed\r\n");
+        printf("\nATCmdParser: AT OK failed\r\n");
     }
 
     if (station==true) 
@@ -37,50 +36,44 @@
         _parser->send("ATE0");
         strcpy(ipadr,ip);
     
-        //HAL_Delay(300);
-        //AT+CWMODE=1 
         if (pDebug) printf("\nATCmdParser: //AT+CWMODE=2 \r\n");
+        
         _parser->send("AT+CWMODE=2");
+        HAL_Delay(1000);
         
         if (_parser->recv("OK")) {
             if (pDebug) printf("\nAntw.: OK\r\n");
         } else {
-            if (pDebug) printf("\nATCmdParser: OK failed\r\n");
+            printf("\nATCmdParser: AT+CWMODE=2 OK failed\r\n");
         }
 
 //AT+CWMODE? 
     if (pDebug) printf("\nATCmdParser: //AT+CWMODE? \r\n");
+
     _parser->send("AT+CWMODE?");
     
     if (_parser->recv("OK")) {
         if (pDebug) printf("\nAntw.: OK\r\n");
     } else {
-        if (pDebug) printf("\nATCmdParser: OK failed\r\n");
-    }
-
-
-//AT+CIFSR
-    if (pDebug) printf("\nATCmdParser: //AT+CIFSR \r\n");
-    _parser->send("AT+CIFSR");
-    
-    if (_parser->recv("OK")) {
-       if (pDebug)  printf("\nAntw.: OK\r\n");
-    } else {
-       if (pDebug) printf("\nATCmdParser: OK failed\r\n");
+        printf("\nATCmdParser: AT+CWMODE? OK failed\r\n");
     }
     
- 
-
-
+    
+//AT+CIPAP="192.168.5.1","192.168.5.1","255.255.255.0"
         if (pDebug) printf("\nATCmdParser: //AT+CIPAP=\"%s\",\"%s\",\"%s\" \r\n",ipad.c_str(),ipad.c_str(),netzmaske);
-
-        _parser->send("AT+CIPAP=\"%s\",\"%s\",\"%s\"",ipad.c_str(),ipad.c_str(),netzmaske);
+        do
+        {
+            _parser->send("AT+CIPAP=\"%s\",\"%s\",\"%s\"",ipad.c_str(),ipad.c_str(),netzmaske);
+            erg=_parser->recv("OK");
+            if (erg==true) {
+                if (pDebug) printf("\nAntw.: OK\r\n");
+            } else {
+                printf("\nATCmdParser: AT+CIPAP OK failed\r\n");
+                HAL_Delay(1000);
+            }           
+        }
+        while (erg==false);
         
-        if (_parser->recv("OK")) {
-            if (pDebug) printf("\nAntw.: OK\r\n");
-        } else {
-            if (pDebug) printf("\nATCmdParser: OK failed\r\n");
-        }
      
     
 //AT+CIPMUX=1
@@ -90,13 +83,11 @@
     if (_parser->recv("OK")) {
         if (pDebug) printf("\nAntw.: OK\r\n");
     } else {
-        if (pDebug) printf("\nATCmdParser: OK failed\r\n");
+        printf("\nATCmdParser: AT+CIPMUX=1 OK failed\r\n");
     }
     }
 }
 
-
-
 int ESP8266Webserver::on(const char* handlestring,Callback< void()> func)
 {
   if (hs_count>9) return -1;
@@ -120,7 +111,7 @@
         if (dbg) printf("\nAntw.: OK\r\n");
         return 0;
     } else {
-        if (dbg) printf("\nATCmdParser: OK failed\r\n");
+        printf("\nATCmdParser: AT+CIPSERVER=1 OK failed\r\n");
         return -1;
     }
 }
@@ -245,6 +236,7 @@
     int ips[4];
     //_parser->debug_on(true);
     _parser->send("AT+CWMODE=1"); 
+    HAL_Delay(300);
     while (_parser->recv("OK")==false);
     HAL_Delay(1000);
     if (scanAPs==true)