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

Fork of GSwifi_old 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/

Information

Please change the baud rate in advance.

  • ATB=115200
  • AT&W0

It may be better and sometimes faster.
GSwifi gs(p13, p14, baud);

Heavily modified new library: http://mbed.org/users/gsfan/code/GSwifi

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

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

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

Information

モジュールはあらかじめ次のコマンドでボーレートを変更しておく。

  • ATB=115200
  • AT&W0

場合によってはもっと高速の方がいいかもしれない。クラス宣言時にレート設定をする。
GSwifi gs(p13, p14, baud);

大幅に更新された新しいライブラリ: http://mbed.org/users/gsfan/code/GSwifi

Committer:
gsfan
Date:
Wed Jan 23 07:41:23 2013 +0000
Revision:
24:5c350ae2e703
Parent:
23:a783c62c36d0
auto re-connect

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 24:5c350ae2e703 19 #define GS_USE_HTTPD // use http server
gsfan 24:5c350ae2e703 20 //#define GS_USE_WEBSOCKET // use websocket (need httpd)
gsfan 24:5c350ae2e703 21 #define GS_USE_SMTP // use smtp client
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