work.

Dependencies:   Blynk mbed

Committer:
lixianyu
Date:
Thu Jun 16 08:08:30 2016 +0000
Revision:
3:4cd9171ba989
9600?????ESP8266????????115200??ESP8266?????????9600????????????Timer???????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lixianyu 3:4cd9171ba989 1 /**
lixianyu 3:4cd9171ba989 2 * @file ESP8266.h
lixianyu 3:4cd9171ba989 3 * @brief The definition of class ESP8266.
lixianyu 3:4cd9171ba989 4 * @author Wu Pengfei<pengfei.wu@itead.cc>
lixianyu 3:4cd9171ba989 5 * @date 2015.02
lixianyu 3:4cd9171ba989 6 *
lixianyu 3:4cd9171ba989 7 * @par Copyright:
lixianyu 3:4cd9171ba989 8 * Copyright (c) 2015 ITEAD Intelligent Systems Co., Ltd. \n\n
lixianyu 3:4cd9171ba989 9 * This program is free software; you can redistribute it and/or
lixianyu 3:4cd9171ba989 10 * modify it under the terms of the GNU General Public License as
lixianyu 3:4cd9171ba989 11 * published by the Free Software Foundation; either version 2 of
lixianyu 3:4cd9171ba989 12 * the License, or (at your option) any later version. \n\n
lixianyu 3:4cd9171ba989 13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
lixianyu 3:4cd9171ba989 14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
lixianyu 3:4cd9171ba989 15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
lixianyu 3:4cd9171ba989 16 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
lixianyu 3:4cd9171ba989 17 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
lixianyu 3:4cd9171ba989 18 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
lixianyu 3:4cd9171ba989 19 * THE SOFTWARE.
lixianyu 3:4cd9171ba989 20 */
lixianyu 3:4cd9171ba989 21 #ifndef __ESP8266_H__
lixianyu 3:4cd9171ba989 22 #define __ESP8266_H__
lixianyu 3:4cd9171ba989 23
lixianyu 3:4cd9171ba989 24 //#include "Arduino.h"
lixianyu 3:4cd9171ba989 25 #include "mbed.h"
lixianyu 3:4cd9171ba989 26 #include "WString.h"
lixianyu 3:4cd9171ba989 27
lixianyu 3:4cd9171ba989 28 extern Timer g_Timer;
lixianyu 3:4cd9171ba989 29 extern Serial pc;
lixianyu 3:4cd9171ba989 30 //#define LOG_ESP8266
lixianyu 3:4cd9171ba989 31 #ifdef LOG_ESP8266
lixianyu 3:4cd9171ba989 32 #define ESP8266_LOG pc.printf
lixianyu 3:4cd9171ba989 33 #define LOG_ENTER ESP8266_LOG("Enter %s\r\n", __func__);
lixianyu 3:4cd9171ba989 34 #else
lixianyu 3:4cd9171ba989 35 #define ESP8266_LOG(...)
lixianyu 3:4cd9171ba989 36 #define LOG_ENTER
lixianyu 3:4cd9171ba989 37 #endif
lixianyu 3:4cd9171ba989 38
lixianyu 3:4cd9171ba989 39 //#define ESP8266_USE_SOFTWARE_SERIAL
lixianyu 3:4cd9171ba989 40
lixianyu 3:4cd9171ba989 41 #ifdef ESP8266_USE_SOFTWARE_SERIAL
lixianyu 3:4cd9171ba989 42 //#include "SoftwareSerial.h"
lixianyu 3:4cd9171ba989 43 #define SoftwareSerial Serial
lixianyu 3:4cd9171ba989 44 #else
lixianyu 3:4cd9171ba989 45 #define HardwareSerial Serial
lixianyu 3:4cd9171ba989 46 #endif
lixianyu 3:4cd9171ba989 47
lixianyu 3:4cd9171ba989 48 #define VERSION_18 0X18
lixianyu 3:4cd9171ba989 49 #define VERSION_22 0X22
lixianyu 3:4cd9171ba989 50 #define DEFAULT_PATTERN 3
lixianyu 3:4cd9171ba989 51
lixianyu 3:4cd9171ba989 52 /**
lixianyu 3:4cd9171ba989 53 * You can modify the macro to choose a different version
lixianyu 3:4cd9171ba989 54 */
lixianyu 3:4cd9171ba989 55
lixianyu 3:4cd9171ba989 56 #define USER_SEL_VERSION VERSION_22
lixianyu 3:4cd9171ba989 57
lixianyu 3:4cd9171ba989 58 /**
lixianyu 3:4cd9171ba989 59 * Provide an easy-to-use way to manipulate ESP8266.
lixianyu 3:4cd9171ba989 60 */
lixianyu 3:4cd9171ba989 61 class ESP8266 {
lixianyu 3:4cd9171ba989 62 public:
lixianyu 3:4cd9171ba989 63
lixianyu 3:4cd9171ba989 64 typedef void (*onData)(uint8_t mux_id, uint32_t len, void* ptr);
lixianyu 3:4cd9171ba989 65
lixianyu 3:4cd9171ba989 66 #ifdef ESP8266_USE_SOFTWARE_SERIAL
lixianyu 3:4cd9171ba989 67 /*
lixianyu 3:4cd9171ba989 68 * Constuctor.
lixianyu 3:4cd9171ba989 69 *
lixianyu 3:4cd9171ba989 70 * @param uart - an reference of SoftwareSerial object.
lixianyu 3:4cd9171ba989 71 * @warning parameter baud depends on the AT firmware. 9600 is an common value.
lixianyu 3:4cd9171ba989 72 */
lixianyu 3:4cd9171ba989 73
lixianyu 3:4cd9171ba989 74 ESP8266(SoftwareSerial &uart);
lixianyu 3:4cd9171ba989 75
lixianyu 3:4cd9171ba989 76 SoftwareSerial* getUart() { return m_puart; }
lixianyu 3:4cd9171ba989 77
lixianyu 3:4cd9171ba989 78 #else /* HardwareSerial */
lixianyu 3:4cd9171ba989 79 /*
lixianyu 3:4cd9171ba989 80 * Constuctor.
lixianyu 3:4cd9171ba989 81 *
lixianyu 3:4cd9171ba989 82 * @param uart - an reference of HardwareSerial object.
lixianyu 3:4cd9171ba989 83 * @warning parameter baud depends on the AT firmware. 9600 is an common value.
lixianyu 3:4cd9171ba989 84 */
lixianyu 3:4cd9171ba989 85
lixianyu 3:4cd9171ba989 86 ESP8266(HardwareSerial &uart);
lixianyu 3:4cd9171ba989 87
lixianyu 3:4cd9171ba989 88 HardwareSerial* getUart() { return m_puart; }
lixianyu 3:4cd9171ba989 89
lixianyu 3:4cd9171ba989 90 #endif /* #ifdef ESP8266_USE_SOFTWARE_SERIAL */
lixianyu 3:4cd9171ba989 91
lixianyu 3:4cd9171ba989 92 void setOnData(onData cbk, void* ptr) {
lixianyu 3:4cd9171ba989 93 m_onData = cbk;
lixianyu 3:4cd9171ba989 94 m_onDataPtr = ptr;
lixianyu 3:4cd9171ba989 95 }
lixianyu 3:4cd9171ba989 96
lixianyu 3:4cd9171ba989 97 void run();
lixianyu 3:4cd9171ba989 98
lixianyu 3:4cd9171ba989 99 /**
lixianyu 3:4cd9171ba989 100 * Verify ESP8266 whether live or not.
lixianyu 3:4cd9171ba989 101 *
lixianyu 3:4cd9171ba989 102 * Actually, this method will send command "AT" to ESP8266 and waiting for "OK".
lixianyu 3:4cd9171ba989 103 *
lixianyu 3:4cd9171ba989 104 * @retval true - alive.
lixianyu 3:4cd9171ba989 105 * @retval false - dead.
lixianyu 3:4cd9171ba989 106 */
lixianyu 3:4cd9171ba989 107 bool kick(void);
lixianyu 3:4cd9171ba989 108
lixianyu 3:4cd9171ba989 109 /**
lixianyu 3:4cd9171ba989 110 * Restart ESP8266 by "AT+RST".
lixianyu 3:4cd9171ba989 111 *
lixianyu 3:4cd9171ba989 112 * This method will take 3 seconds or more.
lixianyu 3:4cd9171ba989 113 *
lixianyu 3:4cd9171ba989 114 * @retval true - success.
lixianyu 3:4cd9171ba989 115 * @retval false - failure.
lixianyu 3:4cd9171ba989 116 */
lixianyu 3:4cd9171ba989 117 bool restart(void);
lixianyu 3:4cd9171ba989 118
lixianyu 3:4cd9171ba989 119 /**
lixianyu 3:4cd9171ba989 120 * Get the version of AT Command Set.
lixianyu 3:4cd9171ba989 121 *
lixianyu 3:4cd9171ba989 122 * @return the string of version.
lixianyu 3:4cd9171ba989 123 */
lixianyu 3:4cd9171ba989 124 String getVersion(void);
lixianyu 3:4cd9171ba989 125
lixianyu 3:4cd9171ba989 126 /**
lixianyu 3:4cd9171ba989 127 * Start function of deep sleep.
lixianyu 3:4cd9171ba989 128 *
lixianyu 3:4cd9171ba989 129 * @param time - the sleep time.
lixianyu 3:4cd9171ba989 130 * @retval true - success.
lixianyu 3:4cd9171ba989 131 * @retval false - failure.
lixianyu 3:4cd9171ba989 132 * @note the feature requires hardware support.
lixianyu 3:4cd9171ba989 133 */
lixianyu 3:4cd9171ba989 134 bool deepSleep(uint32_t time);
lixianyu 3:4cd9171ba989 135
lixianyu 3:4cd9171ba989 136 /**
lixianyu 3:4cd9171ba989 137 * Switch the echo function.
lixianyu 3:4cd9171ba989 138 *
lixianyu 3:4cd9171ba989 139 * @param mode - 1 start echo -0 stop echo
lixianyu 3:4cd9171ba989 140 * @retval true - success.
lixianyu 3:4cd9171ba989 141 * @retval false - failure.
lixianyu 3:4cd9171ba989 142 *
lixianyu 3:4cd9171ba989 143 */
lixianyu 3:4cd9171ba989 144 bool setEcho(uint8_t mode);
lixianyu 3:4cd9171ba989 145
lixianyu 3:4cd9171ba989 146 /**
lixianyu 3:4cd9171ba989 147 * Restore factory.
lixianyu 3:4cd9171ba989 148 * @retval true - success.
lixianyu 3:4cd9171ba989 149 * @retval false - failure.
lixianyu 3:4cd9171ba989 150 * @note The operation can lead to restart the machine.
lixianyu 3:4cd9171ba989 151 */
lixianyu 3:4cd9171ba989 152 bool restore(void);
lixianyu 3:4cd9171ba989 153
lixianyu 3:4cd9171ba989 154 /**
lixianyu 3:4cd9171ba989 155 * Set up a serial port configuration.
lixianyu 3:4cd9171ba989 156 *
lixianyu 3:4cd9171ba989 157 * @param pattern -1 send "AT+UART=", -2 send "AT+UART_CUR=", -3 send "AT+UART_DEF=".
lixianyu 3:4cd9171ba989 158 * @param baudrate - the uart baudrate.
lixianyu 3:4cd9171ba989 159 * @retval true - success.
lixianyu 3:4cd9171ba989 160 * @retval false - failure.
lixianyu 3:4cd9171ba989 161 * @note Only allows baud rate design, for the other parameters:databits- 8,stopbits -1,parity -0,flow control -0 .
lixianyu 3:4cd9171ba989 162 */
lixianyu 3:4cd9171ba989 163 bool setUart(uint32_t baudrate,uint8_t pattern);
lixianyu 3:4cd9171ba989 164
lixianyu 3:4cd9171ba989 165 /**
lixianyu 3:4cd9171ba989 166 * Set operation mode to station.
lixianyu 3:4cd9171ba989 167 *
lixianyu 3:4cd9171ba989 168 * @param pattern1 -1, send "AT+CWMODE_DEF?",-2,send "AT+CWMODE_CUR?",-3,send "AT+CWMODE?".
lixianyu 3:4cd9171ba989 169 * @param pattern2 -1, send "AT+CWMODE_DEF=",-2,send "AT+CWMODE_CUR=",-3,send "AT+CWMODE=".
lixianyu 3:4cd9171ba989 170 * @retval true - success.
lixianyu 3:4cd9171ba989 171 * @retval false - failure.
lixianyu 3:4cd9171ba989 172 *
lixianyu 3:4cd9171ba989 173 */
lixianyu 3:4cd9171ba989 174 bool setOprToStation(uint8_t pattern1=DEFAULT_PATTERN,uint8_t pattern2=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 175
lixianyu 3:4cd9171ba989 176 /**
lixianyu 3:4cd9171ba989 177 * Get the model values list.
lixianyu 3:4cd9171ba989 178 *
lixianyu 3:4cd9171ba989 179 * @return the list of model.
lixianyu 3:4cd9171ba989 180 */
lixianyu 3:4cd9171ba989 181 String getWifiModeList(void);
lixianyu 3:4cd9171ba989 182
lixianyu 3:4cd9171ba989 183 /**
lixianyu 3:4cd9171ba989 184 * Set operation mode to softap.
lixianyu 3:4cd9171ba989 185 * @param pattern1 -1, send "AT+CWMODE_DEF?",-2,send "AT+CWMODE_CUR?",-3,send "AT+CWMODE?".
lixianyu 3:4cd9171ba989 186 * @param pattern2 -1, send "AT+CWMODE_DEF=",-2,send "AT+CWMODE_CUR=",-3,send "AT+CWMODE=".
lixianyu 3:4cd9171ba989 187 *
lixianyu 3:4cd9171ba989 188 * @retval true - success.
lixianyu 3:4cd9171ba989 189 * @retval false - failure.
lixianyu 3:4cd9171ba989 190 */
lixianyu 3:4cd9171ba989 191 bool setOprToSoftAP(uint8_t pattern1=DEFAULT_PATTERN,uint8_t pattern2=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 192
lixianyu 3:4cd9171ba989 193 /**
lixianyu 3:4cd9171ba989 194 * Set operation mode to station + softap.
lixianyu 3:4cd9171ba989 195 * @param pattern1 -1, send "AT+CWMODE_DEF?",-2,send "AT+CWMODE_CUR?",-3,send "AT+CWMODE?".
lixianyu 3:4cd9171ba989 196 * @param pattern2 -1, send "AT+CWMODE_DEF=",-2,send "AT+CWMODE_CUR=",-3,send "AT+CWMODE=".
lixianyu 3:4cd9171ba989 197 *
lixianyu 3:4cd9171ba989 198 * @retval true - success.
lixianyu 3:4cd9171ba989 199 * @retval false - failure.
lixianyu 3:4cd9171ba989 200 */
lixianyu 3:4cd9171ba989 201 bool setOprToStationSoftAP(uint8_t pattern1=DEFAULT_PATTERN,uint8_t pattern2=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 202
lixianyu 3:4cd9171ba989 203 /**
lixianyu 3:4cd9171ba989 204 * Get the operation mode.
lixianyu 3:4cd9171ba989 205 * @param pattern1 -1, send "AT+CWMODE_DEF?",-2,send "AT+CWMODE_CUR?",-3,send "AT+CWMODE?".
lixianyu 3:4cd9171ba989 206 *
lixianyu 3:4cd9171ba989 207 * @retval 0 - failure.
lixianyu 3:4cd9171ba989 208 * @retval 1 - mode Station.
lixianyu 3:4cd9171ba989 209 * @retval 2 - mode AP.
lixianyu 3:4cd9171ba989 210 * @retval 3 - mode AP + station.
lixianyu 3:4cd9171ba989 211 */
lixianyu 3:4cd9171ba989 212 uint8_t getOprMode(uint8_t pattern1=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 213
lixianyu 3:4cd9171ba989 214 /**
lixianyu 3:4cd9171ba989 215 * Search available AP list and return it.
lixianyu 3:4cd9171ba989 216 *
lixianyu 3:4cd9171ba989 217 * @return the list of available APs.
lixianyu 3:4cd9171ba989 218 * @note This method will occupy a lot of memeory(hundreds of Bytes to a couple of KBytes).
lixianyu 3:4cd9171ba989 219 * Do not call this method unless you must and ensure that your board has enough memery left.
lixianyu 3:4cd9171ba989 220 */
lixianyu 3:4cd9171ba989 221 String getAPList(void);
lixianyu 3:4cd9171ba989 222
lixianyu 3:4cd9171ba989 223 /**
lixianyu 3:4cd9171ba989 224 * Search and returns the current connect AP.
lixianyu 3:4cd9171ba989 225 *
lixianyu 3:4cd9171ba989 226 * @param pattern -1, send "AT+CWJAP_DEF?",-2,send "AT+CWJAP_CUR?",-3,send "AT+CWJAP?".
lixianyu 3:4cd9171ba989 227 * @return the ssid of AP connected now.
lixianyu 3:4cd9171ba989 228 */
lixianyu 3:4cd9171ba989 229 String getNowConecAp(uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 230
lixianyu 3:4cd9171ba989 231 /**
lixianyu 3:4cd9171ba989 232 * Join in AP.
lixianyu 3:4cd9171ba989 233 *
lixianyu 3:4cd9171ba989 234 * @param pattern -1 send "AT+CWJAP_DEF=" -2 send "AT+CWJAP_CUR=" -3 send "AT+CWJAP=".
lixianyu 3:4cd9171ba989 235 * @param ssid - SSID of AP to join in.
lixianyu 3:4cd9171ba989 236 * @param pwd - Password of AP to join in.
lixianyu 3:4cd9171ba989 237 * @retval true - success.
lixianyu 3:4cd9171ba989 238 * @retval false - failure.
lixianyu 3:4cd9171ba989 239 * @note This method will take a couple of seconds.
lixianyu 3:4cd9171ba989 240 */
lixianyu 3:4cd9171ba989 241 bool joinAP(String ssid, String pwd,uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 242
lixianyu 3:4cd9171ba989 243 /**
lixianyu 3:4cd9171ba989 244 * Leave AP joined before.
lixianyu 3:4cd9171ba989 245 *
lixianyu 3:4cd9171ba989 246 * @retval true - success.
lixianyu 3:4cd9171ba989 247 * @retval false - failure.
lixianyu 3:4cd9171ba989 248 */
lixianyu 3:4cd9171ba989 249 bool leaveAP(void);
lixianyu 3:4cd9171ba989 250
lixianyu 3:4cd9171ba989 251 /**
lixianyu 3:4cd9171ba989 252 * Set SoftAP parameters.
lixianyu 3:4cd9171ba989 253 *
lixianyu 3:4cd9171ba989 254 * @param pattern -1 send "AT+CWSAP_DEF=" -2 send "AT+CWSAP_CUR=" -3 send "AT+CWSAP=".
lixianyu 3:4cd9171ba989 255 * @param ssid - SSID of SoftAP.
lixianyu 3:4cd9171ba989 256 * @param pwd - PASSWORD of SoftAP.
lixianyu 3:4cd9171ba989 257 * @param chl - the channel (1 - 13, default: 7).
lixianyu 3:4cd9171ba989 258 * @param ecn - the way of encrypstion (0 - OPEN, 1 - WEP,
lixianyu 3:4cd9171ba989 259 * 2 - WPA_PSK, 3 - WPA2_PSK, 4 - WPA_WPA2_PSK, default: 4).
lixianyu 3:4cd9171ba989 260 * @retval true - success.
lixianyu 3:4cd9171ba989 261 * @retval false - failure.
lixianyu 3:4cd9171ba989 262 * @note This method should not be called when station mode.
lixianyu 3:4cd9171ba989 263 */
lixianyu 3:4cd9171ba989 264 bool setSoftAPParam(String ssid, String pwd, uint8_t chl = 7, uint8_t ecn = 4,uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 265
lixianyu 3:4cd9171ba989 266 /**
lixianyu 3:4cd9171ba989 267 * get SoftAP parameters.
lixianyu 3:4cd9171ba989 268 *
lixianyu 3:4cd9171ba989 269 * @param pattern -1 send "AT+CWSAP_DEF?" -2 send "AT+CWSAP_CUR?" -3 send "AT+CWSAP?".
lixianyu 3:4cd9171ba989 270 * @note This method should not be called when station mode.
lixianyu 3:4cd9171ba989 271 */
lixianyu 3:4cd9171ba989 272 String getSoftAPParam(uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 273
lixianyu 3:4cd9171ba989 274 /**
lixianyu 3:4cd9171ba989 275 * Get the IP list of devices connected to SoftAP.
lixianyu 3:4cd9171ba989 276 *
lixianyu 3:4cd9171ba989 277 * @return the list of IP.
lixianyu 3:4cd9171ba989 278 * @note This method should not be called when station mode.
lixianyu 3:4cd9171ba989 279 */
lixianyu 3:4cd9171ba989 280 String getJoinedDeviceIP(void);
lixianyu 3:4cd9171ba989 281
lixianyu 3:4cd9171ba989 282 /**
lixianyu 3:4cd9171ba989 283 * Get the current state of DHCP.
lixianyu 3:4cd9171ba989 284 *
lixianyu 3:4cd9171ba989 285 * @param pattern -1 send "AT+CWDHCP_DEF?" -2 send "AT+CWDHCP_CUR?" -3 send "AT+CWDHCP?".
lixianyu 3:4cd9171ba989 286 * @return the state of DHCP.
lixianyu 3:4cd9171ba989 287 *
lixianyu 3:4cd9171ba989 288 */
lixianyu 3:4cd9171ba989 289 String getDHCP(uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 290
lixianyu 3:4cd9171ba989 291 /**
lixianyu 3:4cd9171ba989 292 * Set the state of DHCP.
lixianyu 3:4cd9171ba989 293 * @param pattern -1 send "AT+CWDHCP_DEF=" -2 send "AT+CWDHCP_CUR=" -3 send "AT+CWDHCP=".
lixianyu 3:4cd9171ba989 294 * @param mode - set ap or set station or set ap + station.
lixianyu 3:4cd9171ba989 295 * @param en - 0 disable DHCP - 1 enable DHCP.
lixianyu 3:4cd9171ba989 296 * @retval true - success.
lixianyu 3:4cd9171ba989 297 * @retval false - failure.
lixianyu 3:4cd9171ba989 298 */
lixianyu 3:4cd9171ba989 299 bool setDHCP(uint8_t mode, uint8_t en, uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 300
lixianyu 3:4cd9171ba989 301 /**
lixianyu 3:4cd9171ba989 302 * make boot automatically connected.
lixianyu 3:4cd9171ba989 303 * @param en -1 enable -0 disable.
lixianyu 3:4cd9171ba989 304 * @retval true - success.
lixianyu 3:4cd9171ba989 305 * @retval false - failure.
lixianyu 3:4cd9171ba989 306 */
lixianyu 3:4cd9171ba989 307 bool setAutoConnect(uint8_t en);
lixianyu 3:4cd9171ba989 308
lixianyu 3:4cd9171ba989 309 /**
lixianyu 3:4cd9171ba989 310 * Get the station's MAC address.
lixianyu 3:4cd9171ba989 311 * @param pattern -1 send "AT+CIPSTAMAC_DEF?=" -2 send "AT+CIPSTAMAC_CUR?" -3 send "AT+CIPSTAMAC?".
lixianyu 3:4cd9171ba989 312 * @return mac address.
lixianyu 3:4cd9171ba989 313 * @note This method should not be called when ap mode.
lixianyu 3:4cd9171ba989 314 */
lixianyu 3:4cd9171ba989 315 String getStationMac(uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 316
lixianyu 3:4cd9171ba989 317 /**
lixianyu 3:4cd9171ba989 318 * Set the station's MAC address.
lixianyu 3:4cd9171ba989 319 * @param pattern -1 send "AT+CIPSTAMAC_DEF=" -2 send "AT+CIPSTAMAC_CUR=" -3 send "AT+CIPSTAMAC=".
lixianyu 3:4cd9171ba989 320 * @param mac - the mac address of station.
lixianyu 3:4cd9171ba989 321 * @retval true - success.
lixianyu 3:4cd9171ba989 322 * @retval false - failure.
lixianyu 3:4cd9171ba989 323 */
lixianyu 3:4cd9171ba989 324 bool setStationMac(String mac,uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 325
lixianyu 3:4cd9171ba989 326 /**
lixianyu 3:4cd9171ba989 327 * Get the station's IP.
lixianyu 3:4cd9171ba989 328 * @param pattern -1 send "AT+CIPSTA_DEF?" -2 send "AT+CIPSTA_CUR?" -3 send "AT+CIPSTA?".
lixianyu 3:4cd9171ba989 329 * @return the station's IP.
lixianyu 3:4cd9171ba989 330 * @note This method should not be called when ap mode.
lixianyu 3:4cd9171ba989 331 */
lixianyu 3:4cd9171ba989 332 String getStationIp(uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 333
lixianyu 3:4cd9171ba989 334 /**
lixianyu 3:4cd9171ba989 335 * Set the station's IP.
lixianyu 3:4cd9171ba989 336 * @param pattern -1 send "AT+CIPSTA_DEF=" -2 send "AT+CIPSTA_CUR=" -3 send "AT+CIPSTA=".
lixianyu 3:4cd9171ba989 337 * @param ip - the ip of station.
lixianyu 3:4cd9171ba989 338 * @param gateway -the gateway of station.
lixianyu 3:4cd9171ba989 339 * @param netmask -the netmask of station.
lixianyu 3:4cd9171ba989 340 * @retval true - success.
lixianyu 3:4cd9171ba989 341 * @retval false - failure.
lixianyu 3:4cd9171ba989 342 * @note This method should not be called when ap mode.
lixianyu 3:4cd9171ba989 343 */
lixianyu 3:4cd9171ba989 344 bool setStationIp(String ip,String gateway,String netmask,uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 345
lixianyu 3:4cd9171ba989 346 /**
lixianyu 3:4cd9171ba989 347 * Get the AP's IP.
lixianyu 3:4cd9171ba989 348 * @param pattern -1 send "AT+CIPAP_DEF?" -2 send "AT+CIPAP_CUR?" -3 send "AT+CIPAP?".
lixianyu 3:4cd9171ba989 349 * @return ap's ip.
lixianyu 3:4cd9171ba989 350 * @note This method should not be called when station mode.
lixianyu 3:4cd9171ba989 351 *
lixianyu 3:4cd9171ba989 352 */
lixianyu 3:4cd9171ba989 353 String getAPIp(uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 354
lixianyu 3:4cd9171ba989 355 /**
lixianyu 3:4cd9171ba989 356 * Set the AP IP.
lixianyu 3:4cd9171ba989 357 * @param pattern -1 send "AT+CIPAP_DEF=" -2 send "AT+CIPAP_CUR=" -3 send "AT+CIPAP=".
lixianyu 3:4cd9171ba989 358 * @param ip - the ip of AP.
lixianyu 3:4cd9171ba989 359 * @retval true - success.
lixianyu 3:4cd9171ba989 360 * @retval false - failure.
lixianyu 3:4cd9171ba989 361 * @note This method should not be called when station mode.
lixianyu 3:4cd9171ba989 362 */
lixianyu 3:4cd9171ba989 363 bool setAPIp(String ip,uint8_t pattern=DEFAULT_PATTERN);
lixianyu 3:4cd9171ba989 364
lixianyu 3:4cd9171ba989 365 /**
lixianyu 3:4cd9171ba989 366 * start smartconfig.
lixianyu 3:4cd9171ba989 367 * @param type -1:ESP_TOUCH -2:AirKiss.
lixianyu 3:4cd9171ba989 368 * @retval true - success.
lixianyu 3:4cd9171ba989 369 * @retval false - failure.
lixianyu 3:4cd9171ba989 370 */
lixianyu 3:4cd9171ba989 371 bool startSmartConfig(uint8_t type);
lixianyu 3:4cd9171ba989 372
lixianyu 3:4cd9171ba989 373 /**
lixianyu 3:4cd9171ba989 374 * stop smartconfig.
lixianyu 3:4cd9171ba989 375 *
lixianyu 3:4cd9171ba989 376 * @retval true - success.
lixianyu 3:4cd9171ba989 377 * @retval false - failure.
lixianyu 3:4cd9171ba989 378 */
lixianyu 3:4cd9171ba989 379 bool stopSmartConfig(void);
lixianyu 3:4cd9171ba989 380
lixianyu 3:4cd9171ba989 381 /**
lixianyu 3:4cd9171ba989 382 * Get the current status of connection(UDP and TCP).
lixianyu 3:4cd9171ba989 383 *
lixianyu 3:4cd9171ba989 384 * @return the status.
lixianyu 3:4cd9171ba989 385 */
lixianyu 3:4cd9171ba989 386 String getIPStatus(void);
lixianyu 3:4cd9171ba989 387
lixianyu 3:4cd9171ba989 388 /**
lixianyu 3:4cd9171ba989 389 * Get the IP address of ESP8266.
lixianyu 3:4cd9171ba989 390 *
lixianyu 3:4cd9171ba989 391 * @return the IP list.
lixianyu 3:4cd9171ba989 392 */
lixianyu 3:4cd9171ba989 393 String getLocalIP(void);
lixianyu 3:4cd9171ba989 394
lixianyu 3:4cd9171ba989 395 /**
lixianyu 3:4cd9171ba989 396 * Enable IP MUX(multiple connection mode).
lixianyu 3:4cd9171ba989 397 *
lixianyu 3:4cd9171ba989 398 * In multiple connection mode, a couple of TCP and UDP communication can be builded.
lixianyu 3:4cd9171ba989 399 * They can be distinguished by the identifier of TCP or UDP named mux_id.
lixianyu 3:4cd9171ba989 400 *
lixianyu 3:4cd9171ba989 401 * @retval true - success.
lixianyu 3:4cd9171ba989 402 * @retval false - failure.
lixianyu 3:4cd9171ba989 403 */
lixianyu 3:4cd9171ba989 404 bool enableMUX(void);
lixianyu 3:4cd9171ba989 405
lixianyu 3:4cd9171ba989 406 /**
lixianyu 3:4cd9171ba989 407 * Disable IP MUX(single connection mode).
lixianyu 3:4cd9171ba989 408 *
lixianyu 3:4cd9171ba989 409 * In single connection mode, only one TCP or UDP communication can be builded.
lixianyu 3:4cd9171ba989 410 *
lixianyu 3:4cd9171ba989 411 * @retval true - success.
lixianyu 3:4cd9171ba989 412 * @retval false - failure.
lixianyu 3:4cd9171ba989 413 */
lixianyu 3:4cd9171ba989 414 bool disableMUX(void);
lixianyu 3:4cd9171ba989 415
lixianyu 3:4cd9171ba989 416 /**
lixianyu 3:4cd9171ba989 417 * Create TCP connection in single mode.
lixianyu 3:4cd9171ba989 418 *
lixianyu 3:4cd9171ba989 419 * @param addr - the IP or domain name of the target host.
lixianyu 3:4cd9171ba989 420 * @param port - the port number of the target host.
lixianyu 3:4cd9171ba989 421 * @retval true - success.
lixianyu 3:4cd9171ba989 422 * @retval false - failure.
lixianyu 3:4cd9171ba989 423 */
lixianyu 3:4cd9171ba989 424 bool createTCP(String addr, uint32_t port);
lixianyu 3:4cd9171ba989 425
lixianyu 3:4cd9171ba989 426 /**
lixianyu 3:4cd9171ba989 427 * Release TCP connection in single mode.
lixianyu 3:4cd9171ba989 428 *
lixianyu 3:4cd9171ba989 429 * @retval true - success.
lixianyu 3:4cd9171ba989 430 * @retval false - failure.
lixianyu 3:4cd9171ba989 431 */
lixianyu 3:4cd9171ba989 432 bool releaseTCP(void);
lixianyu 3:4cd9171ba989 433
lixianyu 3:4cd9171ba989 434 /**
lixianyu 3:4cd9171ba989 435 * Register UDP port number in single mode.
lixianyu 3:4cd9171ba989 436 *
lixianyu 3:4cd9171ba989 437 * @param addr - the IP or domain name of the target host.
lixianyu 3:4cd9171ba989 438 * @param port - the port number of the target host.
lixianyu 3:4cd9171ba989 439 * @retval true - success.
lixianyu 3:4cd9171ba989 440 * @retval false - failure.
lixianyu 3:4cd9171ba989 441 */
lixianyu 3:4cd9171ba989 442 bool registerUDP(String addr, uint32_t port);
lixianyu 3:4cd9171ba989 443
lixianyu 3:4cd9171ba989 444 /**
lixianyu 3:4cd9171ba989 445 * Unregister UDP port number in single mode.
lixianyu 3:4cd9171ba989 446 *
lixianyu 3:4cd9171ba989 447 * @retval true - success.
lixianyu 3:4cd9171ba989 448 * @retval false - failure.
lixianyu 3:4cd9171ba989 449 */
lixianyu 3:4cd9171ba989 450 bool unregisterUDP(void);
lixianyu 3:4cd9171ba989 451
lixianyu 3:4cd9171ba989 452 /**
lixianyu 3:4cd9171ba989 453 * Create TCP connection in multiple mode.
lixianyu 3:4cd9171ba989 454 *
lixianyu 3:4cd9171ba989 455 * @param mux_id - the identifier of this TCP(available value: 0 - 4).
lixianyu 3:4cd9171ba989 456 * @param addr - the IP or domain name of the target host.
lixianyu 3:4cd9171ba989 457 * @param port - the port number of the target host.
lixianyu 3:4cd9171ba989 458 * @retval true - success.
lixianyu 3:4cd9171ba989 459 * @retval false - failure.
lixianyu 3:4cd9171ba989 460 */
lixianyu 3:4cd9171ba989 461 bool createTCP(uint8_t mux_id, String addr, uint32_t port);
lixianyu 3:4cd9171ba989 462
lixianyu 3:4cd9171ba989 463 /**
lixianyu 3:4cd9171ba989 464 * Release TCP connection in multiple mode.
lixianyu 3:4cd9171ba989 465 *
lixianyu 3:4cd9171ba989 466 * @param mux_id - the identifier of this TCP(available value: 0 - 4).
lixianyu 3:4cd9171ba989 467 * @retval true - success.
lixianyu 3:4cd9171ba989 468 * @retval false - failure.
lixianyu 3:4cd9171ba989 469 */
lixianyu 3:4cd9171ba989 470 bool releaseTCP(uint8_t mux_id);
lixianyu 3:4cd9171ba989 471
lixianyu 3:4cd9171ba989 472 /**
lixianyu 3:4cd9171ba989 473 * Register UDP port number in multiple mode.
lixianyu 3:4cd9171ba989 474 *
lixianyu 3:4cd9171ba989 475 * @param mux_id - the identifier of this TCP(available value: 0 - 4).
lixianyu 3:4cd9171ba989 476 * @param addr - the IP or domain name of the target host.
lixianyu 3:4cd9171ba989 477 * @param port - the port number of the target host.
lixianyu 3:4cd9171ba989 478 * @retval true - success.
lixianyu 3:4cd9171ba989 479 * @retval false - failure.
lixianyu 3:4cd9171ba989 480 */
lixianyu 3:4cd9171ba989 481 bool registerUDP(uint8_t mux_id, String addr, uint32_t port);
lixianyu 3:4cd9171ba989 482
lixianyu 3:4cd9171ba989 483 /**
lixianyu 3:4cd9171ba989 484 * Unregister UDP port number in multiple mode.
lixianyu 3:4cd9171ba989 485 *
lixianyu 3:4cd9171ba989 486 * @param mux_id - the identifier of this TCP(available value: 0 - 4).
lixianyu 3:4cd9171ba989 487 * @retval true - success.
lixianyu 3:4cd9171ba989 488 * @retval false - failure.
lixianyu 3:4cd9171ba989 489 */
lixianyu 3:4cd9171ba989 490 bool unregisterUDP(uint8_t mux_id);
lixianyu 3:4cd9171ba989 491
lixianyu 3:4cd9171ba989 492 /**
lixianyu 3:4cd9171ba989 493 * Set the timeout of TCP Server.
lixianyu 3:4cd9171ba989 494 *
lixianyu 3:4cd9171ba989 495 * @param timeout - the duration for timeout by second(0 ~ 28800, default:180).
lixianyu 3:4cd9171ba989 496 * @retval true - success.
lixianyu 3:4cd9171ba989 497 * @retval false - failure.
lixianyu 3:4cd9171ba989 498 */
lixianyu 3:4cd9171ba989 499 bool setTCPServerTimeout(uint32_t timeout = 180);
lixianyu 3:4cd9171ba989 500
lixianyu 3:4cd9171ba989 501 /**
lixianyu 3:4cd9171ba989 502 * Start TCP Server(Only in multiple mode).
lixianyu 3:4cd9171ba989 503 *
lixianyu 3:4cd9171ba989 504 * After started, user should call method: getIPStatus to know the status of TCP connections.
lixianyu 3:4cd9171ba989 505 * The methods of receiving data can be called for user's any purpose. After communication,
lixianyu 3:4cd9171ba989 506 * release the TCP connection is needed by calling method: releaseTCP with mux_id.
lixianyu 3:4cd9171ba989 507 *
lixianyu 3:4cd9171ba989 508 * @param port - the port number to listen(default: 333).
lixianyu 3:4cd9171ba989 509 * @retval true - success.
lixianyu 3:4cd9171ba989 510 * @retval false - failure.
lixianyu 3:4cd9171ba989 511 *
lixianyu 3:4cd9171ba989 512 * @see String getIPStatus(void);
lixianyu 3:4cd9171ba989 513 * @see uint32_t recv(uint8_t *coming_mux_id, uint8_t *buffer, uint32_t len, uint32_t timeout);
lixianyu 3:4cd9171ba989 514 * @see bool releaseTCP(uint8_t mux_id);
lixianyu 3:4cd9171ba989 515 */
lixianyu 3:4cd9171ba989 516 bool startTCPServer(uint32_t port = 333);
lixianyu 3:4cd9171ba989 517
lixianyu 3:4cd9171ba989 518 /**
lixianyu 3:4cd9171ba989 519 * Stop TCP Server(Only in multiple mode).
lixianyu 3:4cd9171ba989 520 *
lixianyu 3:4cd9171ba989 521 * @retval true - success.
lixianyu 3:4cd9171ba989 522 * @retval false - failure.
lixianyu 3:4cd9171ba989 523 */
lixianyu 3:4cd9171ba989 524 bool stopTCPServer(void);
lixianyu 3:4cd9171ba989 525
lixianyu 3:4cd9171ba989 526 /**
lixianyu 3:4cd9171ba989 527 *Set the module transfer mode
lixianyu 3:4cd9171ba989 528 *
lixianyu 3:4cd9171ba989 529 * @retval true - success.
lixianyu 3:4cd9171ba989 530 * @retval false - failure.
lixianyu 3:4cd9171ba989 531 */
lixianyu 3:4cd9171ba989 532 bool setCIPMODE(uint8_t mode);
lixianyu 3:4cd9171ba989 533
lixianyu 3:4cd9171ba989 534 /**
lixianyu 3:4cd9171ba989 535 * Start Server(Only in multiple mode).
lixianyu 3:4cd9171ba989 536 *
lixianyu 3:4cd9171ba989 537 * @param port - the port number to listen(default: 333).
lixianyu 3:4cd9171ba989 538 * @retval true - success.
lixianyu 3:4cd9171ba989 539 * @retval false - failure.
lixianyu 3:4cd9171ba989 540 *
lixianyu 3:4cd9171ba989 541 * @see String getIPStatus(void);
lixianyu 3:4cd9171ba989 542 * @see uint32_t recv(uint8_t *coming_mux_id, uint8_t *buffer, uint32_t len, uint32_t timeout);
lixianyu 3:4cd9171ba989 543 */
lixianyu 3:4cd9171ba989 544 bool startServer(uint32_t port = 333);
lixianyu 3:4cd9171ba989 545
lixianyu 3:4cd9171ba989 546 /**
lixianyu 3:4cd9171ba989 547 * Stop Server(Only in multiple mode).
lixianyu 3:4cd9171ba989 548 *
lixianyu 3:4cd9171ba989 549 * @retval true - success.
lixianyu 3:4cd9171ba989 550 * @retval false - failure.
lixianyu 3:4cd9171ba989 551 */
lixianyu 3:4cd9171ba989 552 bool stopServer(void);
lixianyu 3:4cd9171ba989 553 /**
lixianyu 3:4cd9171ba989 554 * Save the passthrough links
lixianyu 3:4cd9171ba989 555 *
lixianyu 3:4cd9171ba989 556 * @retval true - success.
lixianyu 3:4cd9171ba989 557 * @retval false - failure.
lixianyu 3:4cd9171ba989 558 */
lixianyu 3:4cd9171ba989 559 bool saveTransLink (uint8_t mode,String ip,uint32_t port);
lixianyu 3:4cd9171ba989 560
lixianyu 3:4cd9171ba989 561 /**
lixianyu 3:4cd9171ba989 562 * PING COMMAND.
lixianyu 3:4cd9171ba989 563 *
lixianyu 3:4cd9171ba989 564 * @retval true - success.
lixianyu 3:4cd9171ba989 565 * @retval false - failure.
lixianyu 3:4cd9171ba989 566 */
lixianyu 3:4cd9171ba989 567 bool setPing(String ip);
lixianyu 3:4cd9171ba989 568
lixianyu 3:4cd9171ba989 569 /**
lixianyu 3:4cd9171ba989 570 * Send data based on TCP or UDP builded already in single mode.
lixianyu 3:4cd9171ba989 571 *
lixianyu 3:4cd9171ba989 572 * @param buffer - the buffer of data to send.
lixianyu 3:4cd9171ba989 573 * @param len - the length of data to send.
lixianyu 3:4cd9171ba989 574 * @retval true - success.
lixianyu 3:4cd9171ba989 575 * @retval false - failure.
lixianyu 3:4cd9171ba989 576 */
lixianyu 3:4cd9171ba989 577 bool send(const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 578
lixianyu 3:4cd9171ba989 579 /**
lixianyu 3:4cd9171ba989 580 * Send data based on one of TCP or UDP builded already in multiple mode.
lixianyu 3:4cd9171ba989 581 *
lixianyu 3:4cd9171ba989 582 * @param mux_id - the identifier of this TCP(available value: 0 - 4).
lixianyu 3:4cd9171ba989 583 * @param buffer - the buffer of data to send.
lixianyu 3:4cd9171ba989 584 * @param len - the length of data to send.
lixianyu 3:4cd9171ba989 585 * @retval true - success.
lixianyu 3:4cd9171ba989 586 * @retval false - failure.
lixianyu 3:4cd9171ba989 587 */
lixianyu 3:4cd9171ba989 588 bool send(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 589
lixianyu 3:4cd9171ba989 590 /**
lixianyu 3:4cd9171ba989 591 * Send data based on TCP or UDP builded already in single mode.
lixianyu 3:4cd9171ba989 592 *
lixianyu 3:4cd9171ba989 593 * @param buffer - the buffer of data to send from flash memeory.
lixianyu 3:4cd9171ba989 594 * @param len - the length of data to send.
lixianyu 3:4cd9171ba989 595 * @retval true - success.
lixianyu 3:4cd9171ba989 596 * @retval false - failure.
lixianyu 3:4cd9171ba989 597 */
lixianyu 3:4cd9171ba989 598 bool sendFromFlash(const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 599
lixianyu 3:4cd9171ba989 600 /**
lixianyu 3:4cd9171ba989 601 * Send data based on one of TCP or UDP builded already in multiple mode.
lixianyu 3:4cd9171ba989 602 *
lixianyu 3:4cd9171ba989 603 * @param mux_id - the identifier of this TCP(available value: 0 - 4).
lixianyu 3:4cd9171ba989 604 * @param buffer - the buffer of data to send from flash memeory.
lixianyu 3:4cd9171ba989 605 * @param len - the length of data to send.
lixianyu 3:4cd9171ba989 606 * @retval true - success.
lixianyu 3:4cd9171ba989 607 * @retval false - failure.
lixianyu 3:4cd9171ba989 608 */
lixianyu 3:4cd9171ba989 609 bool sendFromFlash(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 610
lixianyu 3:4cd9171ba989 611 private:
lixianyu 3:4cd9171ba989 612
lixianyu 3:4cd9171ba989 613 /*
lixianyu 3:4cd9171ba989 614 * Empty the buffer or UART RX.
lixianyu 3:4cd9171ba989 615 */
lixianyu 3:4cd9171ba989 616 void rx_empty(void);
lixianyu 3:4cd9171ba989 617
lixianyu 3:4cd9171ba989 618 /*
lixianyu 3:4cd9171ba989 619 * Recvive data from uart. Return all received data if target found or timeout.
lixianyu 3:4cd9171ba989 620 */
lixianyu 3:4cd9171ba989 621 String recvString(String target, uint32_t timeout = 1000);
lixianyu 3:4cd9171ba989 622
lixianyu 3:4cd9171ba989 623 /*
lixianyu 3:4cd9171ba989 624 * Recvive data from uart. Return all received data if one of target1 and target2 found or timeout.
lixianyu 3:4cd9171ba989 625 */
lixianyu 3:4cd9171ba989 626 String recvString(String target1, String target2, uint32_t timeout = 1000);
lixianyu 3:4cd9171ba989 627
lixianyu 3:4cd9171ba989 628 /*
lixianyu 3:4cd9171ba989 629 * Recvive data from uart. Return all received data if one of target1, target2 and target3 found or timeout.
lixianyu 3:4cd9171ba989 630 */
lixianyu 3:4cd9171ba989 631 String recvString(String target1, String target2, String target3, uint32_t timeout = 1000);
lixianyu 3:4cd9171ba989 632
lixianyu 3:4cd9171ba989 633 /*
lixianyu 3:4cd9171ba989 634 * Recvive data from uart and search first target. Return true if target found, false for timeout.
lixianyu 3:4cd9171ba989 635 */
lixianyu 3:4cd9171ba989 636 bool recvFind(String target, uint32_t timeout = 1000);
lixianyu 3:4cd9171ba989 637
lixianyu 3:4cd9171ba989 638 /*
lixianyu 3:4cd9171ba989 639 * Recvive data from uart and search first target and cut out the substring between begin and end(excluding begin and end self).
lixianyu 3:4cd9171ba989 640 * Return true if target found, false for timeout.
lixianyu 3:4cd9171ba989 641 */
lixianyu 3:4cd9171ba989 642 bool recvFindAndFilter(String target, String begin, String end, String &data, uint32_t timeout = 1000);
lixianyu 3:4cd9171ba989 643
lixianyu 3:4cd9171ba989 644 /*
lixianyu 3:4cd9171ba989 645 * Receive a package from uart.
lixianyu 3:4cd9171ba989 646 *
lixianyu 3:4cd9171ba989 647 * @param buffer - the buffer storing data.
lixianyu 3:4cd9171ba989 648 * @param buffer_size - guess what!
lixianyu 3:4cd9171ba989 649 * @param data_len - the length of data actually received(maybe more than buffer_size, the remained data will be abandoned).
lixianyu 3:4cd9171ba989 650 * @param timeout - the duration waitting data comming.
lixianyu 3:4cd9171ba989 651 * @param coming_mux_id - in single connection mode, should be NULL and not NULL in multiple.
lixianyu 3:4cd9171ba989 652 */
lixianyu 3:4cd9171ba989 653 uint32_t checkIPD(String& data);
lixianyu 3:4cd9171ba989 654
lixianyu 3:4cd9171ba989 655
lixianyu 3:4cd9171ba989 656 bool eAT(void);
lixianyu 3:4cd9171ba989 657 bool eATRST(void);
lixianyu 3:4cd9171ba989 658 bool eATGMR(String &version);
lixianyu 3:4cd9171ba989 659 bool eATGSLP(uint32_t time);
lixianyu 3:4cd9171ba989 660 bool eATE(uint8_t mode);
lixianyu 3:4cd9171ba989 661 bool eATRESTORE(void);
lixianyu 3:4cd9171ba989 662 bool eATSETUART(uint32_t baudrate,uint8_t pattern);
lixianyu 3:4cd9171ba989 663
lixianyu 3:4cd9171ba989 664 bool qATCWMODE(uint8_t *mode,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 665 bool eATCWMODE(String &list) ;
lixianyu 3:4cd9171ba989 666 bool sATCWMODE(uint8_t mode,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 667 bool qATCWJAP(String &ssid,uint8_t pattern=3) ;
lixianyu 3:4cd9171ba989 668 bool sATCWJAP(String ssid, String pwd,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 669 bool eATCWLAP(String &list);
lixianyu 3:4cd9171ba989 670 bool eATCWQAP(void);
lixianyu 3:4cd9171ba989 671 bool qATCWSAP(String &List,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 672 bool sATCWSAP(String ssid, String pwd, uint8_t chl, uint8_t ecn,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 673 bool eATCWLIF(String &list);
lixianyu 3:4cd9171ba989 674 bool qATCWDHCP(String &List,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 675 bool sATCWDHCP(uint8_t mode, uint8_t en, uint8_t pattern=3);
lixianyu 3:4cd9171ba989 676 bool eATCWAUTOCONN(uint8_t en);
lixianyu 3:4cd9171ba989 677 bool qATCIPSTAMAC(String &mac,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 678 bool eATCIPSTAMAC(String mac,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 679 bool qATCIPSTAIP(String &ip,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 680 bool eATCIPSTAIP(String ip,String gateway,String netmask,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 681 bool qATCIPAP(String &ip,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 682 bool eATCIPAP(String ip,uint8_t pattern=3);
lixianyu 3:4cd9171ba989 683 bool eCWSTARTSMART(uint8_t type);
lixianyu 3:4cd9171ba989 684 bool eCWSTOPSMART(void);
lixianyu 3:4cd9171ba989 685
lixianyu 3:4cd9171ba989 686
lixianyu 3:4cd9171ba989 687 bool eATCIPSTATUS(String &list);
lixianyu 3:4cd9171ba989 688 bool sATCIPSTARTSingle(String type, String addr, uint32_t port);
lixianyu 3:4cd9171ba989 689 bool sATCIPSTARTMultiple(uint8_t mux_id, String type, String addr, uint32_t port);
lixianyu 3:4cd9171ba989 690 bool sATCIPSENDSingle(const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 691 bool sATCIPSENDMultiple(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 692 bool sATCIPSENDSingleFromFlash(const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 693 bool sATCIPSENDMultipleFromFlash(uint8_t mux_id, const uint8_t *buffer, uint32_t len);
lixianyu 3:4cd9171ba989 694 bool sATCIPCLOSEMulitple(uint8_t mux_id);
lixianyu 3:4cd9171ba989 695 bool eATCIPCLOSESingle(void);
lixianyu 3:4cd9171ba989 696 bool eATCIFSR(String &list);
lixianyu 3:4cd9171ba989 697 bool sATCIPMUX(uint8_t mode);
lixianyu 3:4cd9171ba989 698 bool sATCIPSERVER(uint8_t mode, uint32_t port = 333);
lixianyu 3:4cd9171ba989 699 bool sATCIPMODE(uint8_t mode);
lixianyu 3:4cd9171ba989 700 bool eATSAVETRANSLINK(uint8_t mode,String ip,uint32_t port);
lixianyu 3:4cd9171ba989 701 bool eATPING(String ip);
lixianyu 3:4cd9171ba989 702 bool sATCIPSTO(uint32_t timeout);
lixianyu 3:4cd9171ba989 703
lixianyu 3:4cd9171ba989 704 /*
lixianyu 3:4cd9171ba989 705 * +IPD,len:data
lixianyu 3:4cd9171ba989 706 * +IPD,id,len:data
lixianyu 3:4cd9171ba989 707 */
lixianyu 3:4cd9171ba989 708
lixianyu 3:4cd9171ba989 709 #ifdef ESP8266_USE_SOFTWARE_SERIAL
lixianyu 3:4cd9171ba989 710 SoftwareSerial *m_puart; /* The UART to communicate with ESP8266 */
lixianyu 3:4cd9171ba989 711 #else
lixianyu 3:4cd9171ba989 712 HardwareSerial *m_puart; /* The UART to communicate with ESP8266 */
lixianyu 3:4cd9171ba989 713 #endif
lixianyu 3:4cd9171ba989 714 onData m_onData;
lixianyu 3:4cd9171ba989 715 void* m_onDataPtr;
lixianyu 3:4cd9171ba989 716 };
lixianyu 3:4cd9171ba989 717
lixianyu 3:4cd9171ba989 718 #endif /* #ifndef __ESP8266_H__ */
lixianyu 3:4cd9171ba989 719
lixianyu 3:4cd9171ba989 720