Changeset 189 for rtos_arduino
- Timestamp:
- Mar 30, 2016, 8:40:35 AM (8 years ago)
- Location:
- rtos_arduino/trunk/arduino_lib/libraries
- Files:
-
- 68 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
rtos_arduino/trunk/arduino_lib/libraries/ESP8266_Arudino_AT/Client_ESP8266.h
r187 r189 20 20 21 21 #include "ESP8266.h" 22 #include "IPAddress.h" 23 #include "Client.h" 22 24 23 25 class ESP8266Client: public Client, public ESP8266 { … … 32 34 */ 33 35 int connect(IPAddress ip, uint16_t port) { 36 if (isConnected()) return 1; 34 37 String ip_str; 35 38 ip_str.concat(ip[0]); ip_str.concat("."); … … 41 44 42 45 int connect(const char *host, uint16_t port) { 46 if (isConnected()) return 1; 43 47 String ip_str(host); 44 48 return (createTCP(ip_str, port))? 1 : 0; … … 51 55 return 0; 52 56 }; 53 57 54 58 size_t write(const uint8_t *buf, size_t size){ 55 59 if(send(buf, size)){ … … 80 84 81 85 void flush(){}; 82 void stop(){ releaseTCP();};86 void stop(){ if (isConnected()) { releaseTCP(); }} 83 87 uint8_t connected(){return (isConnected())? 1 : 0;}; 84 88 operator bool(){return isConnected();}; -
rtos_arduino/trunk/arduino_lib/libraries/ESP8266_Arudino_AT/ESP8266.cpp
r177 r189 31 31 #ifdef TOPPERS_WITH_ARDUINO 32 32 #define WAIT_TIMEOUT delay(1); 33 #define ENTER_CRITICAL 34 #define LEAVE_CRITICAL 35 #else /* !TOPPERS_WITH_ARDUINO */ 36 #define WAIT_TIMEOUT 37 #define ENTER_CRITICAL 38 #define LEAVE_CRITICAL 39 #endif /* TOPPERS_WITH_ARDUINO */ 40 41 42 #ifdef TOPPERS_WITH_ARDUINO 43 #define WAIT_TIMEOUT delay(1); 33 44 #else /* !TOPPERS_WITH_ARDUINO */ 34 45 #define WAIT_TIMEOUT … … 98 109 } 99 110 100 101 111 uint32_t ESP8266_RingBuffer::copy(uint8_t *pdata, uint32_t size) 102 112 { … … 143 153 { 144 154 String version; 145 155 int ret = 0; 156 157 ENTER_CRITICAL; 146 158 m_puart = &uart; 147 159 m_baud = baud; … … 150 162 rx_empty(); 151 163 152 if (!kick()) { 153 return 1; 154 } 155 156 eATGMR(version); 157 if(version.indexOf(ESP8266_SUPPORT_VERSION) == -1) { 158 return 2; 159 } 160 161 return 0; 164 if (eAT()) { 165 eATGMR(version); 166 if(version.indexOf(ESP8266_SUPPORT_VERSION) == -1) { 167 ret = 2; 168 } 169 } 170 else { 171 ret = 1; 172 } 173 LEAVE_CRITICAL; 174 175 return ret; 162 176 } 163 177 164 178 bool ESP8266::kick(void) 165 179 { 166 return eAT(); 167 } 168 169 bool ESP8266::restart(void) 180 bool ret; 181 182 ENTER_CRITICAL; 183 ret = eAT(); 184 LEAVE_CRITICAL; 185 186 return ret; 187 } 188 189 bool ESP8266::_restart(void) 170 190 { 171 191 unsigned long start; 192 bool ret = false; 193 172 194 initialize_status(); 173 195 if (eATRST()) { … … 179 201 if (eAT()) { 180 202 delay(1500); /* Waiting for stable */ 181 ret urntrue;203 ret = true; 182 204 } 183 205 delay(100); 184 206 } 185 207 } 186 return false; 208 209 return ret; 210 } 211 212 bool ESP8266::restart(void) 213 { 214 bool ret; 215 216 ENTER_CRITICAL; 217 ret = _restart(); 218 LEAVE_CRITICAL; 219 220 return ret; 187 221 } 188 222 … … 190 224 { 191 225 String version; 226 227 ENTER_CRITICAL; 192 228 eATGMR(version); 229 LEAVE_CRITICAL; 230 193 231 return version; 194 232 } … … 197 235 { 198 236 uint8_t mode; 199 if (!qATCWMODE_CUR(&mode)) { 200 return false; 201 } 202 if (mode == ESP8266_WMODE_STATION) { 203 return true; 204 } else { 205 if (sATCWMODE_CUR(ESP8266_WMODE_STATION) && restart()) { 206 return true; 237 bool ret = false; 238 239 ENTER_CRITICAL; 240 if (qATCWMODE_CUR(&mode)) { 241 if (mode == ESP8266_WMODE_STATION) { 242 ret = true; 207 243 } else { 208 return false; 209 } 210 } 244 if (sATCWMODE_CUR(ESP8266_WMODE_STATION) && _restart()) { 245 ret = true; 246 } 247 } 248 } 249 LEAVE_CRITICAL; 250 251 return ret; 211 252 } 212 253 … … 214 255 { 215 256 uint8_t mode; 216 if (!qATCWMODE_CUR(&mode)) { 217 return false; 218 } 219 if (mode == ESP8266_WMODE_SOFTAP) { 220 return true; 221 } else { 222 if (sATCWMODE_CUR(ESP8266_WMODE_SOFTAP) && restart()) { 223 return true; 257 bool ret = false; 258 259 ENTER_CRITICAL; 260 if (qATCWMODE_CUR(&mode)) { 261 if (mode == ESP8266_WMODE_SOFTAP) { 262 ret = true; 224 263 } else { 225 return false; 226 } 227 } 264 if (sATCWMODE_CUR(ESP8266_WMODE_SOFTAP) && _restart()) { 265 ret = true; 266 } 267 } 268 } 269 LEAVE_CRITICAL; 270 271 return ret; 228 272 } 229 273 … … 231 275 { 232 276 uint8_t mode; 233 if (!qATCWMODE_CUR(&mode)) { 234 return false; 235 } 236 if (mode == ESP8266_WMODE_AP_STATION) { 237 return true; 238 } else { 239 if (sATCWMODE_CUR(ESP8266_WMODE_AP_STATION) && restart()) { 240 return true; 277 bool ret = false; 278 279 ENTER_CRITICAL; 280 if (qATCWMODE_CUR(&mode)) { 281 if (mode == ESP8266_WMODE_AP_STATION) { 282 ret = true; 241 283 } else { 242 return false; 243 } 244 } 284 if (sATCWMODE_CUR(ESP8266_WMODE_AP_STATION) && restart()) { 285 ret = true; 286 } 287 } 288 } 289 LEAVE_CRITICAL; 290 291 return ret; 245 292 } 246 293 … … 248 295 { 249 296 String list; 297 298 ENTER_CRITICAL; 250 299 eATCWLAP(list); 300 LEAVE_CRITICAL; 301 251 302 return list; 252 303 } … … 254 305 bool ESP8266::joinAP(String ssid, String pwd) 255 306 { 256 return sATCWJAP_CUR(ssid, pwd); 307 bool ret; 308 309 ENTER_CRITICAL; 310 ret = sATCWJAP_CUR(ssid, pwd); 311 LEAVE_CRITICAL; 312 313 return ret; 257 314 } 258 315 259 316 bool ESP8266::leaveAP(void) 260 317 { 261 return eATCWQAP(); 318 bool ret; 319 320 ENTER_CRITICAL; 321 ret = eATCWQAP(); 322 LEAVE_CRITICAL; 323 324 return ret; 262 325 } 263 326 264 327 bool ESP8266::setSoftAPParam(String ssid, String pwd, uint8_t chl, uint8_t ecn) 265 328 { 266 return sATCWSAP_CUR(ssid, pwd, chl, ecn); 329 bool ret; 330 331 ENTER_CRITICAL; 332 ret = sATCWSAP_CUR(ssid, pwd, chl, ecn); 333 LEAVE_CRITICAL; 334 335 return ret; 267 336 } 268 337 … … 270 339 { 271 340 String list; 341 342 ENTER_CRITICAL; 272 343 eATCWLIF(list); 344 LEAVE_CRITICAL; 345 273 346 return list; 274 347 } … … 277 350 { 278 351 String list; 352 353 ENTER_CRITICAL; 279 354 eATCIPSTATUS(list); 355 LEAVE_CRITICAL; 356 280 357 return list; 281 358 } … … 283 360 String ESP8266::getLocalIP(void) 284 361 { 285 String list ;362 String list = ""; 286 363 int32_t index_start = -1; 287 364 int32_t index_end = -1; 288 365 366 ENTER_CRITICAL; 289 367 eATCIFSR(list); 290 368 index_start = list.indexOf('\"'); 291 369 index_end = list.indexOf('\"', list.indexOf('\"')+1); 292 370 if ((index_start != -1) && (index_end != -1)) { 293 return list.substring(index_start+1, index_end); 294 } 295 return ""; 371 list = list.substring(index_start+1, index_end); 372 } 373 LEAVE_CRITICAL; 374 375 return list; 296 376 } 297 377 298 378 bool ESP8266::enableMUX(void) 299 379 { 380 bool ret = false; 381 382 ENTER_CRITICAL; 300 383 if (sATCIPMUX(1)) { 301 384 mux_mode = true; 302 return true; 303 } 304 return false; 385 ret = true; 386 } 387 LEAVE_CRITICAL; 388 389 return ret; 305 390 } 306 391 307 392 bool ESP8266::disableMUX(void) 308 393 { 394 bool ret = false; 395 396 ENTER_CRITICAL; 309 397 if (sATCIPMUX(0)){ 310 398 mux_mode = false; 311 return true; 312 } 313 return false; 399 ret = true; 400 } 401 LEAVE_CRITICAL; 402 403 return ret; 314 404 } 315 405 316 406 bool ESP8266::createTCP(String addr, uint32_t port) 317 407 { 318 bool ret ;408 bool ret = false; 319 409 if (mux_mode) return false; 320 410 411 ENTER_CRITICAL; 321 412 if((ret = sATCIPSTARTSingle("TCP", addr, port))) { 322 413 connection_bitmap = 1; 323 414 } 415 LEAVE_CRITICAL; 416 324 417 return ret; 325 418 } … … 327 420 bool ESP8266::releaseTCP(void) 328 421 { 329 bool ret; 330 331 if (mux_mode) return false; 422 bool ret = false; 423 if (mux_mode) return false; 424 425 ENTER_CRITICAL; 332 426 if((ret = eATCIPCLOSESingle())) { 333 427 connection_bitmap = 0; 334 428 rx_buffer[MUXID_SINGLE].free(); 335 429 } 430 LEAVE_CRITICAL; 431 336 432 return ret; 337 433 } … … 339 435 bool ESP8266::registerUDP(String addr, uint32_t port) 340 436 { 341 bool ret ;437 bool ret = false; 342 438 if (mux_mode) return false; 439 440 ENTER_CRITICAL; 343 441 if((ret = sATCIPSTARTSingle("UDP", addr, port))) { 344 442 connection_bitmap = 1; 345 } 443 } 444 LEAVE_CRITICAL; 445 346 446 return ret; 347 447 } … … 349 449 bool ESP8266::unregisterUDP(void) 350 450 { 351 bool ret ;451 bool ret = false; 352 452 if (mux_mode) return false; 453 454 ENTER_CRITICAL; 353 455 if((ret = eATCIPCLOSESingle())) { 354 456 connection_bitmap = 0; 355 457 rx_buffer[MUXID_SINGLE].free(); 356 } 458 } 459 LEAVE_CRITICAL; 460 357 461 return ret; 358 462 } … … 360 464 bool ESP8266::createTCP(uint8_t mux_id, String addr, uint32_t port) 361 465 { 362 bool ret ;466 bool ret = false; 363 467 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 364 468 if (!mux_mode) return false; 365 469 470 ENTER_CRITICAL; 366 471 if((ret = sATCIPSTARTMultiple(mux_id, "TCP", addr, port))) { 367 472 connection_bitmap |= 1 << mux_id; 368 473 } 474 LEAVE_CRITICAL; 475 369 476 return ret; 370 477 } … … 375 482 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 376 483 if (!mux_mode) return false; 377 484 485 ENTER_CRITICAL; 378 486 if ((ret = sATCIPCLOSEMulitple(mux_id))) { 379 487 connection_bitmap &= ~(1 << mux_id); 380 488 rx_buffer[mux_id].free(); 381 489 } 490 LEAVE_CRITICAL; 491 382 492 return ret; 383 493 } … … 388 498 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 389 499 if (!mux_mode) return false; 390 500 501 ENTER_CRITICAL; 391 502 if ((ret = sATCIPSTARTMultiple(mux_id, "UDP", addr, port))) { 392 503 connection_bitmap |= 1 << mux_id; 393 504 } 505 LEAVE_CRITICAL; 506 394 507 return ret; 395 508 } … … 400 513 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 401 514 if (!mux_mode) return false; 402 515 516 ENTER_CRITICAL; 403 517 if ((ret = sATCIPCLOSEMulitple(mux_id))) { 404 518 connection_bitmap &= ~(1 << mux_id); 405 519 rx_buffer[mux_id].free(); 406 520 } 521 LEAVE_CRITICAL; 522 407 523 return ret; 408 524 } … … 410 526 bool ESP8266::setTCPServerTimeout(uint32_t timeout) 411 527 { 528 bool ret; 412 529 if (!mux_mode) return false; 413 return sATCIPSTO(timeout); 530 531 ENTER_CRITICAL; 532 ret = sATCIPSTO(timeout); 533 LEAVE_CRITICAL; 534 535 return ret; 414 536 } 415 537 416 538 bool ESP8266::startTCPServer(uint32_t port) 417 539 { 540 bool ret = false; 418 541 if (!mux_mode) return false; 419 if (sATCIPSERVER(1, port)) { 420 return true; 421 } 422 return false; 542 543 ENTER_CRITICAL; 544 ret = sATCIPSERVER(1, port); 545 LEAVE_CRITICAL; 546 547 return ret; 423 548 } 424 549 425 550 bool ESP8266::stopTCPServer(void) 426 551 { 427 sATCIPSERVER(0); 428 return false; 552 bool ret = false; 553 554 ENTER_CRITICAL; 555 ret = sATCIPSERVER(0); 556 LEAVE_CRITICAL; 557 558 return ret; 429 559 } 430 560 431 561 bool ESP8266::startServer(uint32_t port) 432 562 { 433 if (!mux_mode) return false; 434 return startTCPServer(port); 563 bool ret = false; 564 if (!mux_mode) return false; 565 566 ENTER_CRITICAL; 567 ret = startTCPServer(port); 568 LEAVE_CRITICAL; 569 570 return ret; 435 571 } 436 572 437 573 bool ESP8266::stopServer(void) 438 574 { 439 return stopTCPServer(); 575 bool ret; 576 577 ENTER_CRITICAL; 578 ret = stopTCPServer(); 579 LEAVE_CRITICAL; 580 581 return ret; 440 582 } 441 583 442 584 bool ESP8266::send(const uint8_t *buffer, uint32_t len) 443 585 { 586 bool ret; 587 if (mux_mode) return false; 588 589 ENTER_CRITICAL; 590 ret = sATCIPSENDSingle(buffer, len); 591 LEAVE_CRITICAL; 592 593 return ret; 594 } 595 596 bool ESP8266::send(uint8_t mux_id, const uint8_t *buffer, uint32_t len) 597 { 598 bool ret; 599 if (!mux_mode) return false; 600 601 ENTER_CRITICAL; 602 ret = sATCIPSENDMultiple(mux_id, buffer, len); 603 LEAVE_CRITICAL; 604 605 return ret; 606 } 607 608 bool ESP8266::send(String &str) 609 { 610 bool ret; 444 611 if (mux_mode) return 0; 445 return sATCIPSENDSingle(buffer, len); 446 } 447 448 bool ESP8266::send(uint8_t mux_id, const uint8_t *buffer, uint32_t len) 449 { 450 if (!mux_mode) return false; 451 return sATCIPSENDMultiple(mux_id, buffer, len); 452 } 453 454 bool ESP8266::send(String &str) 455 { 456 if (mux_mode) return 0; 457 return sATCIPSENDSingle(str); 612 613 ENTER_CRITICAL; 614 ret = sATCIPSENDSingle(str); 615 LEAVE_CRITICAL; 616 617 return ret; 458 618 } 459 619 460 620 bool ESP8266::send(uint8_t mux_id, String &str) 461 621 { 622 bool ret; 462 623 if (!mux_mode) return false; 463 624 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 464 465 return sATCIPSENDMultiple(mux_id, str); 625 626 ENTER_CRITICAL; 627 ret = sATCIPSENDMultiple(mux_id, str); 628 LEAVE_CRITICAL; 629 630 return ret; 466 631 } 467 632 468 633 uint32_t ESP8266::recv(uint8_t *buffer, uint32_t buffer_size, uint32_t timeout) 469 634 { 635 uint32_t ret; 470 636 if (mux_mode) return 0; 471 return recvPkg(buffer, buffer_size, timeout, 0, NULL); 637 638 ENTER_CRITICAL; 639 ret = recvPkg(buffer, buffer_size, timeout, 0, NULL); 640 LEAVE_CRITICAL; 641 642 return ret; 472 643 } 473 644 474 645 uint32_t ESP8266::recv(uint8_t mux_id, uint8_t *buffer, uint32_t buffer_size, uint32_t timeout) 475 646 { 647 uint32_t ret; 476 648 if (!mux_mode) return false; 477 649 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 478 479 return recvPkg(buffer, buffer_size, timeout, mux_id, NULL); 650 651 ENTER_CRITICAL; 652 ret = recvPkg(buffer, buffer_size, timeout, mux_id, NULL); 653 LEAVE_CRITICAL; 654 655 return ret; 480 656 } 481 657 482 658 uint32_t ESP8266::recv(uint8_t *coming_mux_id, uint8_t *buffer, uint32_t buffer_size, uint32_t timeout) 483 659 { 660 uint32_t ret; 484 661 if (!mux_mode) return false; 485 return recvPkg(buffer, buffer_size, timeout, MUXID_ANY, coming_mux_id); 662 663 ENTER_CRITICAL; 664 ret = recvPkg(buffer, buffer_size, timeout, MUXID_ANY, coming_mux_id); 665 LEAVE_CRITICAL; 666 667 return ret; 486 668 } 487 669 488 670 bool ESP8266::isDataAvailable(uint8_t mux_id) 489 671 { 672 bool ret; 490 673 if (!mux_mode) return false; 491 674 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 492 675 493 if(rx_buffer[mux_id].length() > 0) return true; 494 rx_update(); 495 if(rx_buffer[mux_id].length() > 0) return true; 496 return 0; 676 ENTER_CRITICAL; 677 if(rx_buffer[mux_id].length() > 0) ret = true; 678 if (ret == false) { 679 rx_update(); 680 if(rx_buffer[mux_id].length() > 0) ret = true; 681 } 682 LEAVE_CRITICAL; 683 684 return ret; 497 685 } 498 686 499 687 bool ESP8266::isDataAvailable(void) 500 688 { 689 bool ret = false; 690 691 ENTER_CRITICAL; 501 692 if (mux_mode) { 502 693 for(int i = 0; i < ESP8266_NUM_CONNECTION; i++){ 503 if(rx_buffer[i].length() > 0) return true; 504 } 505 rx_update(); 506 for(int i = 0; i < ESP8266_NUM_CONNECTION; i++){ 507 if(rx_buffer[i].length() > 0) return true; 694 if(rx_buffer[i].length() > 0) ret = true; 695 } 696 if (ret == false) { 697 rx_update(); 698 for(int i = 0; i < ESP8266_NUM_CONNECTION; i++){ 699 if(rx_buffer[i].length() > 0) ret = true; 700 } 508 701 } 509 702 } 510 703 else { 511 704 /* single mode */ 512 if(rx_buffer[0].length() > 0) return true; 513 rx_update(); 514 if(rx_buffer[0].length() > 0) return true; 515 } 516 return false; 705 if(rx_buffer[0].length() > 0) ret = true; 706 if (ret == false) { 707 rx_update(); 708 if(rx_buffer[0].length() > 0) ret = true; 709 } 710 } 711 LEAVE_CRITICAL; 712 713 return ret; 517 714 } 518 715 519 716 bool ESP8266::isConnected(void) 520 717 { 521 if (mux_mode) return false; 522 rx_update(); 523 return (connection_bitmap == 1); 718 bool ret; 719 if (mux_mode) return false; 720 721 ENTER_CRITICAL; 722 rx_update(); 723 ret = (connection_bitmap == 1); 724 LEAVE_CRITICAL; 725 726 return ret; 524 727 } 525 728 526 729 bool ESP8266::isConnected(uint8_t mux_id) 527 730 { 731 bool ret; 528 732 if (!mux_mode) return false; 529 733 if (!(mux_id < ESP8266_NUM_CONNECTION)) return false; 530 rx_update(); 531 return ((connection_bitmap & (1<<mux_id)) != 0); 734 735 ENTER_CRITICAL; 736 rx_update(); 737 ret = ((connection_bitmap & (1<<mux_id)) != 0); 738 LEAVE_CRITICAL; 739 740 return ret; 532 741 } 533 742 534 743 bool ESP8266::getMuxCStatus(uint8_t *mux_id_ptn) 535 744 { 536 if (!mux_mode) return false; 745 if (!mux_mode) return false; 746 747 ENTER_CRITICAL; 537 748 rx_update(); 538 749 *mux_id_ptn = connection_bitmap; 750 LEAVE_CRITICAL; 751 539 752 return true; 540 753 } … … 582 795 if (rx_cmd.indexOf("+IPD,") != -1) { 583 796 if((ret = recvIPD(timeout - (millis() - start), buffer, buffer_size, 584 mux_id, coming_mux_id)) >0) {797 mux_id, coming_mux_id)) != 0) { 585 798 rx_cmd = ""; 586 799 return ret; … … 614 827 uint32_t i; 615 828 ESP8266_RingBuffer *p_rx_buffer; 616 829 617 830 start = millis(); 618 831 while (millis() - start < timeout) { … … 665 878 } 666 879 WAIT_TIMEOUT 667 } 668 return 0;880 } 881 return i; 669 882 } 670 883 else { … … 691 904 WAIT_TIMEOUT; 692 905 } 693 } 906 } 907 return i; 694 908 } 695 909 … … 710 924 711 925 if (rx_cmd.indexOf("+IPD,") != -1) { 712 if(recvIPD(timeout) >0) {926 if(recvIPD(timeout) != 0) { 713 927 rx_cmd = ""; 714 928 } … … 755 969 unsigned long start = millis(); 756 970 while (millis() - start < timeout) { 757 while (m_puart->available() > 0) { 971 while (m_puart->available() > 0) { 758 972 a = m_puart->read(); 759 973 rx_cmd += a; … … 800 1014 bool ESP8266::eAT(void) 801 1015 { 1016 rx_update(); 802 1017 m_puart->println("AT"); 803 1018 return recvFind("OK"); … … 806 1021 bool ESP8266::eATRST(void) 807 1022 { 1023 rx_update(); 808 1024 m_puart->println("AT+RST"); 809 1025 return recvFind("OK"); … … 812 1028 bool ESP8266::eATGMR(String &version) 813 1029 { 1030 rx_update(); 814 1031 m_puart->println("AT+GMR"); 815 1032 return recvFindAndFilter("OK", "\r\r\n", "\r\nOK", version); … … 823 1040 return false; 824 1041 } 1042 rx_update(); 825 1043 m_puart->println("AT+CWMODE_CUR?"); 826 1044 ret = recvFindAndFilter("OK", "+CWMODE_CUR:", "\r\n\r\nOK", str_mode); … … 836 1054 { 837 1055 int ret; 838 1056 1057 rx_update(); 839 1058 m_puart->print("AT+CWMODE_CUR="); 840 1059 m_puart->println(mode); … … 849 1068 int ret; 850 1069 851 m_puart->print("AT+CWJAP=\""); 1070 rx_update(); 1071 m_puart->print("AT+CWJAP_CUR=\""); 852 1072 m_puart->print(ssid); 853 1073 m_puart->print("\",\""); … … 862 1082 bool ESP8266::eATCWLAP(String &list) 863 1083 { 1084 rx_update(); 864 1085 m_puart->println("AT+CWLAP"); 865 1086 return recvFindAndFilter("OK", "\r\r\n", "\r\n\r\nOK", list, 10000); … … 868 1089 bool ESP8266::eATCWQAP(void) 869 1090 { 1091 rx_update(); 870 1092 m_puart->println("AT+CWQAP"); 871 1093 return recvFind("OK"); … … 876 1098 int ret; 877 1099 1100 rx_update(); 878 1101 m_puart->print("AT+CWSAP_CUR=\""); 879 1102 m_puart->print(ssid); … … 892 1115 bool ESP8266::eATCWLIF(String &list) 893 1116 { 1117 rx_update(); 894 1118 m_puart->println("AT+CWLIF"); 895 1119 return recvFindAndFilter("OK", "\r\r\n", "\r\n\r\nOK", list); … … 898 1122 bool ESP8266::eATCIPSTATUS(String &list) 899 1123 { 1124 rx_update(); 900 1125 m_puart->println("AT+CIPSTATUS"); 901 1126 return recvFindAndFilter("OK", "\r\r\n", "\r\n\r\nOK", list); … … 905 1130 { 906 1131 int ret; 907 1132 1133 rx_update(); 908 1134 m_puart->print("AT+CIPSTART=\""); 909 1135 m_puart->print(type); … … 921 1147 { 922 1148 int ret; 923 1149 1150 rx_update(); 924 1151 m_puart->print("AT+CIPSTART="); 925 1152 m_puart->print(mux_id); … … 938 1165 bool ESP8266::sATCIPSENDSingle(const uint8_t *buffer, uint32_t len) 939 1166 { 1167 bool ret; 1168 rx_update(); 940 1169 m_puart->print("AT+CIPSEND="); 941 1170 m_puart->println(len); … … 944 1173 m_puart->write(buffer[i]); 945 1174 } 946 return recvFind("SEND OK", 10000); 947 } 1175 ret = recvFind("SEND OK", 10000); 1176 return ret; 1177 } 1178 948 1179 return false; 949 1180 } … … 951 1182 bool ESP8266::sATCIPSENDMultiple(uint8_t mux_id, const uint8_t *buffer, uint32_t len) 952 1183 { 1184 rx_update(); 953 1185 m_puart->print("AT+CIPSEND="); 954 1186 m_puart->print(mux_id); … … 966 1198 bool ESP8266::sATCIPSENDSingle(String &str) 967 1199 { 1200 rx_update(); 968 1201 m_puart->print("AT+CIPSEND="); 969 1202 m_puart->println(str.length()); … … 979 1212 bool ESP8266::sATCIPSENDMultiple(uint8_t mux_id, String &str) 980 1213 { 1214 rx_update(); 981 1215 m_puart->print("AT+CIPSEND="); 982 1216 m_puart->print(mux_id); … … 996 1230 int ret; 997 1231 1232 rx_update(); 998 1233 m_puart->print("AT+CIPCLOSE="); 999 1234 m_puart->println(mux_id); … … 1006 1241 bool ESP8266::eATCIPCLOSESingle(void) 1007 1242 { 1243 int ret; 1244 1245 Serial.println(rx_cmd); 1246 rx_update(); 1008 1247 m_puart->println("AT+CIPCLOSE"); 1009 return recvFind("OK", 5000); 1248 ret = recvString("OK", "ERROR", "", 5000); 1249 if (ret != -1) rx_cmd = ""; 1250 return ((ret == 1) || (ret == 2)); 1010 1251 } 1011 1252 1012 1253 bool ESP8266::eATCIFSR(String &list) 1013 1254 { 1255 rx_update(); 1014 1256 m_puart->println("AT+CIFSR"); 1015 1257 return recvFindAndFilter("OK", "\r\r\n", "\r\n\r\nOK", list); … … 1019 1261 { 1020 1262 int ret; 1021 1263 1264 rx_update(); 1022 1265 m_puart->print("AT+CIPMUX="); 1023 1266 m_puart->println(mode); … … 1033 1276 1034 1277 if (mode) { 1278 rx_update(); 1035 1279 m_puart->print("AT+CIPSERVER=1,"); 1036 1280 m_puart->println(port); … … 1039 1283 return (ret == 1); 1040 1284 } else { 1285 rx_update(); 1041 1286 m_puart->println("AT+CIPSERVER=0"); 1042 1287 ret = recvString("OK", "ERROR", ""); … … 1047 1292 bool ESP8266::sATCIPSTO(uint32_t timeout) 1048 1293 { 1294 rx_update(); 1049 1295 m_puart->print("AT+CIPSTO="); 1050 1296 m_puart->println(timeout); -
rtos_arduino/trunk/arduino_lib/libraries/ESP8266_Arudino_AT/ESP8266.h
r183 r189 59 59 }; 60 60 61 #define ESP8266_RINGBUFFER_SIZE 51261 #define ESP8266_RINGBUFFER_SIZE 1024 62 62 63 63 class ESP8266_RingBuffer … … 559 559 560 560 void recvAsyncdata(uint32_t timeout = 0); 561 562 /** 563 * Restart ESP8266 by "AT+RST". 564 * 565 * This method will take 3 seconds or more. 566 * 567 * @retval true - success. 568 * @retval false - failure. 569 */ 570 bool _restart(void); 561 571 562 572 #ifdef ESP8266_USE_SOFTWARE_SERIAL
Note:
See TracChangeset
for help on using the changeset viewer.