Library to use a wifly module: RN 131 C/G

Dependents:   RN-XV_simple_server

Committer:
samux
Date:
Sun Nov 06 12:15:50 2011 +0000
Revision:
16:f524a28790b1
Parent:
12:fd6874542b28
Child:
17:56f3c4da1ea8

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 0:2f38aaabc810 1 #include "mbed.h"
samux 0:2f38aaabc810 2 #include "Wifly.h"
samux 0:2f38aaabc810 3 #include <string>
samux 0:2f38aaabc810 4
samux 0:2f38aaabc810 5
samux 0:2f38aaabc810 6
samux 0:2f38aaabc810 7
samux 0:2f38aaabc810 8
samux 0:2f38aaabc810 9
samux 10:d3e3e925f62f 10 Wifly::Wifly( PinName tx, PinName rx, PinName _reset, char * ssid, char * phrase,
samux 10:d3e3e925f62f 11 bool wpa, char * ip, char * netmask, bool dhcp, int baudrate):
samux 10:d3e3e925f62f 12 wifi(tx, rx), reset_pin(_reset) {
samux 0:2f38aaabc810 13 wifi.baud(baudrate);
samux 0:2f38aaabc810 14 reset_pin = 1;
samux 5:9890eb81f730 15 wifi.format(8, Serial::None, 1);
samux 0:2f38aaabc810 16 this->wpa = wpa;
samux 0:2f38aaabc810 17 this->dhcp = dhcp;
samux 11:6eb90004d92a 18 strcpy(this->phrase, phrase);
samux 11:6eb90004d92a 19 strcpy(this->ssid, ssid);
samux 11:6eb90004d92a 20 strcpy(this->ip, ip);
samux 11:6eb90004d92a 21 strcpy(this->netmask, netmask);
samux 0:2f38aaabc810 22 adhoc = false;
samux 10:d3e3e925f62f 23 length = 0;
samux 10:d3e3e925f62f 24 new_msg = false;
samux 0:2f38aaabc810 25 }
samux 0:2f38aaabc810 26
samux 0:2f38aaabc810 27
samux 0:2f38aaabc810 28
samux 0:2f38aaabc810 29
samux 0:2f38aaabc810 30
samux 10:d3e3e925f62f 31 Wifly::Wifly( PinName tx, PinName rx, PinName _reset, char * ssid, char * ip, char * netmask, int channel,
samux 10:d3e3e925f62f 32 int baudrate):
samux 10:d3e3e925f62f 33 wifi(tx, rx), reset_pin(_reset) {
samux 0:2f38aaabc810 34 wifi.baud(baudrate);
samux 0:2f38aaabc810 35 reset_pin = 1;
samux 5:9890eb81f730 36 wifi.format(8, Serial::None, 1);
samux 0:2f38aaabc810 37 adhoc = true;
samux 11:6eb90004d92a 38 strcpy(this->ssid, ssid);
samux 11:6eb90004d92a 39 strcpy(this->ip, ip);
samux 11:6eb90004d92a 40 strcpy(this->netmask, netmask);
samux 0:2f38aaabc810 41 this->channel = channel;
samux 10:d3e3e925f62f 42 length = 0;
samux 10:d3e3e925f62f 43 new_msg = false;
samux 10:d3e3e925f62f 44 }
samux 10:d3e3e925f62f 45
samux 10:d3e3e925f62f 46
samux 10:d3e3e925f62f 47 void Wifly::handler_rx(void) {
samux 10:d3e3e925f62f 48 char read = wifi.getc();
samux 10:d3e3e925f62f 49 if (read != '\r' && read != '\n') {
samux 10:d3e3e925f62f 50 tmp_buf_rx[length] = read;
samux 10:d3e3e925f62f 51 length++;
samux 10:d3e3e925f62f 52 new_msg = false;
samux 10:d3e3e925f62f 53 }
samux 10:d3e3e925f62f 54 if (read == 0xff || read == '\n') {
samux 10:d3e3e925f62f 55 new_msg = true;
samux 10:d3e3e925f62f 56 tmp_buf_rx[length] = 0;
samux 10:d3e3e925f62f 57 memcpy(buf_rx, tmp_buf_rx, length);
samux 10:d3e3e925f62f 58 length = 0;
samux 10:d3e3e925f62f 59 }
samux 10:d3e3e925f62f 60 }
samux 10:d3e3e925f62f 61
samux 10:d3e3e925f62f 62 void Wifly::attach_rx(bool null) {
samux 10:d3e3e925f62f 63 if (!null)
samux 10:d3e3e925f62f 64 wifi.attach(NULL);
samux 10:d3e3e925f62f 65 else
samux 10:d3e3e925f62f 66 wifi.attach(this, &Wifly::handler_rx);
samux 0:2f38aaabc810 67 }
samux 0:2f38aaabc810 68
samux 0:2f38aaabc810 69
samux 0:2f38aaabc810 70
samux 12:fd6874542b28 71 bool Wifly::send(char * str, char * ACK, char * res) {
samux 0:2f38aaabc810 72
samux 10:d3e3e925f62f 73 char read;
samux 0:2f38aaabc810 74
samux 10:d3e3e925f62f 75 attach_rx(false);
samux 10:d3e3e925f62f 76
samux 0:2f38aaabc810 77 size_t found = string::npos;
samux 10:d3e3e925f62f 78
samux 0:2f38aaabc810 79 if (!strcmp(ACK, "NO"))
samux 0:2f38aaabc810 80 wifi.printf("%s", str);
samux 10:d3e3e925f62f 81 else {
samux 10:d3e3e925f62f 82
samux 10:d3e3e925f62f 83 //We flush the buffer
samux 10:d3e3e925f62f 84 while (wifi.readable())
samux 10:d3e3e925f62f 85 wifi.getc();
samux 10:d3e3e925f62f 86
samux 0:2f38aaabc810 87 Timer tmr;
samux 0:2f38aaabc810 88 tmr.start();
samux 0:2f38aaabc810 89 wifi.printf("%s", str);
samux 0:2f38aaabc810 90 string checking;
samux 10:d3e3e925f62f 91
samux 10:d3e3e925f62f 92 while (1) {
samux 16:f524a28790b1 93 if (tmr.read() > 5) {
samux 10:d3e3e925f62f 94 //We flush the buffer
samux 10:d3e3e925f62f 95 while (wifi.readable())
samux 10:d3e3e925f62f 96 wifi.getc();
samux 10:d3e3e925f62f 97
samux 10:d3e3e925f62f 98 attach_rx(true);
samux 0:2f38aaabc810 99 return false;
samux 10:d3e3e925f62f 100 } else if (wifi.readable()) {
samux 0:2f38aaabc810 101 read = wifi.getc();
samux 10:d3e3e925f62f 102 if ( read != '\r' && read != '\n') {
samux 0:2f38aaabc810 103 checking += read;
samux 0:2f38aaabc810 104 found = checking.find(ACK);
samux 10:d3e3e925f62f 105 if (found != string::npos) {
samux 10:d3e3e925f62f 106
samux 10:d3e3e925f62f 107 //We flush the buffer
samux 10:d3e3e925f62f 108 while (wifi.readable())
samux 10:d3e3e925f62f 109 wifi.getc();
samux 10:d3e3e925f62f 110
samux 0:2f38aaabc810 111 break;
samux 0:2f38aaabc810 112 }
samux 0:2f38aaabc810 113 }
samux 0:2f38aaabc810 114 }
samux 0:2f38aaabc810 115 }
samux 10:d3e3e925f62f 116 attach_rx(true);
samux 0:2f38aaabc810 117 return (found != string::npos);
samux 0:2f38aaabc810 118 }
samux 10:d3e3e925f62f 119 if ( res != NULL) {
samux 10:d3e3e925f62f 120 int i = 0;
samux 10:d3e3e925f62f 121 while (!wifi.readable());
samux 10:d3e3e925f62f 122 wait(0.1);
samux 10:d3e3e925f62f 123 while (wifi.readable()) {
samux 10:d3e3e925f62f 124 read = wifi.getc();
samux 10:d3e3e925f62f 125 if ( read != '\r' && read != '\n') {
samux 10:d3e3e925f62f 126 res[i++] = read;
samux 10:d3e3e925f62f 127 }
samux 10:d3e3e925f62f 128 }
samux 10:d3e3e925f62f 129 }
samux 10:d3e3e925f62f 130 attach_rx(true);
samux 0:2f38aaabc810 131 return true;
samux 0:2f38aaabc810 132 }
samux 0:2f38aaabc810 133
samux 12:fd6874542b28 134 bool Wifly::join() {
samux 0:2f38aaabc810 135 char cmd[30];
samux 10:d3e3e925f62f 136
samux 0:2f38aaabc810 137 exit();
samux 10:d3e3e925f62f 138
samux 12:fd6874542b28 139 if (!cmdMode()) {
samux 11:6eb90004d92a 140 #ifdef DEBUG
samux 0:2f38aaabc810 141 printf("join: cannot enter in cmd mode\r\n");
samux 11:6eb90004d92a 142 #endif
samux 0:2f38aaabc810 143 exit();
samux 10:d3e3e925f62f 144 return false;
samux 0:2f38aaabc810 145 }
samux 10:d3e3e925f62f 146
samux 0:2f38aaabc810 147 //auth
samux 12:fd6874542b28 148 if (!send("set w a 3\r\n", "AOK")) {
samux 11:6eb90004d92a 149 #ifdef DEBUG
samux 0:2f38aaabc810 150 printf("join: cannot set auth\r\n");
samux 11:6eb90004d92a 151 #endif
samux 0:2f38aaabc810 152 exit();
samux 0:2f38aaabc810 153 return false;
samux 0:2f38aaabc810 154 }
samux 10:d3e3e925f62f 155
samux 0:2f38aaabc810 156 //dhcp
samux 11:6eb90004d92a 157 sprintf(cmd, "set i d %d\r\n", (dhcp) ? 1 : 0);
samux 12:fd6874542b28 158 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 159 #ifdef DEBUG
samux 0:2f38aaabc810 160 printf("join: cannot set dhcp\r\n");
samux 11:6eb90004d92a 161 #endif
samux 0:2f38aaabc810 162 exit();
samux 0:2f38aaabc810 163 return false;
samux 0:2f38aaabc810 164 }
samux 10:d3e3e925f62f 165
samux 7:c6cf9ae117b1 166 //no echo
samux 12:fd6874542b28 167 if (!send("set u m 1\r\n", "AOK")) {
samux 11:6eb90004d92a 168 #ifdef DEBUG
samux 7:c6cf9ae117b1 169 printf("join: cannot set no echo\r\n");
samux 11:6eb90004d92a 170 #endif
samux 7:c6cf9ae117b1 171 exit();
samux 7:c6cf9ae117b1 172 return false;
samux 7:c6cf9ae117b1 173 }
samux 10:d3e3e925f62f 174
samux 10:d3e3e925f62f 175 if (!dhcp) {
samux 11:6eb90004d92a 176 #ifdef DEBUG
samux 0:2f38aaabc810 177 printf("not dhcp\r\n");
samux 11:6eb90004d92a 178 #endif
samux 11:6eb90004d92a 179 sprintf(cmd, "set i a %s\r\n", ip);
samux 12:fd6874542b28 180 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 181 #ifdef DEBUG
samux 12:fd6874542b28 182 printf("Wifly::join: cannot set ip address\r\n");
samux 11:6eb90004d92a 183 #endif
samux 0:2f38aaabc810 184 exit();
samux 0:2f38aaabc810 185 return false;
samux 0:2f38aaabc810 186 }
samux 10:d3e3e925f62f 187
samux 11:6eb90004d92a 188 sprintf(cmd, "set i n %s\r\n", netmask);
samux 12:fd6874542b28 189 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 190 #ifdef DEBUG
samux 0:2f38aaabc810 191 printf("Wifly::join: cannot set netmask\r\n");
samux 11:6eb90004d92a 192 #endif
samux 0:2f38aaabc810 193 exit();
samux 0:2f38aaabc810 194 return false;
samux 0:2f38aaabc810 195 }
samux 10:d3e3e925f62f 196
samux 0:2f38aaabc810 197 }
samux 10:d3e3e925f62f 198
samux 0:2f38aaabc810 199 //key step
samux 10:d3e3e925f62f 200 if (wpa)
samux 11:6eb90004d92a 201 sprintf(cmd, "set w p %s\r\n", phrase);
samux 0:2f38aaabc810 202 else
samux 11:6eb90004d92a 203 sprintf(cmd, "set w k %s\r\n", phrase);
samux 10:d3e3e925f62f 204
samux 12:fd6874542b28 205 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 206 #ifdef DEBUG
samux 0:2f38aaabc810 207 printf("join: cannot set phrase\r\n");
samux 11:6eb90004d92a 208 #endif
samux 0:2f38aaabc810 209 exit();
samux 0:2f38aaabc810 210 return false;
samux 0:2f38aaabc810 211 }
samux 10:d3e3e925f62f 212
samux 10:d3e3e925f62f 213
samux 10:d3e3e925f62f 214
samux 0:2f38aaabc810 215 //join the network
samux 0:2f38aaabc810 216 sprintf(cmd, "join %s\r\n", ssid);
samux 10:d3e3e925f62f 217
samux 12:fd6874542b28 218 if (!send(cmd, "IP=")) {
samux 11:6eb90004d92a 219 #ifdef DEBUG
samux 0:2f38aaabc810 220 printf("join: cannot join %s\r\n", ssid);
samux 11:6eb90004d92a 221 #endif
samux 0:2f38aaabc810 222 exit();
samux 0:2f38aaabc810 223 return false;
samux 0:2f38aaabc810 224 }
samux 0:2f38aaabc810 225 exit();
samux 11:6eb90004d92a 226 #ifdef DEBUG
samux 0:2f38aaabc810 227 printf("\r\nssid: %s\r\nphrase: %s\r\nsecurity: %s\r\n\r\n", this->ssid, this->phrase, (wpa) ? "WPA" : "WEP");
samux 11:6eb90004d92a 228 #endif
samux 0:2f38aaabc810 229 return true;
samux 10:d3e3e925f62f 230
samux 0:2f38aaabc810 231 }
samux 0:2f38aaabc810 232
samux 0:2f38aaabc810 233
samux 10:d3e3e925f62f 234
samux 12:fd6874542b28 235 bool Wifly::createAdhocNetwork() {
samux 10:d3e3e925f62f 236 if (adhoc) {
samux 0:2f38aaabc810 237 char cmd[50];
samux 10:d3e3e925f62f 238
samux 0:2f38aaabc810 239 exit();
samux 10:d3e3e925f62f 240
samux 12:fd6874542b28 241 if (!cmdMode()) {
samux 11:6eb90004d92a 242 #ifdef DEBUG
samux 0:2f38aaabc810 243 printf("Wifly::CreateAdhocNetwork: cannot enter in cmd mode\r\n");
samux 11:6eb90004d92a 244 #endif
samux 0:2f38aaabc810 245 exit();
samux 10:d3e3e925f62f 246 return false;
samux 0:2f38aaabc810 247 }
samux 10:d3e3e925f62f 248
samux 12:fd6874542b28 249 if (!send("set w j 4\r\n", "AOK")) {
samux 11:6eb90004d92a 250 #ifdef DEBUG
samux 0:2f38aaabc810 251 printf("Wifly::CreateAdhocNetwork: cannot set join 4\r\n");
samux 11:6eb90004d92a 252 #endif
samux 0:2f38aaabc810 253 exit();
samux 0:2f38aaabc810 254 return false;
samux 0:2f38aaabc810 255 }
samux 10:d3e3e925f62f 256
samux 7:c6cf9ae117b1 257 //no echo
samux 12:fd6874542b28 258 if (!send("set u m 1\r\n", "AOK")) {
samux 11:6eb90004d92a 259 #ifdef DEBUG
samux 7:c6cf9ae117b1 260 printf("join: cannot set no echo\r\n");
samux 11:6eb90004d92a 261 #endif
samux 7:c6cf9ae117b1 262 exit();
samux 7:c6cf9ae117b1 263 return false;
samux 7:c6cf9ae117b1 264 }
samux 10:d3e3e925f62f 265
samux 0:2f38aaabc810 266 //ssid
samux 11:6eb90004d92a 267 sprintf(cmd, "set w s %s\r\n", ssid);
samux 12:fd6874542b28 268 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 269 #ifdef DEBUG
samux 0:2f38aaabc810 270 printf("Wifly::CreateAdhocNetwork: cannot set ssid\r\n");
samux 11:6eb90004d92a 271 #endif
samux 0:2f38aaabc810 272 exit();
samux 0:2f38aaabc810 273 return false;
samux 0:2f38aaabc810 274 }
samux 10:d3e3e925f62f 275
samux 11:6eb90004d92a 276 sprintf(cmd, "set w c %d\r\n", channel);
samux 12:fd6874542b28 277 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 278 #ifdef DEBUG
samux 0:2f38aaabc810 279 printf("Wifly::CreateAdhocNetwork: cannot set channel\r\n");
samux 11:6eb90004d92a 280 #endif
samux 0:2f38aaabc810 281 exit();
samux 0:2f38aaabc810 282 return false;
samux 0:2f38aaabc810 283 }
samux 10:d3e3e925f62f 284
samux 11:6eb90004d92a 285 sprintf(cmd, "set i a %s\r\n", ip);
samux 12:fd6874542b28 286 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 287 #ifdef DEBUG
samux 0:2f38aaabc810 288 printf("Wifly::CreateAdhocNetwork: cannot set ip address\r\n");
samux 11:6eb90004d92a 289 #endif
samux 0:2f38aaabc810 290 exit();
samux 0:2f38aaabc810 291 return false;
samux 0:2f38aaabc810 292 }
samux 10:d3e3e925f62f 293
samux 11:6eb90004d92a 294 sprintf(cmd, "set i n %s\r\n", netmask);
samux 12:fd6874542b28 295 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 296 #ifdef DEBUG
samux 0:2f38aaabc810 297 printf("Wifly::CreateAdhocNetwork: cannot set netmask\r\n");
samux 11:6eb90004d92a 298 #endif
samux 0:2f38aaabc810 299 exit();
samux 0:2f38aaabc810 300 return false;
samux 0:2f38aaabc810 301 }
samux 10:d3e3e925f62f 302
samux 12:fd6874542b28 303 if (!send("set i d 0\r\n", "AOK")) {
samux 11:6eb90004d92a 304 #ifdef DEBUG
samux 0:2f38aaabc810 305 printf("Wifly::CreateAdhocNetwork: cannot set dhcp off\r\n");
samux 11:6eb90004d92a 306 #endif
samux 0:2f38aaabc810 307 exit();
samux 0:2f38aaabc810 308 return false;
samux 0:2f38aaabc810 309 }
samux 10:d3e3e925f62f 310
samux 12:fd6874542b28 311 if (!send("save\r\n", "Stor")) {
samux 11:6eb90004d92a 312 #ifdef DEBUG
samux 0:2f38aaabc810 313 printf("Wifly::CreateAdhocNetwork: cannot save\r\n");
samux 11:6eb90004d92a 314 #endif
samux 0:2f38aaabc810 315 exit();
samux 0:2f38aaabc810 316 return false;
samux 0:2f38aaabc810 317 }
samux 10:d3e3e925f62f 318
samux 12:fd6874542b28 319 send("reboot\r\n", "NO");
samux 11:6eb90004d92a 320 #ifdef DEBUG
samux 0:2f38aaabc810 321 printf("\r\ncreating an adhoc\r\nnetwork: %s\r\nip: %s\r\nnetmask: %s\r\nchannel: %d\r\n\r\n", ssid, ip, netmask, channel);
samux 11:6eb90004d92a 322 #endif
samux 0:2f38aaabc810 323 return true;
samux 10:d3e3e925f62f 324 } else {
samux 11:6eb90004d92a 325 #ifdef DEBUG
samux 0:2f38aaabc810 326 printf("Wifly::join: You don't chose the right constructor for creating an adhoc mode!\r\n");
samux 11:6eb90004d92a 327 #endif
samux 0:2f38aaabc810 328 return false;
samux 0:2f38aaabc810 329 }
samux 0:2f38aaabc810 330 }
samux 0:2f38aaabc810 331
samux 12:fd6874542b28 332 bool Wifly::cmdMode() {
samux 12:fd6874542b28 333 if (!send("$$$", "CMD")) {
samux 11:6eb90004d92a 334 #ifdef DEBUG
samux 12:fd6874542b28 335 printf("Wifly::cmdMode: cannot enter in cmd mode\r\n");
samux 11:6eb90004d92a 336 #endif
samux 9:984c1436dd42 337 return false;
samux 0:2f38aaabc810 338 }
samux 0:2f38aaabc810 339 return true;
samux 0:2f38aaabc810 340 }
samux 0:2f38aaabc810 341
samux 0:2f38aaabc810 342
samux 0:2f38aaabc810 343
samux 0:2f38aaabc810 344
samux 10:d3e3e925f62f 345 void Wifly::reset() {
samux 0:2f38aaabc810 346 reset_pin = 0;
samux 10:d3e3e925f62f 347 memset(buf_rx, 0, 100);
samux 0:2f38aaabc810 348 wait(0.2);
samux 0:2f38aaabc810 349 reset_pin = 1;
samux 10:d3e3e925f62f 350 memset(tmp_buf_rx, 0, 100);
samux 0:2f38aaabc810 351 wait(0.2);
samux 0:2f38aaabc810 352 }
samux 0:2f38aaabc810 353
samux 0:2f38aaabc810 354
samux 0:2f38aaabc810 355
samux 0:2f38aaabc810 356
samux 0:2f38aaabc810 357
samux 0:2f38aaabc810 358
samux 10:d3e3e925f62f 359 void Wifly::putc(char c) {
samux 0:2f38aaabc810 360 wifi.putc(c);
samux 0:2f38aaabc810 361 }
samux 0:2f38aaabc810 362
samux 0:2f38aaabc810 363
samux 0:2f38aaabc810 364
samux 0:2f38aaabc810 365
samux 11:6eb90004d92a 366 bool Wifly::read(char * str) {
samux 11:6eb90004d92a 367 if (new_msg && str != NULL) {
samux 10:d3e3e925f62f 368 memcpy(str, buf_rx, strlen(buf_rx + 1) + 1);
samux 10:d3e3e925f62f 369 new_msg = false;
samux 11:6eb90004d92a 370 return true;
samux 11:6eb90004d92a 371 }
samux 11:6eb90004d92a 372 return false;
samux 0:2f38aaabc810 373 }
samux 0:2f38aaabc810 374
samux 0:2f38aaabc810 375
samux 0:2f38aaabc810 376
samux 0:2f38aaabc810 377
samux 10:d3e3e925f62f 378 bool Wifly::exit() {
samux 12:fd6874542b28 379 return send("exit\r", "EXIT");
samux 0:2f38aaabc810 380 }
samux 0:2f38aaabc810 381
samux 0:2f38aaabc810 382
samux 0:2f38aaabc810 383
samux 10:d3e3e925f62f 384 bool Wifly::readable() {
samux 0:2f38aaabc810 385 return(wifi.readable());
samux 0:2f38aaabc810 386 }
samux 0:2f38aaabc810 387
samux 10:d3e3e925f62f 388 bool Wifly::changeBaudrate(int baudrate) {
samux 4:06ca04e2e279 389 char cmd[20];
samux 4:06ca04e2e279 390 exit();
samux 12:fd6874542b28 391 if (!cmdMode()) {
samux 11:6eb90004d92a 392 #ifdef DEBUG
samux 4:06ca04e2e279 393 printf("Wifly::changeBaudrate: cannot enter in cmd mode\r\n");
samux 11:6eb90004d92a 394 #endif
samux 4:06ca04e2e279 395 return false;
samux 4:06ca04e2e279 396 }
samux 10:d3e3e925f62f 397
samux 4:06ca04e2e279 398 sprintf(cmd, "set u b %d\r\n", baudrate);
samux 12:fd6874542b28 399 if (!send(cmd, "AOK")) {
samux 11:6eb90004d92a 400 #ifdef DEBUG
samux 4:06ca04e2e279 401 printf("Wifly::changeBaudrate: cannot set new baudrate\r\n");
samux 11:6eb90004d92a 402 #endif
samux 4:06ca04e2e279 403 exit();
samux 4:06ca04e2e279 404 return false;
samux 4:06ca04e2e279 405 }
samux 10:d3e3e925f62f 406
samux 12:fd6874542b28 407 if (!send("save\r\n", "Stor")) {
samux 11:6eb90004d92a 408 #ifdef DEBUG
samux 4:06ca04e2e279 409 printf("Wifly::changeBaudrate: cannot save\r\n");
samux 11:6eb90004d92a 410 #endif
samux 4:06ca04e2e279 411 exit();
samux 4:06ca04e2e279 412 return false;
samux 4:06ca04e2e279 413 }
samux 10:d3e3e925f62f 414
samux 4:06ca04e2e279 415 return true;
samux 4:06ca04e2e279 416 }
samux 0:2f38aaabc810 417
samux 0:2f38aaabc810 418
samux 10:d3e3e925f62f 419 char Wifly::getc() {
samux 0:2f38aaabc810 420 return(wifi.getc());
samux 0:2f38aaabc810 421 }