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.
Dependents: ESP8266_W7500_Example DualNetworkInterface-Basic
Fork of ESP8266Interface by
Diff: Wifly/Wifly.cpp
- Revision:
- 2:8e54830d0df7
- Parent:
- 1:fb4494783863
- Child:
- 3:9aa05e19c62e
--- a/Wifly/Wifly.cpp Fri Aug 24 13:48:36 2012 +0000
+++ b/Wifly/Wifly.cpp Sat Nov 24 16:59:36 2012 +0000
@@ -22,7 +22,7 @@
#include <algorithm>
//Debug is disabled by default
-#if (0 && defined(TARGET_LPC1768))
+#if (0 && !defined(TARGET_LPC11U24))
#define DBG(x, ...) std::printf("[Wifly : DBG]"x"\r\n", ##__VA_ARGS__);
#define WARN(x, ...) std::printf("[Wifly : WARN]"x"\r\n", ##__VA_ARGS__);
#define ERR(x, ...) std::printf("[Wifly : ERR]"x"\r\n", ##__VA_ARGS__);
@@ -32,7 +32,7 @@
#define ERR(x, ...)
#endif
-#if TARGET_LPC1768
+#if !defined(TARGET_LPC11U24)
#define INFO(x, ...) printf("[Wifly : INFO]"x"\r\n", ##__VA_ARGS__);
#else
#define INFO(x, ...)
@@ -70,6 +70,15 @@
char cmd[20];
for (int i= 0; i < MAX_TRY_JOIN; i++) {
+
+ // no auto join
+ if (!sendCommand("set w j 0\r", "AOK"))
+ continue;
+
+ //no echo
+ if (!sendCommand("set u m 1\r", "AOK"))
+ continue;
+
// set time
if (!sendCommand("set c t 20\r", "AOK"))
continue;
@@ -93,13 +102,9 @@
// tcp retry
if (!sendCommand("set i f 0x7\r", "AOK"))
continue;
-
- //no echo
- if (!sendCommand("set u m 1\r", "AOK"))
- continue;
-
- // no auto join
- if (!sendCommand("set w j 0\r", "AOK"))
+
+ // set dns server
+ if (!sendCommand("set d n rn.microchip.com\r", "AOK"))
continue;
//dhcp
@@ -145,16 +150,18 @@
continue;
}
- //join the network
- sprintf(cmd, "join\r");
- if (!sendCommand(cmd, "Associated", NULL, 3000))
- continue;
-
+ //join the network (10s timeout)
if (state.dhcp) {
- if (!sendCommand("", "DHCP=ON", NULL, 3000))
+ if (!sendCommand("join\r", "DHCP=ON", NULL, 10000))
+ continue;
+ } else {
+ if (!sendCommand("join\r", "Associated", NULL, 10000))
continue;
}
+ if (!sendCommand("save\r", "Stor"))
+ continue;
+
exit();
state.associated = true;
@@ -211,27 +218,23 @@
char rcv[20];
char cmd[20];
- // get ip from host and set host
- if (gethostbyname(host, rcv)) {
- sprintf(cmd, "set i h %s\r", rcv);
- if (!sendCommand(cmd, "AOK"))
- return false;
- } else {
- return false;
+ // try to open
+ sprintf(cmd, "open %s %d\r", host, port);
+ if (sendCommand(cmd, "OPEN", NULL, 10000)) {
+ state.tcp = true;
+ state.cmd_mode = false;
+ return true;
}
- // set port
- sprintf(cmd, "set i r %d\r", port);
- if (!sendCommand(cmd, "AOK"))
- return false;
-
- // open
- if (sendCommand("open\r", NULL, rcv)) {
+ // if failed, retry and parse the response
+ if (sendCommand(cmd, NULL, rcv, 5000)) {
if (strstr(rcv, "OPEN") == NULL) {
if (strstr(rcv, "Connected") != NULL) {
+ wait(0.25);
if (!sendCommand("close\r", "CLOS"))
return false;
- if (!sendCommand("open\r", "OPEN"))
+ wait(0.25);
+ if (!sendCommand(cmd, "OPEN", NULL, 10000))
return false;
} else {
return false;
@@ -240,7 +243,7 @@
} else {
return false;
}
-
+
state.tcp = true;
state.cmd_mode = false;
@@ -316,9 +319,10 @@
// if already in cmd mode, return
if (state.cmd_mode)
return true;
-
+
if (send("$$$", 3, "CMD") == -1) {
ERR("cannot enter in cmd mode\r\n");
+ exit();
return false;
}
state.cmd_mode = true;
@@ -330,11 +334,11 @@
// if already disconnected, return
if (!state.associated)
return true;
-
+
if (!sendCommand("leave\r", "DeAuth"))
return false;
exit();
-
+
state.associated = false;
return true;
@@ -359,12 +363,12 @@
// if not connected, return
if (!state.tcp)
return true;
-
+
wait(0.25);
if (!sendCommand("close\r", "CLOS"))
return false;
exit();
-
+
state.tcp = false;
return true;
}
