GSwifiInterface library (interface for GainSpan Wi-Fi GS1011 modules) Please see https://mbed.org/users/gsfan/notebook/GSwifiInterface/

Dependents:   GSwifiInterface_HelloWorld GSwifiInterface_HelloServo GSwifiInterface_UDPEchoServer GSwifiInterface_UDPEchoClient ... more

Fork of WiflyInterface by mbed official

GainSpan Wi-Fi library

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

mbed RTOS supported.

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

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

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

mbed RTOS に対応しています。(mbed2.0)

Revision:
19:d035412a7803
Parent:
18:20970aec3ad3
Child:
20:9bfb8a13010c
--- a/GSwifi/GSwifi_httpd.cpp	Mon May 12 01:24:09 2014 +0000
+++ b/GSwifi/GSwifi_httpd.cpp	Thu Jun 05 04:21:02 2014 +0000
@@ -26,9 +26,28 @@
     if (!isAssociated() || _state.status != STAT_READY) return -1;
 
     memset(&_httpd, 0, sizeof(_httpd));
-    for (i = 0; i < 16; i ++) {
+    for (i = 0; i < CFG_MAX_SOCKETS; i ++) {
         _httpd[i].mode = HTTPDMODE_REQUEST;
+        _httpd[i].buf = _con[i].buf;
     }
+#ifdef CFG_ENABLE_RTOS
+#ifdef CFG_EXTENDED_MEMORY2
+    int n = CFG_EXTENDED_SIZE2 / CFG_MAX_SOCKETS;
+    for (i = 0; i < CFG_MAX_SOCKETS; i ++) {
+        _httpd[i].uri = (char*)(CFG_EXTENDED_MEMORY2 + (n * i));
+#ifdef CFG_ENABLE_RTOS
+        _httpd[i].websocket_key = (char*)malloc(30);
+#endif
+    }
+#else // CFG_EXTENDED_MEMORY
+    for (i = 0; i < CFG_MAX_SOCKETS; i ++) {
+        _httpd[i].uri = (char*)malloc(CFG_CMD_SIZE);
+#ifdef CFG_ENABLE_RTOS
+        _httpd[i].websocket_key = (char*)malloc(30);
+#endif
+    }
+#endif // CFG_EXTENDED_MEMORY
+#endif
     _handler_count = 0;
 
     _httpd_cid = listen(PROTO_TCP, port);
@@ -204,10 +223,10 @@
     } else {
         return -1;
     }
-
+#ifndef CFG_ENABLE_RTOS
     if (_httpd[cid].uri == NULL)
         _httpd[cid].uri = (char*)malloc(CFG_CMD_SIZE);
-
+#endif
     for (i = 0; i < len - j; i ++) {
         _httpd[cid].uri[i] = buf[i + j];
         if (buf[i + j] == ' ' || i >= CFG_CMD_SIZE - 1) {
@@ -298,9 +317,11 @@
 }
 
 void GSwifi::reqWebSocketKey (int cid, const char *buf) {
+#ifndef CFG_ENABLE_RTOS
     if (_httpd[cid].websocket_key == NULL) {
         _httpd[cid].websocket_key = (char*)malloc(30);
     }
+#endif
     strncpy(_httpd[cid].websocket_key, &buf[19], 30);
 }
 #else