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.
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 Wed Jul 20 2022 03:39:25 by
1.7.2