GSwifiInterface library (interface for GainSpan Wi-Fi GS1011 modules) Please see https://mbed.org/users/gsfan/notebook/GSwifiInterface/

Dependents:   GSwifiInterface_HelloWorld GSwifiInterface_HelloServo GSwifiInterface_UDPEchoServer GSwifiInterface_UDPEchoClient ... more

Fork of WiflyInterface by mbed official

GainSpan Wi-Fi library

The GS1011/GS2100 is an ultra low power 802.11b wireless module from GainSpan.

mbed RTOS supported.

/media/uploads/gsfan/gs_im_002.jpg /media/uploads/gsfan/gs1011m_2.jpg

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

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

mbed RTOS に対応しています。(mbed2.0)

Committer:
gsfan
Date:
Tue Sep 24 06:24:37 2019 +0000
Revision:
22:d25a5a0d2497
Parent:
15:086d1a33a197
UART Command and SPI Data supported.; bug fix.;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gsfan 8:64184a968e3b 1 /* Copyright (C) 2013 gsfan, MIT License
gsfan 8:64184a968e3b 2 *
gsfan 8:64184a968e3b 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
gsfan 8:64184a968e3b 4 * and associated documentation files (the "Software"), to deal in the Software without restriction,
gsfan 8:64184a968e3b 5 * including without limitation the rights to use, copy, modify, merge, publish, distribute,
gsfan 8:64184a968e3b 6 * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
gsfan 8:64184a968e3b 7 * furnished to do so, subject to the following conditions:
gsfan 8:64184a968e3b 8 *
gsfan 8:64184a968e3b 9 * The above copyright notice and this permission notice shall be included in all copies or
gsfan 8:64184a968e3b 10 * substantial portions of the Software.
gsfan 8:64184a968e3b 11 *
gsfan 8:64184a968e3b 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
gsfan 8:64184a968e3b 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
gsfan 8:64184a968e3b 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
gsfan 8:64184a968e3b 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
gsfan 8:64184a968e3b 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
gsfan 8:64184a968e3b 17 */
gsfan 8:64184a968e3b 18
gsfan 8:64184a968e3b 19 #include "GSwifi.h"
gsfan 8:64184a968e3b 20
gsfan 8:64184a968e3b 21 void GSwifi::clearFlags () {
gsfan 8:64184a968e3b 22 _state.ok = false;
gsfan 8:64184a968e3b 23 _state.failure = false;
gsfan 8:64184a968e3b 24 _state.res = RES_NULL;
gsfan 10:7d8134e7df01 25 _state.n = 0;
gsfan 8:64184a968e3b 26 }
gsfan 8:64184a968e3b 27
gsfan 8:64184a968e3b 28 int GSwifi::sendCommand(const char * cmd, Response res, int timeout) {
gsfan 8:64184a968e3b 29 int i;
gsfan 8:64184a968e3b 30 Timer t;
gsfan 8:64184a968e3b 31
gsfan 8:64184a968e3b 32 if (lockUart(timeout)) return -1;
gsfan 8:64184a968e3b 33
gsfan 8:64184a968e3b 34 clearFlags();
gsfan 8:64184a968e3b 35 _state.res = res;
gsfan 8:64184a968e3b 36 for (i = 0; i < strlen(cmd); i ++) {
gsfan 8:64184a968e3b 37 putUart(cmd[i]);
gsfan 8:64184a968e3b 38 }
gsfan 8:64184a968e3b 39 putUart('\r');
gsfan 8:64184a968e3b 40 putUart('\n');
gsfan 8:64184a968e3b 41 unlockUart();
gsfan 8:64184a968e3b 42 INFO("command: '%s'\r\n", cmd);
gsfan 8:64184a968e3b 43
gsfan 8:64184a968e3b 44 if (timeout) {
gsfan 8:64184a968e3b 45 t.start();
gsfan 8:64184a968e3b 46 for (;;) {
gsfan 10:7d8134e7df01 47 if (_state.ok && _state.res == RES_NULL) break;
gsfan 22:d25a5a0d2497 48 if (_state.failure) {
gsfan 22:d25a5a0d2497 49 WARN("failure\r\n");
gsfan 22:d25a5a0d2497 50 _state.res = RES_NULL;
gsfan 22:d25a5a0d2497 51 return -1;
gsfan 22:d25a5a0d2497 52 }
gsfan 22:d25a5a0d2497 53 if (t.read_ms() > timeout) {
gsfan 22:d25a5a0d2497 54 WARN("timeout\r\n");
gsfan 8:64184a968e3b 55 _state.res = RES_NULL;
gsfan 8:64184a968e3b 56 return -1;
gsfan 8:64184a968e3b 57 }
gsfan 8:64184a968e3b 58 }
gsfan 8:64184a968e3b 59 t.stop();
gsfan 8:64184a968e3b 60 }
gsfan 8:64184a968e3b 61 INFO("ok\r\n");
gsfan 8:64184a968e3b 62 _state.res = RES_NULL;
gsfan 8:64184a968e3b 63
gsfan 8:64184a968e3b 64 return 0;
gsfan 8:64184a968e3b 65 }
gsfan 8:64184a968e3b 66
gsfan 8:64184a968e3b 67 int GSwifi::sendData(const char * data, int len, int timeout, const char * cmd) {
gsfan 8:64184a968e3b 68 int i;
gsfan 8:64184a968e3b 69 Timer t;
gsfan 8:64184a968e3b 70
gsfan 22:d25a5a0d2497 71 #ifdef CFG_SPI_DATAINTERFACE
gsfan 22:d25a5a0d2497 72 if (_state.datainterface) {
gsfan 22:d25a5a0d2497 73 if (lockSpi(timeout)) return -1;
gsfan 22:d25a5a0d2497 74
gsfan 22:d25a5a0d2497 75 clearFlags();
gsfan 22:d25a5a0d2497 76 for (i = 0; i < strlen(cmd); i ++) {
gsfan 22:d25a5a0d2497 77 putSpi(cmd[i]);
gsfan 22:d25a5a0d2497 78 }
gsfan 22:d25a5a0d2497 79 for (i = 0; i < len; i ++) {
gsfan 22:d25a5a0d2497 80 switch (data[i]) {
gsfan 22:d25a5a0d2497 81 case 0: // encode
gsfan 22:d25a5a0d2497 82 case 0xf3:
gsfan 22:d25a5a0d2497 83 case 0xf5:
gsfan 22:d25a5a0d2497 84 case 0xfa:
gsfan 22:d25a5a0d2497 85 case 0xfb:
gsfan 22:d25a5a0d2497 86 case 0xfd:
gsfan 22:d25a5a0d2497 87 case 0xff:
gsfan 22:d25a5a0d2497 88 putSpi(0xfb);
gsfan 22:d25a5a0d2497 89 putSpi(data[i] ^ 0x20); // xor
gsfan 22:d25a5a0d2497 90 break;
gsfan 22:d25a5a0d2497 91 default:
gsfan 22:d25a5a0d2497 92 putSpi(data[i]);
gsfan 22:d25a5a0d2497 93 break;
gsfan 22:d25a5a0d2497 94 }
gsfan 22:d25a5a0d2497 95 }
gsfan 22:d25a5a0d2497 96 unlockSpi();
gsfan 22:d25a5a0d2497 97 } else {
gsfan 22:d25a5a0d2497 98 #endif
gsfan 8:64184a968e3b 99 if (lockUart(timeout)) return -1;
gsfan 8:64184a968e3b 100
gsfan 8:64184a968e3b 101 clearFlags();
gsfan 8:64184a968e3b 102 for (i = 0; i < strlen(cmd); i ++) {
gsfan 8:64184a968e3b 103 putUart(cmd[i]);
gsfan 8:64184a968e3b 104 }
gsfan 8:64184a968e3b 105 for (i = 0; i < len; i ++) {
gsfan 8:64184a968e3b 106 putUart(data[i]);
gsfan 8:64184a968e3b 107 }
gsfan 8:64184a968e3b 108 unlockUart();
gsfan 22:d25a5a0d2497 109 #ifdef CFG_SPI_DATAINTERFACE
gsfan 22:d25a5a0d2497 110 } // _state.datainterface
gsfan 22:d25a5a0d2497 111 #endif
gsfan 22:d25a5a0d2497 112 INFO("data: '%s' %d %d\r\n", cmd, len, _state.datainterface);
gsfan 8:64184a968e3b 113
gsfan 8:64184a968e3b 114 if (timeout) {
gsfan 8:64184a968e3b 115 t.start();
gsfan 8:64184a968e3b 116 for (;;) {
gsfan 8:64184a968e3b 117 if (_state.ok) break;
gsfan 22:d25a5a0d2497 118 if (_state.failure) {
gsfan 22:d25a5a0d2497 119 WARN("failure\r\n");
gsfan 22:d25a5a0d2497 120 return -1;
gsfan 22:d25a5a0d2497 121 }
gsfan 22:d25a5a0d2497 122 if (t.read_ms() > timeout) {
gsfan 22:d25a5a0d2497 123 WARN("timeout\r\n");
gsfan 8:64184a968e3b 124 return -1;
gsfan 8:64184a968e3b 125 }
gsfan 8:64184a968e3b 126 }
gsfan 8:64184a968e3b 127 t.stop();
gsfan 8:64184a968e3b 128 }
gsfan 8:64184a968e3b 129
gsfan 8:64184a968e3b 130 return i;
gsfan 8:64184a968e3b 131 }
gsfan 8:64184a968e3b 132
gsfan 8:64184a968e3b 133
gsfan 8:64184a968e3b 134 int GSwifi::cmdAT () {
gsfan 8:64184a968e3b 135 return sendCommand("AT");
gsfan 8:64184a968e3b 136 }
gsfan 8:64184a968e3b 137
gsfan 8:64184a968e3b 138 int GSwifi::cmdE (bool n) {
gsfan 8:64184a968e3b 139 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 140 sprintf(cmd, "ATE%d", n ? 1 : 0);
gsfan 8:64184a968e3b 141 return sendCommand(cmd);
gsfan 8:64184a968e3b 142 }
gsfan 8:64184a968e3b 143
gsfan 8:64184a968e3b 144 int GSwifi::cmdR (bool n) {
gsfan 8:64184a968e3b 145 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 146 sprintf(cmd, "AT&R%d", n ? 1 : 0);
gsfan 8:64184a968e3b 147 return sendCommand(cmd);
gsfan 8:64184a968e3b 148 }
gsfan 8:64184a968e3b 149
gsfan 8:64184a968e3b 150 int GSwifi::cmdNMAC (const char *s) {
gsfan 8:64184a968e3b 151 int r;
gsfan 8:64184a968e3b 152 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 153 const char xmac[] = "00:1D:C9:01:99:99";
gsfan 8:64184a968e3b 154 if (s) {
gsfan 8:64184a968e3b 155 sprintf(cmd, "AT+NMAC2=%s", s);
gsfan 8:64184a968e3b 156 r = sendCommand(cmd);
gsfan 8:64184a968e3b 157 } else {
gsfan 8:64184a968e3b 158 sprintf(cmd, "AT+NMAC=?");
gsfan 8:64184a968e3b 159 r = sendCommand(cmd, RES_MACADDRESS);
gsfan 8:64184a968e3b 160 if (!r && strncmp(_state.mac, xmac, 17) == 0) {
gsfan 8:64184a968e3b 161 r = -1;
gsfan 8:64184a968e3b 162 }
gsfan 8:64184a968e3b 163 }
gsfan 8:64184a968e3b 164 return r;
gsfan 8:64184a968e3b 165 }
gsfan 8:64184a968e3b 166
gsfan 8:64184a968e3b 167 int GSwifi::cmdWREGDOMAIN (int n) {
gsfan 8:64184a968e3b 168 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 169 sprintf(cmd, "AT+WREGDOMAIN=%d", n);
gsfan 8:64184a968e3b 170 return sendCommand(cmd);
gsfan 8:64184a968e3b 171 }
gsfan 8:64184a968e3b 172
gsfan 8:64184a968e3b 173 int GSwifi::cmdWS () {
gsfan 8:64184a968e3b 174 return sendCommand("AT+WS");
gsfan 8:64184a968e3b 175 }
gsfan 8:64184a968e3b 176
gsfan 8:64184a968e3b 177 int GSwifi::cmdWM (int n) {
gsfan 8:64184a968e3b 178 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 179 sprintf(cmd, "AT+WM=%d", n);
gsfan 8:64184a968e3b 180 return sendCommand(cmd);
gsfan 8:64184a968e3b 181 }
gsfan 8:64184a968e3b 182
gsfan 8:64184a968e3b 183 int GSwifi::cmdWA (const char *s) {
gsfan 8:64184a968e3b 184 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 185 sprintf(cmd, "AT+WA=%s", s);
gsfan 8:64184a968e3b 186 return sendCommand(cmd, RES_DHCP, CFG_TIMEOUT);
gsfan 8:64184a968e3b 187 }
gsfan 8:64184a968e3b 188
gsfan 8:64184a968e3b 189 int GSwifi::cmdWD () {
gsfan 8:64184a968e3b 190 return sendCommand("AT+WD");
gsfan 8:64184a968e3b 191 }
gsfan 8:64184a968e3b 192
gsfan 8:64184a968e3b 193 int GSwifi::cmdWWPS (bool n, const char *p) {
gsfan 8:64184a968e3b 194 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 195 if (p) {
gsfan 8:64184a968e3b 196 sprintf(cmd, "AT+WWPS=2,%s", p);
gsfan 8:64184a968e3b 197 } else {
gsfan 8:64184a968e3b 198 sprintf(cmd, "AT+WWPS=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 199 }
gsfan 8:64184a968e3b 200 return sendCommand(cmd, RES_WPS, CFG_TIMEOUT);
gsfan 8:64184a968e3b 201 }
gsfan 8:64184a968e3b 202
gsfan 8:64184a968e3b 203 int GSwifi::cmdNSTAT () {
gsfan 8:64184a968e3b 204 return sendCommand("AT+NSTAT=?");
gsfan 8:64184a968e3b 205 }
gsfan 8:64184a968e3b 206
gsfan 8:64184a968e3b 207 int GSwifi::cmdWSTATUS () {
gsfan 8:64184a968e3b 208 return sendCommand("AT+WSTATUS", RES_STATUS);
gsfan 8:64184a968e3b 209 }
gsfan 8:64184a968e3b 210
gsfan 8:64184a968e3b 211 int GSwifi::cmdWRSSI () {
gsfan 8:64184a968e3b 212 return sendCommand("AT+WRSSI=?", RES_RSSI);
gsfan 8:64184a968e3b 213 }
gsfan 8:64184a968e3b 214
gsfan 8:64184a968e3b 215 int GSwifi::cmdWAUTH (int n) {
gsfan 8:64184a968e3b 216 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 217 sprintf(cmd, "AT+WAUTH=%d", n);
gsfan 8:64184a968e3b 218 return sendCommand(cmd);
gsfan 8:64184a968e3b 219 }
gsfan 8:64184a968e3b 220
gsfan 8:64184a968e3b 221 int GSwifi::cmdWWEP (int n, const char *s) {
gsfan 8:64184a968e3b 222 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 223 sprintf(cmd, "AT+WWEP%d=%s", n, s);
gsfan 8:64184a968e3b 224 return sendCommand(cmd);
gsfan 8:64184a968e3b 225 }
gsfan 8:64184a968e3b 226
gsfan 8:64184a968e3b 227 int GSwifi::cmdWPAPSK (const char *s, const char *p) {
gsfan 8:64184a968e3b 228 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 229 sprintf(cmd, "AT+WPAPSK=%s,%s", s, p);
gsfan 13:189e04ac70bd 230 return sendCommand(cmd, RES_WPAPSK, CFG_TIMEOUT);
gsfan 8:64184a968e3b 231 }
gsfan 8:64184a968e3b 232
gsfan 8:64184a968e3b 233 int GSwifi::cmdWRXACTIVE (bool n) {
gsfan 8:64184a968e3b 234 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 235 sprintf(cmd, "AT+WRXACTIVE=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 236 return sendCommand(cmd);
gsfan 8:64184a968e3b 237 }
gsfan 8:64184a968e3b 238
gsfan 8:64184a968e3b 239 int GSwifi::cmdWRXPS (bool n) {
gsfan 8:64184a968e3b 240 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 241 sprintf(cmd, "AT+WRXPS=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 242 return sendCommand(cmd);
gsfan 8:64184a968e3b 243 }
gsfan 8:64184a968e3b 244
gsfan 8:64184a968e3b 245 int GSwifi::cmdWP (int n) {
gsfan 8:64184a968e3b 246 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 247 sprintf(cmd, "AT+WP=%d", n);
gsfan 8:64184a968e3b 248 return sendCommand(cmd);
gsfan 8:64184a968e3b 249 }
gsfan 8:64184a968e3b 250
gsfan 8:64184a968e3b 251 int GSwifi::cmdNDHCP (bool n, const char *s, int m) {
gsfan 8:64184a968e3b 252 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 253 if (n) {
gsfan 8:64184a968e3b 254 if (s) {
gsfan 8:64184a968e3b 255 sprintf(cmd, "AT+NDHCP=1,%s", s);
gsfan 8:64184a968e3b 256 } else {
gsfan 8:64184a968e3b 257 sprintf(cmd, "AT+NDHCP=1");
gsfan 8:64184a968e3b 258 }
gsfan 8:64184a968e3b 259 return sendCommand(cmd, RES_DHCP, m);
gsfan 8:64184a968e3b 260 } else {
gsfan 8:64184a968e3b 261 return sendCommand("AT+NDHCP=0");
gsfan 8:64184a968e3b 262 }
gsfan 8:64184a968e3b 263 }
gsfan 8:64184a968e3b 264
gsfan 8:64184a968e3b 265 int GSwifi::cmdDHCPSRVR (bool n) {
gsfan 8:64184a968e3b 266 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 267 sprintf(cmd, "AT+DHCPSRVR=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 268 return sendCommand(cmd);
gsfan 8:64184a968e3b 269 }
gsfan 8:64184a968e3b 270
gsfan 8:64184a968e3b 271 int GSwifi::cmdNSET (const char *s, const char *t, const char *u) {
gsfan 8:64184a968e3b 272 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 273 sprintf(cmd, "AT+NSET=%s,%s,%s", s, t, u);
gsfan 8:64184a968e3b 274 return sendCommand(cmd);
gsfan 8:64184a968e3b 275 }
gsfan 8:64184a968e3b 276
gsfan 8:64184a968e3b 277 int GSwifi::cmdDNS (bool n, const char *s) {
gsfan 8:64184a968e3b 278 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 279 if (n) {
gsfan 8:64184a968e3b 280 if (s) {
gsfan 8:64184a968e3b 281 sprintf(cmd, "AT+DNS=1,%s", s);
gsfan 8:64184a968e3b 282 } else {
gsfan 8:64184a968e3b 283 sprintf(cmd, "AT+DNS=1," CFG_DNSNAME);
gsfan 8:64184a968e3b 284 }
gsfan 8:64184a968e3b 285 } else {
gsfan 8:64184a968e3b 286 sprintf(cmd, "AT+DNS=0");
gsfan 8:64184a968e3b 287 }
gsfan 8:64184a968e3b 288 return sendCommand(cmd);
gsfan 8:64184a968e3b 289 }
gsfan 8:64184a968e3b 290
gsfan 8:64184a968e3b 291 int GSwifi::cmdDNSLOOKUP (const char *s) {
gsfan 8:64184a968e3b 292 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 293 sprintf(cmd, "AT+DNSLOOKUP=%s", s);
gsfan 8:64184a968e3b 294 return sendCommand(cmd, RES_DNSLOOKUP, CFG_TIMEOUT);
gsfan 8:64184a968e3b 295 }
gsfan 8:64184a968e3b 296
gsfan 8:64184a968e3b 297 int GSwifi::cmdDNSSET (const char *s) {
gsfan 8:64184a968e3b 298 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 299 sprintf(cmd, "AT+DNSSET=%s", s);
gsfan 8:64184a968e3b 300 return sendCommand(cmd);
gsfan 8:64184a968e3b 301 }
gsfan 8:64184a968e3b 302
gsfan 8:64184a968e3b 303 int GSwifi::cmdSTORENWCONN () {
gsfan 8:64184a968e3b 304 return sendCommand("AT+STORENWCONN");
gsfan 8:64184a968e3b 305 }
gsfan 8:64184a968e3b 306
gsfan 8:64184a968e3b 307 int GSwifi::cmdRESTORENWCONN () {
gsfan 8:64184a968e3b 308 return sendCommand("AT+RESTORENWCONN");
gsfan 8:64184a968e3b 309 }
gsfan 8:64184a968e3b 310
gsfan 8:64184a968e3b 311 int GSwifi::cmdBDATA (bool n) {
gsfan 8:64184a968e3b 312 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 313 sprintf(cmd, "AT+BDATA=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 314 return sendCommand(cmd);
gsfan 8:64184a968e3b 315 }
gsfan 8:64184a968e3b 316
gsfan 8:64184a968e3b 317 int GSwifi::cmdNCTCP (const char *s, int n) {
gsfan 8:64184a968e3b 318 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 319 sprintf(cmd, "AT+NCTCP=%s,%d", s, n);
gsfan 8:64184a968e3b 320 return sendCommand(cmd, RES_CONNECT, CFG_TIMEOUT);
gsfan 8:64184a968e3b 321 }
gsfan 8:64184a968e3b 322
gsfan 8:64184a968e3b 323 int GSwifi::cmdNCUDP (const char *s, int n, int m) {
gsfan 8:64184a968e3b 324 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 325 if (m) {
gsfan 8:64184a968e3b 326 sprintf(cmd, "AT+NCUDP=%s,%d,%d", s, n, m);
gsfan 8:64184a968e3b 327 } else {
gsfan 8:64184a968e3b 328 sprintf(cmd, "AT+NCUDP=%s,%d", s, n);
gsfan 8:64184a968e3b 329 }
gsfan 8:64184a968e3b 330 return sendCommand(cmd, RES_CONNECT, CFG_TIMEOUT);
gsfan 8:64184a968e3b 331 }
gsfan 8:64184a968e3b 332
gsfan 8:64184a968e3b 333 int GSwifi::cmdNSTCP (int n) {
gsfan 8:64184a968e3b 334 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 335 sprintf(cmd, "AT+NSTCP=%d", n);
gsfan 8:64184a968e3b 336 return sendCommand(cmd, RES_CONNECT);
gsfan 8:64184a968e3b 337 }
gsfan 8:64184a968e3b 338
gsfan 8:64184a968e3b 339 int GSwifi::cmdNSUDP (int n) {
gsfan 8:64184a968e3b 340 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 341 sprintf(cmd, "AT+NSUDP=%d", n);
gsfan 8:64184a968e3b 342 return sendCommand(cmd, RES_CONNECT);
gsfan 8:64184a968e3b 343 }
gsfan 8:64184a968e3b 344
gsfan 8:64184a968e3b 345 int GSwifi::cmdNCLOSE (int n) {
gsfan 8:64184a968e3b 346 char cmd[CFG_CMD_SIZE];
gsfan 15:086d1a33a197 347 sprintf(cmd, "AT+NCLOSE=%X", n);
gsfan 8:64184a968e3b 348 return sendCommand(cmd, RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 349 }
gsfan 8:64184a968e3b 350
gsfan 8:64184a968e3b 351 int GSwifi::cmdNCLOSEALL () {
gsfan 8:64184a968e3b 352 return sendCommand("AT+NCLOSEALL", RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 353 }
gsfan 8:64184a968e3b 354
gsfan 8:64184a968e3b 355 int GSwifi::cmdHTTPCONF (int n, const char *s) {
gsfan 8:64184a968e3b 356 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 357 sprintf(cmd, "AT+HTTPCONF=%d,%s", n, s);
gsfan 8:64184a968e3b 358 return sendCommand(cmd);
gsfan 8:64184a968e3b 359 }
gsfan 8:64184a968e3b 360
gsfan 8:64184a968e3b 361 int GSwifi::cmdHTTPCONFDEL (int n) {
gsfan 8:64184a968e3b 362 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 363 sprintf(cmd, "AT+HTTPCONFDEL=%d", n);
gsfan 8:64184a968e3b 364 return sendCommand(cmd);
gsfan 8:64184a968e3b 365 }
gsfan 8:64184a968e3b 366
gsfan 8:64184a968e3b 367 int GSwifi::cmdHTTPOPEN (const char *s, int n, bool m) {
gsfan 8:64184a968e3b 368 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 369 if (m) {
gsfan 8:64184a968e3b 370 sprintf(cmd, "AT+HTTPOPEN=%s,%d,1", s, n);
gsfan 8:64184a968e3b 371 } else {
gsfan 8:64184a968e3b 372 sprintf(cmd, "AT+HTTPOPEN=%s,%d", s, n);
gsfan 8:64184a968e3b 373 }
gsfan 12:057089026a20 374 return sendCommand(cmd, RES_HTTP, CFG_TIMEOUT);
gsfan 8:64184a968e3b 375 }
gsfan 8:64184a968e3b 376
gsfan 8:64184a968e3b 377 int GSwifi::cmdHTTPSEND (int n, bool m, const char *s, int t) {
gsfan 8:64184a968e3b 378 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 379 if (m) {
gsfan 15:086d1a33a197 380 sprintf(cmd, "AT+HTTPSEND=%X,3,%d,%s,%d", n, CFG_TIMEOUT / 1000, s, t);
gsfan 8:64184a968e3b 381 } else {
gsfan 15:086d1a33a197 382 sprintf(cmd, "AT+HTTPSEND=%X,1,%d,%s", n, CFG_TIMEOUT / 1000, s);
gsfan 8:64184a968e3b 383 }
gsfan 12:057089026a20 384 return sendCommand(cmd);
gsfan 8:64184a968e3b 385 }
gsfan 8:64184a968e3b 386
gsfan 8:64184a968e3b 387 int GSwifi::cmdHTTPCLOSE (int n) {
gsfan 8:64184a968e3b 388 char cmd[CFG_CMD_SIZE];
gsfan 15:086d1a33a197 389 sprintf(cmd, "AT+HTTPCLOSE=%X", n);
gsfan 8:64184a968e3b 390 return sendCommand(cmd, RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 391 }
gsfan 8:64184a968e3b 392
gsfan 8:64184a968e3b 393 int GSwifi::cmdPSDPSLEEP (int n) {
gsfan 8:64184a968e3b 394 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 395 if (n) {
gsfan 8:64184a968e3b 396 sprintf(cmd, "AT+PSDPSLEEP=%d", n);
gsfan 8:64184a968e3b 397 } else {
gsfan 8:64184a968e3b 398 sprintf(cmd, "AT+PSDPSLEEP");
gsfan 8:64184a968e3b 399 }
gsfan 11:71d67fea5ace 400 return sendCommand(cmd, RES_NULL, 0);
gsfan 8:64184a968e3b 401 }
gsfan 8:64184a968e3b 402
gsfan 8:64184a968e3b 403 int GSwifi::cmdPSSTBY (int n, int m) {
gsfan 8:64184a968e3b 404 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 405 sprintf(cmd, "AT+PSSTBY=%d,0,%d,%d", n, m, m);
gsfan 8:64184a968e3b 406 return sendCommand(cmd, RES_NULL, 0);
gsfan 8:64184a968e3b 407 }
gsfan 8:64184a968e3b 408
gsfan 8:64184a968e3b 409 int GSwifi::cmdWEBPROV (const char *s, const char *p) {
gsfan 8:64184a968e3b 410 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 411 sprintf(cmd, "AT+WEBPROV=%s,%s", s, p);
gsfan 8:64184a968e3b 412 return sendCommand(cmd);
gsfan 8:64184a968e3b 413 }
gsfan 8:64184a968e3b 414
gsfan 8:64184a968e3b 415 int GSwifi::cmdSETTIME (const char *s, const char *t) {
gsfan 8:64184a968e3b 416 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 417 sprintf(cmd, "AT+SETTIME=%s,%s", s, t);
gsfan 8:64184a968e3b 418 return sendCommand(cmd);
gsfan 8:64184a968e3b 419 }
gsfan 8:64184a968e3b 420
gsfan 8:64184a968e3b 421 int GSwifi::cmdGETTIME () {
gsfan 8:64184a968e3b 422 return sendCommand("AT+GETTIME=?", RES_TIME);
gsfan 8:64184a968e3b 423 }
gsfan 8:64184a968e3b 424
gsfan 8:64184a968e3b 425 int GSwifi::cmdNTIMESYNC (bool n, const char *s, int m) {
gsfan 8:64184a968e3b 426 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 427 if (n) {
gsfan 8:64184a968e3b 428 if (m) {
gsfan 8:64184a968e3b 429 sprintf(cmd, "AT+NTIMESYNC=1,%s,%d,1,%d", s, CFG_TIMEOUT / 1000, m);
gsfan 8:64184a968e3b 430 } else {
gsfan 8:64184a968e3b 431 sprintf(cmd, "AT+NTIMESYNC=1,%s,%d,0", s, CFG_TIMEOUT / 1000);
gsfan 8:64184a968e3b 432 }
gsfan 8:64184a968e3b 433 } else {
gsfan 8:64184a968e3b 434 sprintf(cmd, "AT+NTIMESYNC=0");
gsfan 8:64184a968e3b 435 }
gsfan 8:64184a968e3b 436 return sendCommand(cmd, RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 437 }
gsfan 8:64184a968e3b 438
gsfan 8:64184a968e3b 439 int GSwifi::cmdDGPIO (int n, int m) {
gsfan 8:64184a968e3b 440 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 441 sprintf(cmd, "AT+DGPIO=%d,%d", n, m);
gsfan 8:64184a968e3b 442 return sendCommand(cmd);
gsfan 8:64184a968e3b 443 }