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:
Mon Jul 09 14:36:06 2012 +0000
Revision:
0:2f6062c6d018

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsfan 0:2f6062c6d018 1 /*
gsfan 0:2f6062c6d018 2 * mbed library for RingBuffer
gsfan 0:2f6062c6d018 3 * Copyright (c) 2010 Hiroshi Suga
gsfan 0:2f6062c6d018 4 * Released under the MIT License: http://mbed.org/license/mit
gsfan 0:2f6062c6d018 5 */
gsfan 0:2f6062c6d018 6
gsfan 0:2f6062c6d018 7 /* @file
gsfan 0:2f6062c6d018 8 * @brief Ring Buffer
gsfan 0:2f6062c6d018 9 */
gsfan 0:2f6062c6d018 10
gsfan 0:2f6062c6d018 11 #include "RingBuffer.h"
gsfan 0:2f6062c6d018 12
gsfan 0:2f6062c6d018 13 RingBuffer::RingBuffer (int p_size) {
gsfan 0:2f6062c6d018 14 size = p_size + 1;
gsfan 0:2f6062c6d018 15 buf = new char[size];
gsfan 0:2f6062c6d018 16 addr_w = 0;
gsfan 0:2f6062c6d018 17 addr_r = 0;
gsfan 0:2f6062c6d018 18 }
gsfan 0:2f6062c6d018 19
gsfan 0:2f6062c6d018 20 RingBuffer::~RingBuffer () {
gsfan 0:2f6062c6d018 21 delete [] buf;
gsfan 0:2f6062c6d018 22 }
gsfan 0:2f6062c6d018 23
gsfan 0:2f6062c6d018 24 int RingBuffer::put (char dat) {
gsfan 0:2f6062c6d018 25 int next;
gsfan 0:2f6062c6d018 26
gsfan 0:2f6062c6d018 27 next = (addr_w + 1) % size;
gsfan 0:2f6062c6d018 28 if (next == addr_r) {
gsfan 0:2f6062c6d018 29 return -1;
gsfan 0:2f6062c6d018 30 }
gsfan 0:2f6062c6d018 31 buf[addr_w] = dat;
gsfan 0:2f6062c6d018 32 addr_w = next;
gsfan 0:2f6062c6d018 33 return -1;
gsfan 0:2f6062c6d018 34 }
gsfan 0:2f6062c6d018 35
gsfan 0:2f6062c6d018 36 int RingBuffer::put (char *dat, int len) {
gsfan 0:2f6062c6d018 37 int next, i;
gsfan 0:2f6062c6d018 38
gsfan 0:2f6062c6d018 39
gsfan 0:2f6062c6d018 40 for (i = 0; i < len; i ++) {
gsfan 0:2f6062c6d018 41 next = (addr_w + 1) % size;
gsfan 0:2f6062c6d018 42 if (next == addr_r) {
gsfan 0:2f6062c6d018 43 break;
gsfan 0:2f6062c6d018 44 }
gsfan 0:2f6062c6d018 45 buf[addr_w] = dat[i];
gsfan 0:2f6062c6d018 46 addr_w = next;
gsfan 0:2f6062c6d018 47 }
gsfan 0:2f6062c6d018 48 return i;
gsfan 0:2f6062c6d018 49 }
gsfan 0:2f6062c6d018 50
gsfan 0:2f6062c6d018 51 int RingBuffer::get (char *dat) {
gsfan 0:2f6062c6d018 52 if (addr_r == addr_w) {
gsfan 0:2f6062c6d018 53 return -1;
gsfan 0:2f6062c6d018 54 }
gsfan 0:2f6062c6d018 55 *dat = buf[addr_r];
gsfan 0:2f6062c6d018 56 addr_r = (addr_r + 1) % size;
gsfan 0:2f6062c6d018 57 return 0;
gsfan 0:2f6062c6d018 58 }
gsfan 0:2f6062c6d018 59
gsfan 0:2f6062c6d018 60 int RingBuffer::get (char *dat, int len) {
gsfan 0:2f6062c6d018 61 int i;
gsfan 0:2f6062c6d018 62
gsfan 0:2f6062c6d018 63 for (i = 0; i < len; i ++) {
gsfan 0:2f6062c6d018 64 if (addr_r == addr_w) {
gsfan 0:2f6062c6d018 65 break;
gsfan 0:2f6062c6d018 66 }
gsfan 0:2f6062c6d018 67 dat[i] = buf[addr_r];
gsfan 0:2f6062c6d018 68 addr_r = (addr_r + 1) % size;
gsfan 0:2f6062c6d018 69 }
gsfan 0:2f6062c6d018 70 return i;
gsfan 0:2f6062c6d018 71 }
gsfan 0:2f6062c6d018 72
gsfan 0:2f6062c6d018 73 int RingBuffer::available () {
gsfan 0:2f6062c6d018 74 if (addr_w < addr_r) {
gsfan 0:2f6062c6d018 75 return addr_r - addr_w - 1;
gsfan 0:2f6062c6d018 76 } else {
gsfan 0:2f6062c6d018 77 return (size - addr_w) + addr_r - 1;
gsfan 0:2f6062c6d018 78 }
gsfan 0:2f6062c6d018 79 }
gsfan 0:2f6062c6d018 80
gsfan 0:2f6062c6d018 81 int RingBuffer::use () {
gsfan 0:2f6062c6d018 82 return size - available() - 1;
gsfan 0:2f6062c6d018 83 }
gsfan 0:2f6062c6d018 84
gsfan 0:2f6062c6d018 85 void RingBuffer::clear () {
gsfan 0:2f6062c6d018 86 addr_w = 0;
gsfan 0:2f6062c6d018 87 addr_r = 0;
gsfan 0:2f6062c6d018 88 }