Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Nucleo_dht11_Webserver WebServerGSOEWorkshopSlider WebServerGSOEWorkshopDynamisch WebServerGSOEWorkshopStatisch ... more
ESP8266Webserver.h
00001 /** My ESP8266Webserver class. 00002 * Used for Webserver on Microcontroller. 00003 * Grundeinstellungen und Definitionen: Siehe Einstellungen.h 00004 * 00005 * Example: 00006 * @code 00007 * #include "mbed.h" 00008 * #include "ESP8266Webserver.h" 00009 * #include "LCD.h" 00010 00011 * lcd myLCD; 00012 * ESP8266Webserver myWebserver; 00013 * AnalogIn poti(PA_0); 00014 * DigitalOut myled(PC_0); 00015 * string getRootPage() 00016 * { 00017 * string webpage; 00018 * webpage="<!DOCTYPE html>"; 00019 * //HTML 00020 * webpage+="<html>"; 00021 * webpage+="<head>"; 00022 * webpage+="<title>STM32 HTTP</title>"; 00023 * webpage+="</head>"; 00024 * webpage+="<body>"; 00025 * webpage+="<h1>WIFI mit STM32 ESP01</h1>\n"; 00026 * webpage+="<p>Poti:"+to_string(poti)+"</p>\n"; 00027 * webpage+="<a href=\"ledAn\"><button>ON</button></a>\n"; 00028 * webpage+="<a href=\"ledAus\"><button>OFF</button></a>\n"; 00029 * webpage+="</body>"; 00030 * webpage+="</html>"; 00031 * return webpage; 00032 * } 00033 * void testfunc() 00034 * { 00035 * myWebserver.send(200,"text/html",getRootPage()); 00036 * } 00037 * void testfunc2() 00038 * { 00039 * myled=0; 00040 * myWebserver.send(200,"text/html",getRootPage()); 00041 * } 00042 * void testfunc3() 00043 * { 00044 * myled=1; 00045 * myWebserver.send(200,"text/html",getRootPage()); 00046 * } 00047 * int main() { 00048 * myWebserver.on("ledAus",&testfunc2); 00049 * myWebserver.on("ledAn",&testfunc3); 00050 * myWebserver.on("/",&testfunc); 00051 * myWebserver.begin(); 00052 * myLCD.clear(); 00053 * myLCD.cursorpos(0); 00054 * myLCD.printf("%s",myWebserver.gibIP()); 00055 * while(1) { 00056 * myWebserver.handleClient(); 00057 * } 00058 * } 00059 * @endcode 00060 */ 00061 #include "mbed.h" 00062 //#include "string" 00063 #include "Einstellungen.h" 00064 00065 00066 class ESP8266Webserver 00067 { 00068 private: 00069 00070 int hs_count=0; 00071 Callback< void()> cbs[10]; 00072 char hs[10][20]; 00073 char recbuf[1000]; 00074 bool beinhaltet(char* suchstring); 00075 int port=80; 00076 bool dbg; 00077 int clientID[10]={0,0,0,0,0,0,0,0,0,0}; 00078 int clientIdx=0; 00079 char sendstring[1000]; 00080 BufferedSerial *_serial; 00081 char ipadr[100]; 00082 ATCmdParser *_parser; 00083 00084 bool gefunden; 00085 string ipad=ip; 00086 00087 00088 00089 public: 00090 char suchergebnis[20]; 00091 /** Aufrufzähler (öffentliches Attribut) 00092 */ 00093 int Aufrufe=0; 00094 00095 /** Create Webserver instance 00096 */ 00097 ESP8266Webserver(); 00098 00099 /** Legt die Callback-Operationen fest 00100 * 00101 * @param handlestring Suchtext im Request des Clients 00102 * @param func Callback-Operation falls der handlestring im Request gefunden wurde 00103 * @returns 00104 * 0 on success, 00105 * -1 on error 00106 */ 00107 int on(const char* handlestring,Callback< void()> func); 00108 00109 /** Startet den Webserver 00110 * @returns 00111 * 0 on success, 00112 * -1 on error 00113 */ 00114 int begin(void); 00115 00116 /** Prüft in der Endlosschleife zyklisch, ob neue Anfragen (Requests) vorliegen 00117 * 00118 * @returns 00119 * 0 on success, 00120 * -1 on error 00121 */ 00122 int handleClient(void); 00123 00124 /** Schickt eine Antwort (response) zum Client 00125 * 00126 * @param HTTPStatus Statuscode (200 = alles in Ordnung) 00127 * @param Mimetype z.B. "text/html" 00128 * @param webseite String (const char*) der die Webseite enthält 00129 * @returns 00130 * 0 on success, 00131 * -1 on error 00132 */ 00133 int send(int HTTPStatus,const char* Mimetype, const char* webseite); 00134 int send(int HTTPStatus,const char* Mimetype, const char* webseite,int length); 00135 00136 /** Schickt eine Antwort (response) zum Client 00137 * 00138 * @param HTTPStatus Statuscode (200 = alles in Ordnung) 00139 * @param Mimetype z.B. "text/html" 00140 * @param webseite String der die Webseite enthält 00141 * @returns 00142 * 0 on success, 00143 * -1 on error 00144 */ 00145 int send(int HTTPStatus,const char* Mimetype, std::string webseite); 00146 00147 /** Findet einen Wert-String zu dem Suchstring in dem Request 00148 * Damit können Inputs in Formularen (Textfelder, Slider, Textboxen usw.) 00149 * ausgewertet werden 00150 * @param suchstring nach diesem String wird gesucht 00151 * @returns 00152 * Wertstring 00153 */ 00154 const char* gibWert(const char* suchstring); 00155 00156 /** Findet einen Wert-String zu dem Suchstring in dem Request 00157 * Damit können Inputs in Formularen (Textfelder, Slider, Textboxen usw.) 00158 * ausgewertet werden 00159 * @param suchstring nach diesem String wird gesucht 00160 * @returns 00161 * Wertstring 00162 */ 00163 const char* gibWert(std::string suchstring); 00164 void debugOn(bool pD); 00165 void listAPs(); 00166 00167 /** Gibt die IP-Adresse des Servers als String zurück 00168 * 00169 * @returns 00170 * Wertstring 00171 */ 00172 char* gibIP(); 00173 00174 00175 };
Generated on Sat Jul 23 2022 13:46:55 by
1.7.2