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:
17:c30ed7b1536d
Child:
20:9bfb8a13010c
--- a/GSwifi/GSwifi.cpp	Mon May 12 01:24:09 2014 +0000
+++ b/GSwifi/GSwifi.cpp	Thu Jun 05 04:21:02 2014 +0000
@@ -32,6 +32,18 @@
     _state.initialized = false;
     _state.status = STAT_READY;
     _state.cid = -1;
+#ifdef CFG_EXTENDED_MEMORY1
+    int n = CFG_EXTENDED_SIZE1 / (CFG_MAX_SOCKETS + 1);
+    _state.buf = new CircBuffer<char>(n - 1, CFG_EXTENDED_MEMORY1);
+#ifdef CFG_ENABLE_RTOS
+    for (int i = 0; i < CFG_MAX_SOCKETS; i ++) {
+        _con[i].buf = new CircBuffer<char>(n - 1, CFG_EXTENDED_MEMORY1 + (n * (i + 1)));
+        if (_con[i].buf == NULL)
+            error("CircBuffer failed");
+    }
+    _threadPoll = NULL;
+#endif
+#else // CFG_EXTENDED_MEMORY
     _state.buf = new CircBuffer<char>(CFG_DATA_SIZE);
 #ifdef CFG_ENABLE_RTOS
     for (int i = 0; i < CFG_MAX_SOCKETS; i ++) {
@@ -41,6 +53,7 @@
     }
     _threadPoll = NULL;
 #endif
+#endif // CFG_EXTENDED_MEMORY
 
     setReset(true);
     initUart(cts, rts, alarm, baud);
@@ -373,9 +386,16 @@
 
     INFO("threadPoll");
     for (;;) {
+        _wifi->poll();
+#ifdef CFG_ENABLE_HTTPD
+        if (_wifi->isAssociated()) {
+            Thread::wait(1);
+        }
+#else
         Thread::signal_wait(1);
         Thread::wait(1000);
         INFO("disassociated");
+#endif
         while (!_wifi->isAssociated()){
             _wifi->poll();
             Thread::wait(CFG_RECONNECT * 1000);