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/

Committer:
gsfan
Date:
Mon Feb 11 06:01:46 2013 +0000
Revision:
25:f6e5622d2930
Parent:
24:5c350ae2e703
split the file

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsfan 25:f6e5622d2930 1 /* Copyright (C) 2013 gsfan, MIT License
gsfan 25:f6e5622d2930 2 *
gsfan 25:f6e5622d2930 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
gsfan 25:f6e5622d2930 4 * and associated documentation files (the "Software"), to deal in the Software without restriction,
gsfan 25:f6e5622d2930 5 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
gsfan 25:f6e5622d2930 6 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
gsfan 25:f6e5622d2930 7 * furnished to do so, subject to the following conditions:
gsfan 25:f6e5622d2930 8 *
gsfan 25:f6e5622d2930 9 * The above copyright notice and this permission notice shall be included in all copies or
gsfan 25:f6e5622d2930 10 * substantial portions of the Software.
gsfan 25:f6e5622d2930 11 *
gsfan 25:f6e5622d2930 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
gsfan 25:f6e5622d2930 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
gsfan 25:f6e5622d2930 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
gsfan 25:f6e5622d2930 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
gsfan 25:f6e5622d2930 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
gsfan 18:4b97804c37d1 17 */
gsfan 18:4b97804c37d1 18 /** @file
gsfan 18:4b97804c37d1 19 * @brief Gainspan wi-fi module library for mbed
gsfan 18:4b97804c37d1 20 * GS1011MIC, GS1011MIP, GainSpan WiFi Breakout, etc.
gsfan 18:4b97804c37d1 21 */
gsfan 18:4b97804c37d1 22
gsfan 18:4b97804c37d1 23 #ifndef _GSWIFI_NET_H_
gsfan 18:4b97804c37d1 24 #define _GSWIFI_NET_H_
gsfan 18:4b97804c37d1 25
gsfan 18:4b97804c37d1 26 #include "mbed.h"
gsfan 19:cad912f5a6ba 27 #include "host.h"
gsfan 18:4b97804c37d1 28
gsfan 24:5c350ae2e703 29 #define GS_USE_HTTPD // use http server
gsfan 24:5c350ae2e703 30 //#define GS_USE_WEBSOCKET // use websocket (need httpd)
gsfan 24:5c350ae2e703 31 #define GS_USE_SMTP // use smtp client
gsfan 22:9b077e2823ce 32 #define GS_SYSLOG // log for stdout
gsfan 20:151b5a4fdd29 33
gsfan 20:151b5a4fdd29 34
gsfan 20:151b5a4fdd29 35 #ifdef GS_SYSLOG
gsfan 20:151b5a4fdd29 36 #define LOG(...) printf("" __VA_ARGS__)
gsfan 20:151b5a4fdd29 37 #else
gsfan 20:151b5a4fdd29 38 #define LOG(...)
gsfan 20:151b5a4fdd29 39 #endif
gsfan 20:151b5a4fdd29 40
gsfan 18:4b97804c37d1 41 // GSwifi_smtp.cpp
gsfan 20:151b5a4fdd29 42 #ifdef GS_USE_SMTP
gsfan 20:151b5a4fdd29 43
gsfan 18:4b97804c37d1 44 #define SMTP_TIMEOUT 15000
gsfan 18:4b97804c37d1 45
gsfan 20:151b5a4fdd29 46 #endif
gsfan 20:151b5a4fdd29 47
gsfan 20:151b5a4fdd29 48
gsfan 18:4b97804c37d1 49 // GSwifi_httpd.cpp
gsfan 20:151b5a4fdd29 50 #ifdef GS_USE_HTTPD
gsfan 20:151b5a4fdd29 51
gsfan 18:4b97804c37d1 52 #define HTTPD_TIMEOUT 15000
gsfan 18:4b97804c37d1 53 #define HTTPD_HANDLE 10
gsfan 20:151b5a4fdd29 54
gsfan 20:151b5a4fdd29 55 #define HTTPD_BUF_SIZE 200
gsfan 22:9b077e2823ce 56 #define HTTPD_URI_SIZE 100
gsfan 20:151b5a4fdd29 57
gsfan 20:151b5a4fdd29 58 #define HTTPD_KEEPALIVE 10 // request count
gsfan 18:4b97804c37d1 59
gsfan 23:a783c62c36d0 60 enum GSHTTPDMODE {
gsfan 23:a783c62c36d0 61 GSHTTPDMODE_REQUEST,
gsfan 23:a783c62c36d0 62 GSHTTPDMODE_HEAD,
gsfan 23:a783c62c36d0 63 GSHTTPDMODE_SPACE,
gsfan 23:a783c62c36d0 64 GSHTTPDMODE_BODY,
gsfan 23:a783c62c36d0 65 GSHTTPDMODE_ERROR,
gsfan 23:a783c62c36d0 66 GSHTTPDMODE_WEBSOCKET,
gsfan 23:a783c62c36d0 67 GSHTTPDMODE_WEBSOCKET_MASK,
gsfan 23:a783c62c36d0 68 GSHTTPDMODE_WEBSOCKET_BODY,
gsfan 23:a783c62c36d0 69 };
gsfan 23:a783c62c36d0 70
gsfan 18:4b97804c37d1 71 struct GS_httpd {
gsfan 23:a783c62c36d0 72 GSHTTPDMODE mode;
gsfan 18:4b97804c37d1 73 int type;
gsfan 19:cad912f5a6ba 74 char *buf; // body
gsfan 19:cad912f5a6ba 75 int len; // length of buf
gsfan 18:4b97804c37d1 76 char *uri;
gsfan 19:cad912f5a6ba 77 char *file;
gsfan 19:cad912f5a6ba 78 char *query;
gsfan 19:cad912f5a6ba 79 int length; // content-length
gsfan 18:4b97804c37d1 80 int keepalive;
gsfan 19:cad912f5a6ba 81 Host host;
gsfan 23:a783c62c36d0 82 #ifdef GS_USE_WEBSOCKET
gsfan 23:a783c62c36d0 83 int websocket;
gsfan 23:a783c62c36d0 84 char *websocket_key;
gsfan 23:a783c62c36d0 85 int websocket_flg;
gsfan 23:a783c62c36d0 86 char websocket_mask[4];
gsfan 23:a783c62c36d0 87 int websocket_payload;
gsfan 23:a783c62c36d0 88 #endif
gsfan 18:4b97804c37d1 89 };
gsfan 18:4b97804c37d1 90
gsfan 19:cad912f5a6ba 91 typedef void (*onHttpdCgiFunc)(int cid, GS_httpd *gshttpd);
gsfan 19:cad912f5a6ba 92
gsfan 18:4b97804c37d1 93 struct GS_httpd_handler {
gsfan 18:4b97804c37d1 94 char *uri;
gsfan 18:4b97804c37d1 95 char *dir;
gsfan 18:4b97804c37d1 96 onHttpdCgiFunc onHttpCgi;
gsfan 18:4b97804c37d1 97 };
gsfan 18:4b97804c37d1 98
gsfan 18:4b97804c37d1 99 #endif
gsfan 20:151b5a4fdd29 100
gsfan 20:151b5a4fdd29 101 #endif