Added monitoring feature of ESP8266's UART

Dependents:   ESP8266_W7500_Example DualNetworkInterface-Basic

Fork of ESP8266Interface by ESP8266

Revision:
45:c180905b5b79
Parent:
43:2e326d95fe2c
Parent:
44:3a7b6083210b
Child:
46:913d07795182
--- a/ESP8266/ESP8266.cpp	Thu May 07 04:00:27 2015 +0000
+++ b/ESP8266/ESP8266.cpp	Wed Jun 03 18:36:02 2015 +0000
@@ -160,19 +160,49 @@
     }
 }
 
-bool ESP8266::startUDP(char* ip, int port)
+bool ESP8266::startUDP(char* ip, int port, int id, int length)
 {
     char portstr[5];
+    char idstr[1];
+    char lenstr[2];
+    
     sprintf(portstr, "%d", port);
-    sendCommand(( "AT+CIPSTART=\"UDP\",\"" + (string) ip + "\"," + (string) portstr ).c_str(), "OK", NULL, 10000);
-    sendCommand("AT+CIPMODE=1", "OK", NULL, 1000);// go into transparent mode
-    sendCommand("AT+CIPSEND", ">", NULL, 1000);// go into transparent mode
-    //DBG("Data Mode");
+    sprintf(idstr, "%d", id);
+    sprintf(lenstr, "%d", length);
+    
+    sendCommand("AT+CIPMUX=1", "OK", NULL, 1000);
+    sendCommand(( "AT+CIPSTART=" + string(idstr) + ",\"UDP\",\"" + (string) ip + "\"," + (string) portstr + ",1112,0").c_str(), "OK", NULL, 10000);
+    sendCommand(("AT+CIPSEND=" + (string)idstr + "," +  (string)lenstr).c_str(), ">", NULL, 1000);// go into transparent mode
+    DBG("Data Mode\r\n");
     state.cmdMode = false;
 
     return true;
 }
 
+bool ESP8266::startTCPServer(int port)
+{
+    bool command_results[3];
+    command_results[0]=sendCommand("AT+CWMODE=3", "OK", NULL, 1000);
+    command_results[1]=sendCommand("AT+CIPMUX=1", "OK", NULL, 1000);
+    if(port == 333){
+        command_results[2]=sendCommand("AT+CIPSERVER=1", "OK", NULL, 1000);
+    }
+    else{
+        char portstr[5];
+        sprintf(portstr, "%d", port);
+        command_results[2]=sendCommand(("AT+CIPSERVER=1," + (string)portstr).c_str(), "OK", NULL, 1000);
+    }
+    //sendCommand("AT+CIFSR", "OK", NULL, 1000);
+    DBG("Data Mode\r\n");
+    state.cmdMode = false;
+    if (command_results[0] and command_results[1] and command_results[2]){
+        return true;
+    }
+    else{
+        return false;
+    }
+}
+
 bool ESP8266::close()
 {
     wait(0.1f);