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 Jan 21 05:58:28 2013 +0000
Revision:
23:a783c62c36d0
Parent:
22:9b077e2823ce
Child:
24:5c350ae2e703
support websocket

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsfan 18:4b97804c37d1 1 /**
gsfan 18:4b97804c37d1 2 * Gainspan wi-fi module library for mbed
gsfan 18:4b97804c37d1 3 * Copyright (c) 2012 gsfan
gsfan 18:4b97804c37d1 4 * Released under the MIT License: http://mbed.org/license/mit
gsfan 18:4b97804c37d1 5 */
gsfan 18:4b97804c37d1 6
gsfan 18:4b97804c37d1 7 /** @file
gsfan 18:4b97804c37d1 8 * @brief Gainspan wi-fi module library for mbed
gsfan 18:4b97804c37d1 9 * GS1011MIC, GS1011MIP, GainSpan WiFi Breakout, etc.
gsfan 18:4b97804c37d1 10 * module configuration: ATB=115200
gsfan 18:4b97804c37d1 11 */
gsfan 18:4b97804c37d1 12
gsfan 18:4b97804c37d1 13 #ifndef _GSWIFI_NET_H_
gsfan 18:4b97804c37d1 14 #define _GSWIFI_NET_H_
gsfan 18:4b97804c37d1 15
gsfan 18:4b97804c37d1 16 #include "mbed.h"
gsfan 19:cad912f5a6ba 17 #include "host.h"
gsfan 18:4b97804c37d1 18
gsfan 20:151b5a4fdd29 19 #define GS_USE_HTTPD // comment out if not use httpd
gsfan 23:a783c62c36d0 20 #define GS_USE_WEBSOCKET
gsfan 20:151b5a4fdd29 21 #define GS_USE_SMTP // comment out if not use smtp
gsfan 22:9b077e2823ce 22 #define GS_SYSLOG // log for stdout
gsfan 20:151b5a4fdd29 23
gsfan 20:151b5a4fdd29 24
gsfan 20:151b5a4fdd29 25 #ifdef GS_SYSLOG
gsfan 20:151b5a4fdd29 26 #define LOG(...) printf("" __VA_ARGS__)
gsfan 20:151b5a4fdd29 27 #else
gsfan 20:151b5a4fdd29 28 #define LOG(...)
gsfan 20:151b5a4fdd29 29 #endif
gsfan 20:151b5a4fdd29 30
gsfan 18:4b97804c37d1 31 // GSwifi_smtp.cpp
gsfan 20:151b5a4fdd29 32 #ifdef GS_USE_SMTP
gsfan 20:151b5a4fdd29 33
gsfan 18:4b97804c37d1 34 #define SMTP_TIMEOUT 15000
gsfan 18:4b97804c37d1 35
gsfan 20:151b5a4fdd29 36 #endif
gsfan 20:151b5a4fdd29 37
gsfan 20:151b5a4fdd29 38
gsfan 18:4b97804c37d1 39 // GSwifi_httpd.cpp
gsfan 20:151b5a4fdd29 40 #ifdef GS_USE_HTTPD
gsfan 20:151b5a4fdd29 41
gsfan 18:4b97804c37d1 42 #define HTTPD_TIMEOUT 15000
gsfan 18:4b97804c37d1 43 #define HTTPD_HANDLE 10
gsfan 20:151b5a4fdd29 44
gsfan 20:151b5a4fdd29 45 #define HTTPD_BUF_SIZE 200
gsfan 22:9b077e2823ce 46 #define HTTPD_URI_SIZE 100
gsfan 20:151b5a4fdd29 47
gsfan 20:151b5a4fdd29 48 #define HTTPD_KEEPALIVE 10 // request count
gsfan 18:4b97804c37d1 49
gsfan 23:a783c62c36d0 50 enum GSHTTPDMODE {
gsfan 23:a783c62c36d0 51 GSHTTPDMODE_REQUEST,
gsfan 23:a783c62c36d0 52 GSHTTPDMODE_HEAD,
gsfan 23:a783c62c36d0 53 GSHTTPDMODE_SPACE,
gsfan 23:a783c62c36d0 54 GSHTTPDMODE_BODY,
gsfan 23:a783c62c36d0 55 GSHTTPDMODE_ERROR,
gsfan 23:a783c62c36d0 56 GSHTTPDMODE_WEBSOCKET,
gsfan 23:a783c62c36d0 57 GSHTTPDMODE_WEBSOCKET_MASK,
gsfan 23:a783c62c36d0 58 GSHTTPDMODE_WEBSOCKET_BODY,
gsfan 23:a783c62c36d0 59 };
gsfan 23:a783c62c36d0 60
gsfan 18:4b97804c37d1 61 struct GS_httpd {
gsfan 23:a783c62c36d0 62 GSHTTPDMODE mode;
gsfan 18:4b97804c37d1 63 int type;
gsfan 19:cad912f5a6ba 64 char *buf; // body
gsfan 19:cad912f5a6ba 65 int len; // length of buf
gsfan 18:4b97804c37d1 66 char *uri;
gsfan 19:cad912f5a6ba 67 char *file;
gsfan 19:cad912f5a6ba 68 char *query;
gsfan 19:cad912f5a6ba 69 int length; // content-length
gsfan 18:4b97804c37d1 70 int keepalive;
gsfan 19:cad912f5a6ba 71 Host host;
gsfan 23:a783c62c36d0 72 #ifdef GS_USE_WEBSOCKET
gsfan 23:a783c62c36d0 73 int websocket;
gsfan 23:a783c62c36d0 74 char *websocket_key;
gsfan 23:a783c62c36d0 75 int websocket_flg;
gsfan 23:a783c62c36d0 76 char websocket_mask[4];
gsfan 23:a783c62c36d0 77 int websocket_payload;
gsfan 23:a783c62c36d0 78 #endif
gsfan 18:4b97804c37d1 79 };
gsfan 18:4b97804c37d1 80
gsfan 19:cad912f5a6ba 81 typedef void (*onHttpdCgiFunc)(int cid, GS_httpd *gshttpd);
gsfan 19:cad912f5a6ba 82
gsfan 18:4b97804c37d1 83 struct GS_httpd_handler {
gsfan 18:4b97804c37d1 84 char *uri;
gsfan 18:4b97804c37d1 85 char *dir;
gsfan 18:4b97804c37d1 86 onHttpdCgiFunc onHttpCgi;
gsfan 18:4b97804c37d1 87 };
gsfan 18:4b97804c37d1 88
gsfan 18:4b97804c37d1 89 #endif
gsfan 20:151b5a4fdd29 90
gsfan 20:151b5a4fdd29 91 #endif