GainSpan Wi-Fi library see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Dependents:   GSwifi_httpd GSwifi_websocket GSwifi_tcpclient GSwifi_tcpserver ... more

Fork of GSwifi by gs fan

GainSpan Wi-Fi library

The GS1011 is an ultra low power 802.11b wireless module from GainSpan.

see: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

/media/uploads/gsfan/gs_im_002.jpg /media/uploads/gsfan/gs1011m_2.jpg

ゲインスパン Wi-Fi モジュール ライブラリ

ゲインスパン社の低電力 Wi-Fiモジュール(無線LAN) GS1011 シリーズ用のライブラリです。

解説: http://mbed.org/users/gsfan/notebook/gainspan_wifi/

Revision:
31:0abdc584823d
Parent:
29:1c4419512941
Child:
33:b5a5a1e6325f
--- a/GSwifi.cpp	Tue Feb 26 03:31:20 2013 +0000
+++ b/GSwifi.cpp	Tue Feb 26 06:05:11 2013 +0000
@@ -500,11 +500,11 @@
         _reconnect_count = 0;
         _sec = sec;
         if (ssid) {
-            if (!_ssid) _ssid = new char[sizeof(ssid) + 1];
+            if (!_ssid) _ssid = new char[strlen(ssid) + 1];
             strcpy(_ssid, ssid);
         }
         if (pass) {
-            if (!_pass) _pass = new char[sizeof(pass) + 1];
+            if (!_pass) _pass = new char[strlen(pass) + 1];
             strcpy(_pass, pass);
         }
     }
@@ -923,6 +923,7 @@
           strncmp(buf, "Disassociated", 13) == 0 ||
           strncmp(buf, "Disassociation Event", 20) == 0 ||
           strncmp(buf, "UnExpected Warm Boot", 20) == 0 ||
+          strncmp(buf, "APP Reset-APP SW Reset", 22) == 0 ||
           strncmp(buf, "APP Reset-Wlan Except", 21) == 0 ) {
             _connect = false;
             for (i = 0; i < 16; i ++) {
@@ -961,7 +962,7 @@
         break;
     case GSRES_WPS:
         if (_gs_flg == 0 && strncmp(buf, "SSID=", 5) == 0) {
-            if (!_ssid) _ssid = new char[sizeof(strlen(&buf[5])) + 1];
+            if (!_ssid) _ssid = new char[strlen(&buf[5]) + 1];
             strcpy(_ssid, &buf[5]);
             _gs_flg ++;
         } else
@@ -969,7 +970,7 @@
             _gs_flg ++;
         } else
         if (_gs_flg == 2 && strncmp(buf, "PASSPHRASE=", 11) == 0) {
-            if (!_pass) _pass = new char[sizeof(strlen(&buf[11])) + 1];
+            if (!_pass) _pass = new char[strlen(&buf[11]) + 1];
             strcpy(_pass, &buf[11]);
             _gs_flg = -1;
         }
@@ -1020,7 +1021,7 @@
         }
         break;
     case GSRES_HTTP:
-        if (buf[0] >= '0' && buf[0] <= 'F') {
+        if (buf[0] >= '0' && buf[0] <= 'F' && buf[1] == 0) {
             _cid = x2i(buf[0]);
             _gs_flg = -1;
         }