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.
Fork of ESP8266Interface by
Diff: ESP8266/ESP8266.cpp
- Revision:
- 44:3a7b6083210b
- Parent:
- 35:22d30e936e4c
- Child:
- 45:c180905b5b79
--- a/ESP8266/ESP8266.cpp Fri May 01 18:29:38 2015 +0000 +++ b/ESP8266/ESP8266.cpp Wed Jun 03 18:21:19 2015 +0000 @@ -23,7 +23,7 @@ #include <algorithm> //Debug is disabled by default -#ifdef DEBUG +#if 1 #define DBG(x, ...) printf("[ESP8266 : DBG]"x"\r\n", ##__VA_ARGS__); #define WARN(x, ...) printf("[ESP8266 : WARN]"x"\r\n", ##__VA_ARGS__); #define ERR(x, ...) printf("[ESP8266 : ERR]"x"\r\n", ##__VA_ARGS__); @@ -162,20 +162,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 + 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() { send("+++",3);