GSwifiInterface library
GSwifiInterface library
about GainSpan Wi-Fi module
Telit
GainSpan社は Telit に変わりました。
Information
With this library, you will be able to add a wireless connectivity to your mbed. This library relies on GS1011 modules from GainSpan. These modules can be found on DIY Sandbox for instance.
The objective of this library is to provide the same API as the EthernetInterface. So all programs using the EthernetInterface are compatible with the GSwifiInterface.
このライブラリは、あなたの mbed にWi-Fi(無線LAN)によるワイヤレス接続を付加します。 GainSpan社の GS1011 モジュール用です。 モジュールはここ(日本向け)で入手することができます。
このライブラリのAPIは EthernetInterface と互換性があり、置き換えることができます。
GainSpan Wi-Fiモジュールが持つ色々な機能を使えるようになりました。
mbed RTOS に対応している・・・はずです。
※ 現在は GS2000(GS2K) シリーズが販売されています。 本ページにも順次加筆していきます。
Software
Import libraryGSwifiInterface
GSwifiInterface library (interface for GainSpan Wi-Fi GS1011 modules) Please see https://mbed.org/users/gsfan/notebook/GSwifiInterface/
LPC1768
GSwifiInterface gs(p13, p14, p12, P0_22, p20, NC); gs.init(); //Use DHCP or gs.init("192.168.1.123", "255.255.255.0", "192.168.0.1", "192.168.0.2"); //Use Static IP gs.connect(GSwifi::SEC_WEP, "SSID", "PASSKEY")); :
9600bps以外(ATBコマンドであらかじめ設定)で使用する場合は、GSwifiInterface宣言時の7番目の引数にボーレートを指定してください。
Import library
Public Types |
|
enum | WiFiMode |
Wi-Fi mode. More... |
|
enum | Security |
Wi-Fi security. More... |
|
enum | Protocol |
TCP/IP protocol. More... |
|
enum | Type |
Client/Server. More... |
|
Public Member Functions |
|
GSwifiInterface (PinName tx, PinName rx, PinName cts, PinName rts, PinName reset, PinName alarm=NC, int baud=9600) | |
Constructor.
|
|
int | init (const char *name=NULL) |
Initialize the interface with DHCP.
|
|
int | init (const char *ip, const char *mask, const char *gateway, const char *name=NULL) |
Initialize the interface with a static IP address.
|
|
int | connect ( Security sec, const char *ssid, const char *phrase, WiFiMode mode=WM_INFRASTRUCTURE) |
Connect Bring the interface up, start DHCP if needed.
|
|
int | disconnect () |
Disconnect Bring the interface down.
|
|
char * | getMACAddress () |
Get the MAC address of your Ethernet interface.
|
|
char * | getIPAddress () |
Get the IP address of your Ethernet interface.
|
|
char * | getGateway () |
Get the Gateway address of your Ethernet interface.
|
|
char * | getNetworkMask () |
Get the Network mask of your Ethernet interface.
|
|
int | join ( Security sec, const char *ssid, const char *phrase) |
Connect the wifi module to the ssid contained in the constructor.
|
|
int | adhock ( Security sec, const char *ssid, const char *phrase) |
Connect the wifi module to the adhock in the constructor.
|
|
int | limitedap ( Security sec, const char *ssid, const char *phrase) |
Connect the wifi module to the limited AP in the constructor.
|
|
bool | isConnected () |
Check if a tcp link is active.
|
|
bool | isConnected (int cid) |
tcp/udp connected
|
|
int | getRssi () |
RSSI.
|
|
int | powerSave (int active, int save) |
power save mode
|
|
int | setRfPower (int power) |
RF power.
|
|
int | setTime (time_t time) |
set system time
|
|
time_t | getTime () |
get system time
|
|
int | ntpdate (char *host, int sec=0) |
set NTP server
|
|
int | setGpio (int port, int out) |
GPIO output.
|
|
int | provisioning (char *user, char *pass) |
Web server.
|
|
int | standby (int msec) |
standby mode
|
|
int | deepSleep () |
deep sleep mode
|
|
int | wakeup () |
restore standby or deep sleep
|
|
int | getHostByName (const char *host, char *ip) |
Resolv hostname.
|
|
int | open ( Protocol proto, const char *ip, int port, int src=0) |
TCP/UDP client.
|
|
int | listen ( Protocol proto, int port) |
TCP/UDP server.
|
|
int | close (int cid) |
close client/server
|
|
int | send (int cid, const char *buf, int len) |
send data tcp(s/c), udp(c)
|
|
int | recv (int cid, char *buf, int len) |
recv data tcp(s/c), udp(c)
|
|
int | recvfrom (int cid, char *buf, int len, char *ip, int *port) |
recv data udp(s)
|
|
int | readable (int cid) |
readable recv data
|
|
int | sendCommand (const char *cmd, Response res=RES_NULL, int timeout=DEFAULT_WAIT_RESP_TIMEOUT) |
Send a command to the wifi module.
|
|
int | sendData (const char *data, int len, int timeout=DEFAULT_WAIT_RESP_TIMEOUT, const char *cmd=NULL) |
Send a command to the wifi module.
|
Configuration
GSwifi_conf.h
#define CFG_ENABLE_RTOS //#define CFG_ENABLE_HTTPD //#define CFG_ENABLE_WEBSOCKET //#define CFG_ENABLE_SMTP //#define CFG_UART_DIRECT
mbed RTOS を使用したくない場合は #undef CFG_ENABLE_RTOS してください。
RAM容量の少ないCPUを使う場合や、HTTPD, WEBSOCKET, SMTP 等の機能を有効にする場合、 RTOS を使用しないほうが安定すると思います。
DISABLE_RTOS
GSwifi gs(p13, p14, p12, P0_22, p20, NC); gs.setAddress(); //Use DHCP gs.setAddress("192.168.1.123", "255.255.255.0", "192.168.0.1", "192.168.0.2"); //Use Static IP gs.setSsid(GSwifi::SEC_WPA_PSK, "SSID", "PASSKEY"); gs.join(); :
Hardware
GS1011 pin | +++ | Mbed pin | |
---|---|---|---|
VBATT | VOUT | ||
DC_DC_OUT | VDDIO | ||
GND | GND | ||
UART0_RX | Serial TX | ||
UART0_TX | Serial RX | ||
RESET | any DigitalOut |
RTS/CTSも接続することをおすすめします。
対応CPU | フロー制御 |
---|---|
mbed LPC1768 | RTS/CTS or GPIO |
mbed LPC11U24 | RTS/CTS or GPIO |
EA LPC4088 | RTS/CTS or GPIO |
FRDM KL25Z | GPIO |
LPC800-MAX | GPIO |
ボーレートは 9600bps(デフォルト)に設定してください。
9600bps以外(ATBコマンドであらかじめ設定)で使用する場合は、宣言時の引数にボーレートを指定してください。
UART & SPI (GS2000)
コマンドをUART、データストリームをSPIとすれば、CPU=モジュール間のインターフェースが10Mbpsと高速になる。
ファームウェアは SDK BUILDER にて構成し、GS2000モジュールへ書き込んでおく。
GS2000→CPUのデータストリームは、WAKEピンのHighを検出して、ダミーデータ(0xf5)を送ることにより取得できる。
CPU→GS2000のデータストリームは、WAKEピンがLowのときにデータを送る。
データの書式は、UARTのときと同じ。
Hello World
TCP Echo Server
Import programGSwifiInterface_TCPEchoServer
see: http://mbed.org/users/gsfan/notebook/GSwifiInterface/
TCP Echo Client
Import programGSwifiInterface_TCPEchoClient
see: http://mbed.org/users/gsfan/notebook/GSwifiInterface/
UDP Echo Server
Import programGSwifiInterface_UDPEchoServer
see: http://mbed.org/users/gsfan/notebook/GSwifiInterface/
UDP Echo Client
Import programGSwifiInterface_UDPEchoClient
see: http://mbed.org/users/gsfan/notebook/GSwifiInterface/
WebSocket Client
Import programGSwifiInterface_WebSocket
WebSocket Client for GSwifiInterface library Please see: http://mbed.org/users/gsfan/notebook/GSwifiInterface/
HTTP Server
MQTT Client
Import programGSwifiInterface_HelloMQTT
Sample MQTT program - simple send and receive (MQ Telemetry Transport) for GainSpan Wi-Fi module
More details
1 comment on GSwifiInterface library:
Please log in to post comments.
Does it support GS2100MIP / GS2011MIZ Wi-Fi Shields?