Draft library for ESP8266
esp8266.cpp@0:a94222cedd2e, 2015-05-01 (annotated)
- Committer:
- adhithyan15
- Date:
- Fri May 01 14:46:00 2015 +0000
- Revision:
- 0:a94222cedd2e
Initial Commit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
adhithyan15 | 0:a94222cedd2e | 1 | #include "esp8266.h" |
adhithyan15 | 0:a94222cedd2e | 2 | #include <algorithm> |
adhithyan15 | 0:a94222cedd2e | 3 | #include <cctype> |
adhithyan15 | 0:a94222cedd2e | 4 | |
adhithyan15 | 0:a94222cedd2e | 5 | // This file implements the methods described in the esp8266 header file |
adhithyan15 | 0:a94222cedd2e | 6 | // Copyright: Adhithya Rajasekaran |
adhithyan15 | 0:a94222cedd2e | 7 | // License: MIT License |
adhithyan15 | 0:a94222cedd2e | 8 | |
adhithyan15 | 0:a94222cedd2e | 9 | /* General Note About ESP8266 |
adhithyan15 | 0:a94222cedd2e | 10 | |
adhithyan15 | 0:a94222cedd2e | 11 | ESP8266 is controlled by using AT commands sent via Serial. Most of the API |
adhithyan15 | 0:a94222cedd2e | 12 | is implemented with AT commands. You can find the list of all AT commands at |
adhithyan15 | 0:a94222cedd2e | 13 | https://nurdspace.nl/ESP8266 |
adhithyan15 | 0:a94222cedd2e | 14 | |
adhithyan15 | 0:a94222cedd2e | 15 | */ |
adhithyan15 | 0:a94222cedd2e | 16 | |
adhithyan15 | 0:a94222cedd2e | 17 | ESP8266::ESP8266(MODSERIAL *input, char* inputSSID, char* inputPassword){ |
adhithyan15 | 0:a94222cedd2e | 18 | /* |
adhithyan15 | 0:a94222cedd2e | 19 | Inputs: |
adhithyan15 | 0:a94222cedd2e | 20 | 1. MODSERIAL* input - Pass in a reference to a MODSERIAL object. This MODSERIAL object should be connected to the |
adhithyan15 | 0:a94222cedd2e | 21 | ESP8266 module's pins 3 and 4. MODSERIAL is used instead of regular serial because it has buffering capability. |
adhithyan15 | 0:a94222cedd2e | 22 | 2. char* inputSSID - Pass in a reference to a character array consisting of the SSID of the wireless network you |
adhithyan15 | 0:a94222cedd2e | 23 | want to connect to. Currently the library assumes that you are passing in the correct SSID and won't do any error |
adhithyan15 | 0:a94222cedd2e | 24 | checking. |
adhithyan15 | 0:a94222cedd2e | 25 | 3. char* inputPassword - Pass in a reference to a character array consisting of the password/shared key of the wireless network you |
adhithyan15 | 0:a94222cedd2e | 26 | want to connect to. Currently the library assumes that you are passing in the correct password and won't do any error |
adhithyan15 | 0:a94222cedd2e | 27 | checking. |
adhithyan15 | 0:a94222cedd2e | 28 | |
adhithyan15 | 0:a94222cedd2e | 29 | TODO: |
adhithyan15 | 0:a94222cedd2e | 30 | 1. Error checking of SSIDs by calling listOfAccessPoints() method and checking if the inputSSID is in the output of |
adhithyan15 | 0:a94222cedd2e | 31 | listOfAccessPoints() method. |
adhithyan15 | 0:a94222cedd2e | 32 | 2. Error checking of passwords by trying to actually connect the access point |
adhithyan15 | 0:a94222cedd2e | 33 | */ |
adhithyan15 | 0:a94222cedd2e | 34 | wifi = input; |
adhithyan15 | 0:a94222cedd2e | 35 | wifi->baud(115200); // This is the baud rate required to communicate the ESP8266 chip |
adhithyan15 | 0:a94222cedd2e | 36 | connection_successful = false; |
adhithyan15 | 0:a94222cedd2e | 37 | if(wiredCorrectly()){ |
adhithyan15 | 0:a94222cedd2e | 38 | //connection_successful = true; |
adhithyan15 | 0:a94222cedd2e | 39 | if(joinAccessPoint(inputSSID,inputPassword)){ |
adhithyan15 | 0:a94222cedd2e | 40 | getMyIP(); |
adhithyan15 | 0:a94222cedd2e | 41 | string error = "ERROR"; |
adhithyan15 | 0:a94222cedd2e | 42 | if(ip != error){ |
adhithyan15 | 0:a94222cedd2e | 43 | connection_successful = true; |
adhithyan15 | 0:a94222cedd2e | 44 | } |
adhithyan15 | 0:a94222cedd2e | 45 | } |
adhithyan15 | 0:a94222cedd2e | 46 | } |
adhithyan15 | 0:a94222cedd2e | 47 | } |
adhithyan15 | 0:a94222cedd2e | 48 | |
adhithyan15 | 0:a94222cedd2e | 49 | string removeSpaces(string input) |
adhithyan15 | 0:a94222cedd2e | 50 | { |
adhithyan15 | 0:a94222cedd2e | 51 | input.erase(std::remove(input.begin(),input.end(),'\r'),input.end()); |
adhithyan15 | 0:a94222cedd2e | 52 | input.erase(std::remove(input.begin(),input.end(),'\n'),input.end()); |
adhithyan15 | 0:a94222cedd2e | 53 | return input; |
adhithyan15 | 0:a94222cedd2e | 54 | } |
adhithyan15 | 0:a94222cedd2e | 55 | |
adhithyan15 | 0:a94222cedd2e | 56 | bool ESP8266::wiredCorrectly(){ |
adhithyan15 | 0:a94222cedd2e | 57 | // This method checks if the ESP8266 module is wired correctly. |
adhithyan15 | 0:a94222cedd2e | 58 | |
adhithyan15 | 0:a94222cedd2e | 59 | wifi->printf("AT\r\n"); |
adhithyan15 | 0:a94222cedd2e | 60 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 61 | char buf[20]; |
adhithyan15 | 0:a94222cedd2e | 62 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 63 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 64 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 65 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 66 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 67 | }else{ |
adhithyan15 | 0:a94222cedd2e | 68 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 69 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 70 | break; |
adhithyan15 | 0:a94222cedd2e | 71 | } |
adhithyan15 | 0:a94222cedd2e | 72 | } |
adhithyan15 | 0:a94222cedd2e | 73 | } |
adhithyan15 | 0:a94222cedd2e | 74 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 75 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 76 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 77 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 78 | printf("\n"); |
adhithyan15 | 0:a94222cedd2e | 79 | size_t found = actual_output.find("OK"); |
adhithyan15 | 0:a94222cedd2e | 80 | if (found!=std::string::npos){ |
adhithyan15 | 0:a94222cedd2e | 81 | if(reset() == true){ |
adhithyan15 | 0:a94222cedd2e | 82 | setMode(3); |
adhithyan15 | 0:a94222cedd2e | 83 | return true; |
adhithyan15 | 0:a94222cedd2e | 84 | }else{ |
adhithyan15 | 0:a94222cedd2e | 85 | return false; |
adhithyan15 | 0:a94222cedd2e | 86 | } |
adhithyan15 | 0:a94222cedd2e | 87 | }else{ |
adhithyan15 | 0:a94222cedd2e | 88 | return false; |
adhithyan15 | 0:a94222cedd2e | 89 | } |
adhithyan15 | 0:a94222cedd2e | 90 | } |
adhithyan15 | 0:a94222cedd2e | 91 | |
adhithyan15 | 0:a94222cedd2e | 92 | bool ESP8266::reset(){ |
adhithyan15 | 0:a94222cedd2e | 93 | // This method resets the settings inside the ESP8266 chip |
adhithyan15 | 0:a94222cedd2e | 94 | |
adhithyan15 | 0:a94222cedd2e | 95 | wifi->printf("AT+RST\r\n"); |
adhithyan15 | 0:a94222cedd2e | 96 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 97 | char buf[2000]; |
adhithyan15 | 0:a94222cedd2e | 98 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 99 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 100 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 101 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 102 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 103 | }else{ |
adhithyan15 | 0:a94222cedd2e | 104 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 105 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 106 | break; |
adhithyan15 | 0:a94222cedd2e | 107 | } |
adhithyan15 | 0:a94222cedd2e | 108 | } |
adhithyan15 | 0:a94222cedd2e | 109 | } |
adhithyan15 | 0:a94222cedd2e | 110 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 111 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 112 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 113 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 114 | printf("\n"); |
adhithyan15 | 0:a94222cedd2e | 115 | size_t found = actual_output.find("rst"); |
adhithyan15 | 0:a94222cedd2e | 116 | if (found!=std::string::npos){ |
adhithyan15 | 0:a94222cedd2e | 117 | return true; |
adhithyan15 | 0:a94222cedd2e | 118 | }else{ |
adhithyan15 | 0:a94222cedd2e | 119 | return false; |
adhithyan15 | 0:a94222cedd2e | 120 | } |
adhithyan15 | 0:a94222cedd2e | 121 | } |
adhithyan15 | 0:a94222cedd2e | 122 | |
adhithyan15 | 0:a94222cedd2e | 123 | char* ESP8266::firmwareVersion(){ |
adhithyan15 | 0:a94222cedd2e | 124 | // Incomplete Method. Just use for firmware debugging purposes |
adhithyan15 | 0:a94222cedd2e | 125 | wifi->printf("AT+GMR\r\n"); |
adhithyan15 | 0:a94222cedd2e | 126 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 127 | char buf[2000]; |
adhithyan15 | 0:a94222cedd2e | 128 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 129 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 130 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 131 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 132 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 133 | }else{ |
adhithyan15 | 0:a94222cedd2e | 134 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 135 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 136 | break; |
adhithyan15 | 0:a94222cedd2e | 137 | } |
adhithyan15 | 0:a94222cedd2e | 138 | } |
adhithyan15 | 0:a94222cedd2e | 139 | } |
adhithyan15 | 0:a94222cedd2e | 140 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 141 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 142 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 143 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 144 | printf("\n"); |
adhithyan15 | 0:a94222cedd2e | 145 | const char* output = actual_output.c_str(); |
adhithyan15 | 0:a94222cedd2e | 146 | return (char*) output; |
adhithyan15 | 0:a94222cedd2e | 147 | } |
adhithyan15 | 0:a94222cedd2e | 148 | |
adhithyan15 | 0:a94222cedd2e | 149 | void ESP8266::setMode(int val){ |
adhithyan15 | 0:a94222cedd2e | 150 | // ESP8266 is set to mode 3 which will allow it to act |
adhithyan15 | 0:a94222cedd2e | 151 | // both as a client and server. |
adhithyan15 | 0:a94222cedd2e | 152 | wifi->printf("AT+CWMODE=3\r\n"); |
adhithyan15 | 0:a94222cedd2e | 153 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 154 | char buf[2000]; |
adhithyan15 | 0:a94222cedd2e | 155 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 156 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 157 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 158 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 159 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 160 | }else{ |
adhithyan15 | 0:a94222cedd2e | 161 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 162 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 163 | break; |
adhithyan15 | 0:a94222cedd2e | 164 | } |
adhithyan15 | 0:a94222cedd2e | 165 | } |
adhithyan15 | 0:a94222cedd2e | 166 | } |
adhithyan15 | 0:a94222cedd2e | 167 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 168 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 169 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 170 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 171 | printf("\n"); |
adhithyan15 | 0:a94222cedd2e | 172 | } |
adhithyan15 | 0:a94222cedd2e | 173 | |
adhithyan15 | 0:a94222cedd2e | 174 | bool ESP8266::checkConnection(){ |
adhithyan15 | 0:a94222cedd2e | 175 | return connection_successful; |
adhithyan15 | 0:a94222cedd2e | 176 | } |
adhithyan15 | 0:a94222cedd2e | 177 | |
adhithyan15 | 0:a94222cedd2e | 178 | bool ESP8266::gotAnIPAddress(){ |
adhithyan15 | 0:a94222cedd2e | 179 | wifi->printf("AT+CIFSR\r\n"); |
adhithyan15 | 0:a94222cedd2e | 180 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 181 | char buf[2000]; |
adhithyan15 | 0:a94222cedd2e | 182 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 183 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 184 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 185 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 186 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 187 | }else{ |
adhithyan15 | 0:a94222cedd2e | 188 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 189 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 190 | break; |
adhithyan15 | 0:a94222cedd2e | 191 | } |
adhithyan15 | 0:a94222cedd2e | 192 | } |
adhithyan15 | 0:a94222cedd2e | 193 | } |
adhithyan15 | 0:a94222cedd2e | 194 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 195 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 196 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 197 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 198 | printf("\n"); |
adhithyan15 | 0:a94222cedd2e | 199 | size_t found = actual_output.find("ERROR"); |
adhithyan15 | 0:a94222cedd2e | 200 | if (found!=std::string::npos){ |
adhithyan15 | 0:a94222cedd2e | 201 | return false; |
adhithyan15 | 0:a94222cedd2e | 202 | }else{ |
adhithyan15 | 0:a94222cedd2e | 203 | return true; |
adhithyan15 | 0:a94222cedd2e | 204 | } |
adhithyan15 | 0:a94222cedd2e | 205 | } |
adhithyan15 | 0:a94222cedd2e | 206 | |
adhithyan15 | 0:a94222cedd2e | 207 | |
adhithyan15 | 0:a94222cedd2e | 208 | bool ESP8266::joinAccessPoint(char *inputSSID, char *inputPassword){ |
adhithyan15 | 0:a94222cedd2e | 209 | // This method establishes connection with the requested access point |
adhithyan15 | 0:a94222cedd2e | 210 | // All authentication methods are supported (WEP, WPA) |
adhithyan15 | 0:a94222cedd2e | 211 | wifi->printf("AT+CWJAP=\"%s\",\"%s\"\r\n",inputSSID,inputPassword); |
adhithyan15 | 0:a94222cedd2e | 212 | wait(7); |
adhithyan15 | 0:a94222cedd2e | 213 | char buf[2000]; |
adhithyan15 | 0:a94222cedd2e | 214 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 215 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 216 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 217 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 218 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 219 | }else{ |
adhithyan15 | 0:a94222cedd2e | 220 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 221 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 222 | break; |
adhithyan15 | 0:a94222cedd2e | 223 | } |
adhithyan15 | 0:a94222cedd2e | 224 | } |
adhithyan15 | 0:a94222cedd2e | 225 | } |
adhithyan15 | 0:a94222cedd2e | 226 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 227 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 228 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 229 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 230 | printf("\n"); |
adhithyan15 | 0:a94222cedd2e | 231 | if(gotAnIPAddress() == true){ |
adhithyan15 | 0:a94222cedd2e | 232 | return true; |
adhithyan15 | 0:a94222cedd2e | 233 | }else{ |
adhithyan15 | 0:a94222cedd2e | 234 | return false; |
adhithyan15 | 0:a94222cedd2e | 235 | } |
adhithyan15 | 0:a94222cedd2e | 236 | } |
adhithyan15 | 0:a94222cedd2e | 237 | |
adhithyan15 | 0:a94222cedd2e | 238 | string ESP8266::getMyIP(){ |
adhithyan15 | 0:a94222cedd2e | 239 | // Fetches the assigned IP address of the module |
adhithyan15 | 0:a94222cedd2e | 240 | wifi->printf("AT+CIFSR\r\n"); |
adhithyan15 | 0:a94222cedd2e | 241 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 242 | char buf[2000]; |
adhithyan15 | 0:a94222cedd2e | 243 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 244 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 245 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 246 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 247 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 248 | }else{ |
adhithyan15 | 0:a94222cedd2e | 249 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 250 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 251 | break; |
adhithyan15 | 0:a94222cedd2e | 252 | } |
adhithyan15 | 0:a94222cedd2e | 253 | } |
adhithyan15 | 0:a94222cedd2e | 254 | } |
adhithyan15 | 0:a94222cedd2e | 255 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 256 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 257 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 258 | string s = actual_output; |
adhithyan15 | 0:a94222cedd2e | 259 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 260 | s.erase( remove_if( s.begin(), s.end(),std::isspace ), s.end() ); |
adhithyan15 | 0:a94222cedd2e | 261 | string ip_address = s.substr(8,s.length()); |
adhithyan15 | 0:a94222cedd2e | 262 | string error = "ERROR"; |
adhithyan15 | 0:a94222cedd2e | 263 | if(ip_address == error){ |
adhithyan15 | 0:a94222cedd2e | 264 | ip = error; |
adhithyan15 | 0:a94222cedd2e | 265 | }else{ |
adhithyan15 | 0:a94222cedd2e | 266 | ip = ip_address; |
adhithyan15 | 0:a94222cedd2e | 267 | } |
adhithyan15 | 0:a94222cedd2e | 268 | return ip; |
adhithyan15 | 0:a94222cedd2e | 269 | } |
adhithyan15 | 0:a94222cedd2e | 270 | |
adhithyan15 | 0:a94222cedd2e | 271 | bool ESP8266::checkSSID(string inputSSID){ |
adhithyan15 | 0:a94222cedd2e | 272 | // This method checks the presence of the input SSID |
adhithyan15 | 0:a94222cedd2e | 273 | // with all the SSIDs that the ESP8266 chip detects |
adhithyan15 | 0:a94222cedd2e | 274 | wifi->printf("AT+CWLAP\r\n"); |
adhithyan15 | 0:a94222cedd2e | 275 | wait(10); |
adhithyan15 | 0:a94222cedd2e | 276 | char buf[2000]; |
adhithyan15 | 0:a94222cedd2e | 277 | int counter = 0; |
adhithyan15 | 0:a94222cedd2e | 278 | while(1){ |
adhithyan15 | 0:a94222cedd2e | 279 | if(wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 280 | buf[counter] = wifi->getc(); |
adhithyan15 | 0:a94222cedd2e | 281 | counter = counter + 1; |
adhithyan15 | 0:a94222cedd2e | 282 | }else{ |
adhithyan15 | 0:a94222cedd2e | 283 | wait(2); |
adhithyan15 | 0:a94222cedd2e | 284 | if(!wifi->readable()){ |
adhithyan15 | 0:a94222cedd2e | 285 | break; |
adhithyan15 | 0:a94222cedd2e | 286 | } |
adhithyan15 | 0:a94222cedd2e | 287 | } |
adhithyan15 | 0:a94222cedd2e | 288 | } |
adhithyan15 | 0:a94222cedd2e | 289 | string test(buf); |
adhithyan15 | 0:a94222cedd2e | 290 | string actual_output = test.substr(0,counter); |
adhithyan15 | 0:a94222cedd2e | 291 | printf(inputSSID.c_str()); |
adhithyan15 | 0:a94222cedd2e | 292 | printf(actual_output.c_str()); |
adhithyan15 | 0:a94222cedd2e | 293 | wait(5); |
adhithyan15 | 0:a94222cedd2e | 294 | size_t found = actual_output.find(inputSSID); |
adhithyan15 | 0:a94222cedd2e | 295 | printf("I am here"); |
adhithyan15 | 0:a94222cedd2e | 296 | if (found!=std::string::npos){ |
adhithyan15 | 0:a94222cedd2e | 297 | return false; |
adhithyan15 | 0:a94222cedd2e | 298 | }else{ |
adhithyan15 | 0:a94222cedd2e | 299 | return true; |
adhithyan15 | 0:a94222cedd2e | 300 | } |
adhithyan15 | 0:a94222cedd2e | 301 | //delete[] buf; |
adhithyan15 | 0:a94222cedd2e | 302 | } |