private fork

Fork of GSwifiInterface by gs fan

Committer:
gsfan
Date:
Thu Oct 31 06:41:45 2013 +0000
Revision:
8:64184a968e3b
Child:
10:7d8134e7df01
supported mbed RTOS

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 8:64184a968e3b 25 _state.mode = MODE_COMMAND;
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 _state.n = 0;
gsfan 8:64184a968e3b 37 for (i = 0; i < strlen(cmd); i ++) {
gsfan 8:64184a968e3b 38 putUart(cmd[i]);
gsfan 8:64184a968e3b 39 }
gsfan 8:64184a968e3b 40 putUart('\r');
gsfan 8:64184a968e3b 41 putUart('\n');
gsfan 8:64184a968e3b 42 unlockUart();
gsfan 8:64184a968e3b 43 INFO("command: '%s'\r\n", cmd);
gsfan 8:64184a968e3b 44
gsfan 8:64184a968e3b 45 if (timeout) {
gsfan 8:64184a968e3b 46 t.start();
gsfan 8:64184a968e3b 47 for (;;) {
gsfan 8:64184a968e3b 48 if (_state.ok) break;
gsfan 8:64184a968e3b 49 if (_state.failure || t.read_ms() > timeout) {
gsfan 8:64184a968e3b 50 WARN("failure or timeout\r\n");
gsfan 8:64184a968e3b 51 _state.res = RES_NULL;
gsfan 8:64184a968e3b 52 return -1;
gsfan 8:64184a968e3b 53 }
gsfan 8:64184a968e3b 54 }
gsfan 8:64184a968e3b 55 t.stop();
gsfan 8:64184a968e3b 56 }
gsfan 8:64184a968e3b 57 INFO("ok\r\n");
gsfan 8:64184a968e3b 58 _state.res = RES_NULL;
gsfan 8:64184a968e3b 59
gsfan 8:64184a968e3b 60 return 0;
gsfan 8:64184a968e3b 61 }
gsfan 8:64184a968e3b 62
gsfan 8:64184a968e3b 63 int GSwifi::sendData(const char * data, int len, int timeout, const char * cmd) {
gsfan 8:64184a968e3b 64 int i;
gsfan 8:64184a968e3b 65 Timer t;
gsfan 8:64184a968e3b 66
gsfan 8:64184a968e3b 67 if (lockUart(timeout)) return -1;
gsfan 8:64184a968e3b 68
gsfan 8:64184a968e3b 69 clearFlags();
gsfan 8:64184a968e3b 70 for (i = 0; i < strlen(cmd); i ++) {
gsfan 8:64184a968e3b 71 putUart(cmd[i]);
gsfan 8:64184a968e3b 72 }
gsfan 8:64184a968e3b 73 for (i = 0; i < len; i ++) {
gsfan 8:64184a968e3b 74 putUart(data[i]);
gsfan 8:64184a968e3b 75 }
gsfan 8:64184a968e3b 76 unlockUart();
gsfan 8:64184a968e3b 77 INFO("data: '%s' %d\r\n", cmd, len);
gsfan 8:64184a968e3b 78
gsfan 8:64184a968e3b 79 if (timeout) {
gsfan 8:64184a968e3b 80 t.start();
gsfan 8:64184a968e3b 81 for (;;) {
gsfan 8:64184a968e3b 82 if (_state.ok) break;
gsfan 8:64184a968e3b 83 if (_state.failure || t.read_ms() > timeout) {
gsfan 8:64184a968e3b 84 WARN("failure or timeout\r\n");
gsfan 8:64184a968e3b 85 return -1;
gsfan 8:64184a968e3b 86 }
gsfan 8:64184a968e3b 87 }
gsfan 8:64184a968e3b 88 t.stop();
gsfan 8:64184a968e3b 89 }
gsfan 8:64184a968e3b 90
gsfan 8:64184a968e3b 91 return i;
gsfan 8:64184a968e3b 92 }
gsfan 8:64184a968e3b 93
gsfan 8:64184a968e3b 94
gsfan 8:64184a968e3b 95 int GSwifi::cmdAT () {
gsfan 8:64184a968e3b 96 return sendCommand("AT");
gsfan 8:64184a968e3b 97 }
gsfan 8:64184a968e3b 98
gsfan 8:64184a968e3b 99 int GSwifi::cmdE (bool n) {
gsfan 8:64184a968e3b 100 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 101 sprintf(cmd, "ATE%d", n ? 1 : 0);
gsfan 8:64184a968e3b 102 return sendCommand(cmd);
gsfan 8:64184a968e3b 103 }
gsfan 8:64184a968e3b 104
gsfan 8:64184a968e3b 105 int GSwifi::cmdR (bool n) {
gsfan 8:64184a968e3b 106 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 107 sprintf(cmd, "AT&R%d", n ? 1 : 0);
gsfan 8:64184a968e3b 108 return sendCommand(cmd);
gsfan 8:64184a968e3b 109 }
gsfan 8:64184a968e3b 110
gsfan 8:64184a968e3b 111 int GSwifi::cmdNMAC (const char *s) {
gsfan 8:64184a968e3b 112 int r;
gsfan 8:64184a968e3b 113 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 114 const char xmac[] = "00:1D:C9:01:99:99";
gsfan 8:64184a968e3b 115 if (s) {
gsfan 8:64184a968e3b 116 sprintf(cmd, "AT+NMAC2=%s", s);
gsfan 8:64184a968e3b 117 r = sendCommand(cmd);
gsfan 8:64184a968e3b 118 } else {
gsfan 8:64184a968e3b 119 sprintf(cmd, "AT+NMAC=?");
gsfan 8:64184a968e3b 120 r = sendCommand(cmd, RES_MACADDRESS);
gsfan 8:64184a968e3b 121 if (!r && strncmp(_state.mac, xmac, 17) == 0) {
gsfan 8:64184a968e3b 122 r = -1;
gsfan 8:64184a968e3b 123 }
gsfan 8:64184a968e3b 124 }
gsfan 8:64184a968e3b 125 return r;
gsfan 8:64184a968e3b 126 }
gsfan 8:64184a968e3b 127
gsfan 8:64184a968e3b 128 int GSwifi::cmdWREGDOMAIN (int n) {
gsfan 8:64184a968e3b 129 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 130 sprintf(cmd, "AT+WREGDOMAIN=%d", n);
gsfan 8:64184a968e3b 131 return sendCommand(cmd);
gsfan 8:64184a968e3b 132 }
gsfan 8:64184a968e3b 133
gsfan 8:64184a968e3b 134 int GSwifi::cmdWS () {
gsfan 8:64184a968e3b 135 return sendCommand("AT+WS");
gsfan 8:64184a968e3b 136 }
gsfan 8:64184a968e3b 137
gsfan 8:64184a968e3b 138 int GSwifi::cmdWM (int n) {
gsfan 8:64184a968e3b 139 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 140 sprintf(cmd, "AT+WM=%d", n);
gsfan 8:64184a968e3b 141 return sendCommand(cmd);
gsfan 8:64184a968e3b 142 }
gsfan 8:64184a968e3b 143
gsfan 8:64184a968e3b 144 int GSwifi::cmdWA (const char *s) {
gsfan 8:64184a968e3b 145 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 146 sprintf(cmd, "AT+WA=%s", s);
gsfan 8:64184a968e3b 147 return sendCommand(cmd, RES_DHCP, CFG_TIMEOUT);
gsfan 8:64184a968e3b 148 }
gsfan 8:64184a968e3b 149
gsfan 8:64184a968e3b 150 int GSwifi::cmdWD () {
gsfan 8:64184a968e3b 151 return sendCommand("AT+WD");
gsfan 8:64184a968e3b 152 }
gsfan 8:64184a968e3b 153
gsfan 8:64184a968e3b 154 int GSwifi::cmdWWPS (bool n, const char *p) {
gsfan 8:64184a968e3b 155 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 156 if (p) {
gsfan 8:64184a968e3b 157 sprintf(cmd, "AT+WWPS=2,%s", p);
gsfan 8:64184a968e3b 158 } else {
gsfan 8:64184a968e3b 159 sprintf(cmd, "AT+WWPS=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 160 }
gsfan 8:64184a968e3b 161 return sendCommand(cmd, RES_WPS, CFG_TIMEOUT);
gsfan 8:64184a968e3b 162 }
gsfan 8:64184a968e3b 163
gsfan 8:64184a968e3b 164 int GSwifi::cmdNSTAT () {
gsfan 8:64184a968e3b 165 return sendCommand("AT+NSTAT=?");
gsfan 8:64184a968e3b 166 }
gsfan 8:64184a968e3b 167
gsfan 8:64184a968e3b 168 int GSwifi::cmdWSTATUS () {
gsfan 8:64184a968e3b 169 return sendCommand("AT+WSTATUS", RES_STATUS);
gsfan 8:64184a968e3b 170 }
gsfan 8:64184a968e3b 171
gsfan 8:64184a968e3b 172 int GSwifi::cmdWRSSI () {
gsfan 8:64184a968e3b 173 return sendCommand("AT+WRSSI=?", RES_RSSI);
gsfan 8:64184a968e3b 174 }
gsfan 8:64184a968e3b 175
gsfan 8:64184a968e3b 176 int GSwifi::cmdWAUTH (int n) {
gsfan 8:64184a968e3b 177 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 178 sprintf(cmd, "AT+WAUTH=%d", n);
gsfan 8:64184a968e3b 179 return sendCommand(cmd);
gsfan 8:64184a968e3b 180 }
gsfan 8:64184a968e3b 181
gsfan 8:64184a968e3b 182 int GSwifi::cmdWWEP (int n, const char *s) {
gsfan 8:64184a968e3b 183 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 184 sprintf(cmd, "AT+WWEP%d=%s", n, s);
gsfan 8:64184a968e3b 185 return sendCommand(cmd);
gsfan 8:64184a968e3b 186 }
gsfan 8:64184a968e3b 187
gsfan 8:64184a968e3b 188 int GSwifi::cmdWPAPSK (const char *s, const char *p) {
gsfan 8:64184a968e3b 189 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 190 sprintf(cmd, "AT+WPAPSK=%s,%s", s, p);
gsfan 8:64184a968e3b 191 return sendCommand(cmd, RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 192 }
gsfan 8:64184a968e3b 193
gsfan 8:64184a968e3b 194 int GSwifi::cmdWRXACTIVE (bool n) {
gsfan 8:64184a968e3b 195 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 196 sprintf(cmd, "AT+WRXACTIVE=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 197 return sendCommand(cmd);
gsfan 8:64184a968e3b 198 }
gsfan 8:64184a968e3b 199
gsfan 8:64184a968e3b 200 int GSwifi::cmdWRXPS (bool n) {
gsfan 8:64184a968e3b 201 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 202 sprintf(cmd, "AT+WRXPS=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 203 return sendCommand(cmd);
gsfan 8:64184a968e3b 204 }
gsfan 8:64184a968e3b 205
gsfan 8:64184a968e3b 206 int GSwifi::cmdWP (int n) {
gsfan 8:64184a968e3b 207 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 208 sprintf(cmd, "AT+WP=%d", n);
gsfan 8:64184a968e3b 209 return sendCommand(cmd);
gsfan 8:64184a968e3b 210 }
gsfan 8:64184a968e3b 211
gsfan 8:64184a968e3b 212 int GSwifi::cmdNDHCP (bool n, const char *s, int m) {
gsfan 8:64184a968e3b 213 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 214 if (n) {
gsfan 8:64184a968e3b 215 if (s) {
gsfan 8:64184a968e3b 216 sprintf(cmd, "AT+NDHCP=1,%s", s);
gsfan 8:64184a968e3b 217 } else {
gsfan 8:64184a968e3b 218 sprintf(cmd, "AT+NDHCP=1");
gsfan 8:64184a968e3b 219 }
gsfan 8:64184a968e3b 220 return sendCommand(cmd, RES_DHCP, m);
gsfan 8:64184a968e3b 221 } else {
gsfan 8:64184a968e3b 222 return sendCommand("AT+NDHCP=0");
gsfan 8:64184a968e3b 223 }
gsfan 8:64184a968e3b 224 }
gsfan 8:64184a968e3b 225
gsfan 8:64184a968e3b 226 int GSwifi::cmdDHCPSRVR (bool n) {
gsfan 8:64184a968e3b 227 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 228 sprintf(cmd, "AT+DHCPSRVR=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 229 return sendCommand(cmd);
gsfan 8:64184a968e3b 230 }
gsfan 8:64184a968e3b 231
gsfan 8:64184a968e3b 232 int GSwifi::cmdNSET (const char *s, const char *t, const char *u) {
gsfan 8:64184a968e3b 233 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 234 sprintf(cmd, "AT+NSET=%s,%s,%s", s, t, u);
gsfan 8:64184a968e3b 235 return sendCommand(cmd);
gsfan 8:64184a968e3b 236 }
gsfan 8:64184a968e3b 237
gsfan 8:64184a968e3b 238 int GSwifi::cmdDNS (bool n, const char *s) {
gsfan 8:64184a968e3b 239 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 240 if (n) {
gsfan 8:64184a968e3b 241 if (s) {
gsfan 8:64184a968e3b 242 sprintf(cmd, "AT+DNS=1,%s", s);
gsfan 8:64184a968e3b 243 } else {
gsfan 8:64184a968e3b 244 sprintf(cmd, "AT+DNS=1," CFG_DNSNAME);
gsfan 8:64184a968e3b 245 }
gsfan 8:64184a968e3b 246 } else {
gsfan 8:64184a968e3b 247 sprintf(cmd, "AT+DNS=0");
gsfan 8:64184a968e3b 248 }
gsfan 8:64184a968e3b 249 return sendCommand(cmd);
gsfan 8:64184a968e3b 250 }
gsfan 8:64184a968e3b 251
gsfan 8:64184a968e3b 252 int GSwifi::cmdDNSLOOKUP (const char *s) {
gsfan 8:64184a968e3b 253 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 254 sprintf(cmd, "AT+DNSLOOKUP=%s", s);
gsfan 8:64184a968e3b 255 return sendCommand(cmd, RES_DNSLOOKUP, CFG_TIMEOUT);
gsfan 8:64184a968e3b 256 }
gsfan 8:64184a968e3b 257
gsfan 8:64184a968e3b 258 int GSwifi::cmdDNSSET (const char *s) {
gsfan 8:64184a968e3b 259 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 260 sprintf(cmd, "AT+DNSSET=%s", s);
gsfan 8:64184a968e3b 261 return sendCommand(cmd);
gsfan 8:64184a968e3b 262 }
gsfan 8:64184a968e3b 263
gsfan 8:64184a968e3b 264 int GSwifi::cmdSTORENWCONN () {
gsfan 8:64184a968e3b 265 return sendCommand("AT+STORENWCONN");
gsfan 8:64184a968e3b 266 }
gsfan 8:64184a968e3b 267
gsfan 8:64184a968e3b 268 int GSwifi::cmdRESTORENWCONN () {
gsfan 8:64184a968e3b 269 return sendCommand("AT+RESTORENWCONN");
gsfan 8:64184a968e3b 270 }
gsfan 8:64184a968e3b 271
gsfan 8:64184a968e3b 272 int GSwifi::cmdBDATA (bool n) {
gsfan 8:64184a968e3b 273 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 274 sprintf(cmd, "AT+BDATA=%d", n ? 1 : 0);
gsfan 8:64184a968e3b 275 return sendCommand(cmd);
gsfan 8:64184a968e3b 276 }
gsfan 8:64184a968e3b 277
gsfan 8:64184a968e3b 278 int GSwifi::cmdNCTCP (const char *s, int n) {
gsfan 8:64184a968e3b 279 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 280 sprintf(cmd, "AT+NCTCP=%s,%d", s, n);
gsfan 8:64184a968e3b 281 return sendCommand(cmd, RES_CONNECT, CFG_TIMEOUT);
gsfan 8:64184a968e3b 282 }
gsfan 8:64184a968e3b 283
gsfan 8:64184a968e3b 284 int GSwifi::cmdNCUDP (const char *s, int n, int m) {
gsfan 8:64184a968e3b 285 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 286 if (m) {
gsfan 8:64184a968e3b 287 sprintf(cmd, "AT+NCUDP=%s,%d,%d", s, n, m);
gsfan 8:64184a968e3b 288 } else {
gsfan 8:64184a968e3b 289 sprintf(cmd, "AT+NCUDP=%s,%d", s, n);
gsfan 8:64184a968e3b 290 }
gsfan 8:64184a968e3b 291 return sendCommand(cmd, RES_CONNECT, CFG_TIMEOUT);
gsfan 8:64184a968e3b 292 }
gsfan 8:64184a968e3b 293
gsfan 8:64184a968e3b 294 int GSwifi::cmdNSTCP (int n) {
gsfan 8:64184a968e3b 295 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 296 sprintf(cmd, "AT+NSTCP=%d", n);
gsfan 8:64184a968e3b 297 return sendCommand(cmd, RES_CONNECT);
gsfan 8:64184a968e3b 298 }
gsfan 8:64184a968e3b 299
gsfan 8:64184a968e3b 300 int GSwifi::cmdNSUDP (int n) {
gsfan 8:64184a968e3b 301 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 302 sprintf(cmd, "AT+NSUDP=%d", n);
gsfan 8:64184a968e3b 303 return sendCommand(cmd, RES_CONNECT);
gsfan 8:64184a968e3b 304 }
gsfan 8:64184a968e3b 305
gsfan 8:64184a968e3b 306 int GSwifi::cmdNCLOSE (int n) {
gsfan 8:64184a968e3b 307 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 308 sprintf(cmd, "AT+NCLOSE=%d", n);
gsfan 8:64184a968e3b 309 return sendCommand(cmd, RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 310 }
gsfan 8:64184a968e3b 311
gsfan 8:64184a968e3b 312 int GSwifi::cmdNCLOSEALL () {
gsfan 8:64184a968e3b 313 return sendCommand("AT+NCLOSEALL", RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 314 }
gsfan 8:64184a968e3b 315
gsfan 8:64184a968e3b 316 int GSwifi::cmdHTTPCONF (int n, const char *s) {
gsfan 8:64184a968e3b 317 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 318 sprintf(cmd, "AT+HTTPCONF=%d,%s", n, s);
gsfan 8:64184a968e3b 319 return sendCommand(cmd);
gsfan 8:64184a968e3b 320 }
gsfan 8:64184a968e3b 321
gsfan 8:64184a968e3b 322 int GSwifi::cmdHTTPCONFDEL (int n) {
gsfan 8:64184a968e3b 323 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 324 sprintf(cmd, "AT+HTTPCONFDEL=%d", n);
gsfan 8:64184a968e3b 325 return sendCommand(cmd);
gsfan 8:64184a968e3b 326 }
gsfan 8:64184a968e3b 327
gsfan 8:64184a968e3b 328 int GSwifi::cmdHTTPOPEN (const char *s, int n, bool m) {
gsfan 8:64184a968e3b 329 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 330 if (m) {
gsfan 8:64184a968e3b 331 sprintf(cmd, "AT+HTTPOPEN=%s,%d,1", s, n);
gsfan 8:64184a968e3b 332 } else {
gsfan 8:64184a968e3b 333 sprintf(cmd, "AT+HTTPOPEN=%s,%d", s, n);
gsfan 8:64184a968e3b 334 }
gsfan 8:64184a968e3b 335 return sendCommand(cmd, RES_CONNECT, CFG_TIMEOUT);
gsfan 8:64184a968e3b 336 }
gsfan 8:64184a968e3b 337
gsfan 8:64184a968e3b 338 int GSwifi::cmdHTTPSEND (int n, bool m, const char *s, int t) {
gsfan 8:64184a968e3b 339 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 340 if (m) {
gsfan 8:64184a968e3b 341 sprintf(cmd, "AT+HTTPSEND=%d,3,%d,%s,%d", n, CFG_TIMEOUT / 1000, s, t);
gsfan 8:64184a968e3b 342 } else {
gsfan 8:64184a968e3b 343 sprintf(cmd, "AT+HTTPSEND=%d,1,%d,%s", n, CFG_TIMEOUT / 1000, s);
gsfan 8:64184a968e3b 344 }
gsfan 8:64184a968e3b 345 return sendCommand(cmd, RES_CONNECT, CFG_TIMEOUT);
gsfan 8:64184a968e3b 346 }
gsfan 8:64184a968e3b 347
gsfan 8:64184a968e3b 348 int GSwifi::cmdHTTPCLOSE (int n) {
gsfan 8:64184a968e3b 349 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 350 sprintf(cmd, "AT+HTTPCLOSE=%d", n);
gsfan 8:64184a968e3b 351 return sendCommand(cmd, RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 352 }
gsfan 8:64184a968e3b 353
gsfan 8:64184a968e3b 354 int GSwifi::cmdPSDPSLEEP (int n) {
gsfan 8:64184a968e3b 355 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 356 if (n) {
gsfan 8:64184a968e3b 357 sprintf(cmd, "AT+PSDPSLEEP=%d", n);
gsfan 8:64184a968e3b 358 } else {
gsfan 8:64184a968e3b 359 sprintf(cmd, "AT+PSDPSLEEP");
gsfan 8:64184a968e3b 360 }
gsfan 8:64184a968e3b 361 return sendCommand(cmd);
gsfan 8:64184a968e3b 362 }
gsfan 8:64184a968e3b 363
gsfan 8:64184a968e3b 364 int GSwifi::cmdPSSTBY (int n, int m) {
gsfan 8:64184a968e3b 365 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 366 sprintf(cmd, "AT+PSSTBY=%d,0,%d,%d", n, m, m);
gsfan 8:64184a968e3b 367 return sendCommand(cmd, RES_NULL, 0);
gsfan 8:64184a968e3b 368 }
gsfan 8:64184a968e3b 369
gsfan 8:64184a968e3b 370 int GSwifi::cmdWEBPROV (const char *s, const char *p) {
gsfan 8:64184a968e3b 371 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 372 sprintf(cmd, "AT+WEBPROV=%s,%s", s, p);
gsfan 8:64184a968e3b 373 return sendCommand(cmd);
gsfan 8:64184a968e3b 374 }
gsfan 8:64184a968e3b 375
gsfan 8:64184a968e3b 376 int GSwifi::cmdSETTIME (const char *s, const char *t) {
gsfan 8:64184a968e3b 377 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 378 sprintf(cmd, "AT+SETTIME=%s,%s", s, t);
gsfan 8:64184a968e3b 379 return sendCommand(cmd);
gsfan 8:64184a968e3b 380 }
gsfan 8:64184a968e3b 381
gsfan 8:64184a968e3b 382 int GSwifi::cmdGETTIME () {
gsfan 8:64184a968e3b 383 return sendCommand("AT+GETTIME=?", RES_TIME);
gsfan 8:64184a968e3b 384 }
gsfan 8:64184a968e3b 385
gsfan 8:64184a968e3b 386 int GSwifi::cmdNTIMESYNC (bool n, const char *s, int m) {
gsfan 8:64184a968e3b 387 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 388 if (n) {
gsfan 8:64184a968e3b 389 if (m) {
gsfan 8:64184a968e3b 390 sprintf(cmd, "AT+NTIMESYNC=1,%s,%d,1,%d", s, CFG_TIMEOUT / 1000, m);
gsfan 8:64184a968e3b 391 } else {
gsfan 8:64184a968e3b 392 sprintf(cmd, "AT+NTIMESYNC=1,%s,%d,0", s, CFG_TIMEOUT / 1000);
gsfan 8:64184a968e3b 393 }
gsfan 8:64184a968e3b 394 } else {
gsfan 8:64184a968e3b 395 sprintf(cmd, "AT+NTIMESYNC=0");
gsfan 8:64184a968e3b 396 }
gsfan 8:64184a968e3b 397 return sendCommand(cmd, RES_NULL, CFG_TIMEOUT);
gsfan 8:64184a968e3b 398 }
gsfan 8:64184a968e3b 399
gsfan 8:64184a968e3b 400 int GSwifi::cmdDGPIO (int n, int m) {
gsfan 8:64184a968e3b 401 char cmd[CFG_CMD_SIZE];
gsfan 8:64184a968e3b 402 sprintf(cmd, "AT+DGPIO=%d,%d", n, m);
gsfan 8:64184a968e3b 403 return sendCommand(cmd);
gsfan 8:64184a968e3b 404 }