ITEAD STUDIO
/
WeeESP8266_TCPClientMultiple
Program of WeeESP8266 library.
TCPClientMultiple.cpp@0:5da9cbcd3013, 2015-02-07 (annotated)
- Committer:
- itead
- Date:
- Sat Feb 07 10:02:19 2015 +0000
- Revision:
- 0:5da9cbcd3013
First commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
itead | 0:5da9cbcd3013 | 1 | /** |
itead | 0:5da9cbcd3013 | 2 | * @file TCPClientMultiple.cpp |
itead | 0:5da9cbcd3013 | 3 | * @brief The TCPClientMultiple demo of library WeeESP8266. |
itead | 0:5da9cbcd3013 | 4 | * @author Wu Pengfei<pengfei.wu@itead.cc> |
itead | 0:5da9cbcd3013 | 5 | * @date 2015.02 |
itead | 0:5da9cbcd3013 | 6 | * |
itead | 0:5da9cbcd3013 | 7 | * @par Copyright: |
itead | 0:5da9cbcd3013 | 8 | * Copyright (c) 2015 ITEAD Intelligent Systems Co., Ltd. \n\n |
itead | 0:5da9cbcd3013 | 9 | * This program is free software; you can redistribute it and/or |
itead | 0:5da9cbcd3013 | 10 | * modify it under the terms of the GNU General Public License as |
itead | 0:5da9cbcd3013 | 11 | * published by the Free Software Foundation; either version 2 of |
itead | 0:5da9cbcd3013 | 12 | * the License, or (at your option) any later version. \n\n |
itead | 0:5da9cbcd3013 | 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
itead | 0:5da9cbcd3013 | 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
itead | 0:5da9cbcd3013 | 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
itead | 0:5da9cbcd3013 | 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
itead | 0:5da9cbcd3013 | 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
itead | 0:5da9cbcd3013 | 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
itead | 0:5da9cbcd3013 | 19 | * THE SOFTWARE. |
itead | 0:5da9cbcd3013 | 20 | */ |
itead | 0:5da9cbcd3013 | 21 | #include "mbed.h" |
itead | 0:5da9cbcd3013 | 22 | #include "ArduinoAPI.h" |
itead | 0:5da9cbcd3013 | 23 | #include "ESP8266.h" |
itead | 0:5da9cbcd3013 | 24 | |
itead | 0:5da9cbcd3013 | 25 | extern void setup(void); |
itead | 0:5da9cbcd3013 | 26 | extern void loop(void); |
itead | 0:5da9cbcd3013 | 27 | |
itead | 0:5da9cbcd3013 | 28 | ArduinoSerial esp_uart(p28, p27); |
itead | 0:5da9cbcd3013 | 29 | ESP8266 wifi(esp_uart); |
itead | 0:5da9cbcd3013 | 30 | Serial pc(USBTX, USBRX); |
itead | 0:5da9cbcd3013 | 31 | |
itead | 0:5da9cbcd3013 | 32 | int main () { |
itead | 0:5da9cbcd3013 | 33 | setup(); |
itead | 0:5da9cbcd3013 | 34 | while(1) { |
itead | 0:5da9cbcd3013 | 35 | loop(); |
itead | 0:5da9cbcd3013 | 36 | } |
itead | 0:5da9cbcd3013 | 37 | } |
itead | 0:5da9cbcd3013 | 38 | |
itead | 0:5da9cbcd3013 | 39 | void setup(void) |
itead | 0:5da9cbcd3013 | 40 | { |
itead | 0:5da9cbcd3013 | 41 | printf("setup begin\r\n"); |
itead | 0:5da9cbcd3013 | 42 | |
itead | 0:5da9cbcd3013 | 43 | printf("FW Version: %s\r\n", wifi.getVersion().c_str()); |
itead | 0:5da9cbcd3013 | 44 | |
itead | 0:5da9cbcd3013 | 45 | if (wifi.setOprToStationSoftAP()) { |
itead | 0:5da9cbcd3013 | 46 | printf("to station + softap ok\r\n"); |
itead | 0:5da9cbcd3013 | 47 | } else { |
itead | 0:5da9cbcd3013 | 48 | printf("to station + softap err\r\n"); |
itead | 0:5da9cbcd3013 | 49 | } |
itead | 0:5da9cbcd3013 | 50 | |
itead | 0:5da9cbcd3013 | 51 | if (wifi.joinAP("ITEAD", "12345678")) { |
itead | 0:5da9cbcd3013 | 52 | printf("Join AP success\r\n"); |
itead | 0:5da9cbcd3013 | 53 | printf("IP: [%s]\r\n", wifi.getLocalIP().c_str()); |
itead | 0:5da9cbcd3013 | 54 | } else { |
itead | 0:5da9cbcd3013 | 55 | printf("Join AP failure\r\n"); |
itead | 0:5da9cbcd3013 | 56 | } |
itead | 0:5da9cbcd3013 | 57 | |
itead | 0:5da9cbcd3013 | 58 | if (wifi.enableMUX()) { |
itead | 0:5da9cbcd3013 | 59 | printf("multiple ok\r\n"); |
itead | 0:5da9cbcd3013 | 60 | } else { |
itead | 0:5da9cbcd3013 | 61 | printf("multiple err\r\n"); |
itead | 0:5da9cbcd3013 | 62 | } |
itead | 0:5da9cbcd3013 | 63 | |
itead | 0:5da9cbcd3013 | 64 | printf("setup end\r\n"); |
itead | 0:5da9cbcd3013 | 65 | } |
itead | 0:5da9cbcd3013 | 66 | |
itead | 0:5da9cbcd3013 | 67 | void loop(void) |
itead | 0:5da9cbcd3013 | 68 | { |
itead | 0:5da9cbcd3013 | 69 | uint8_t buffer[1024] = {0}; |
itead | 0:5da9cbcd3013 | 70 | static uint8_t mux_id = 0; |
itead | 0:5da9cbcd3013 | 71 | |
itead | 0:5da9cbcd3013 | 72 | if (wifi.createTCP(mux_id, "172.16.5.12", 8090)) { |
itead | 0:5da9cbcd3013 | 73 | printf("create tcp %u ok\r\n", mux_id); |
itead | 0:5da9cbcd3013 | 74 | } else { |
itead | 0:5da9cbcd3013 | 75 | printf("create tcp %u err\r\n", mux_id); |
itead | 0:5da9cbcd3013 | 76 | } |
itead | 0:5da9cbcd3013 | 77 | |
itead | 0:5da9cbcd3013 | 78 | char *hello = "Hello, this is client!"; |
itead | 0:5da9cbcd3013 | 79 | wifi.send(mux_id, (const uint8_t*)hello, strlen(hello)); |
itead | 0:5da9cbcd3013 | 80 | |
itead | 0:5da9cbcd3013 | 81 | uint32_t len = wifi.recv(mux_id, buffer, sizeof(buffer), 10000); |
itead | 0:5da9cbcd3013 | 82 | if (len > 0) { |
itead | 0:5da9cbcd3013 | 83 | printf("Received:["); |
itead | 0:5da9cbcd3013 | 84 | for(uint32_t i = 0; i < len; i++) { |
itead | 0:5da9cbcd3013 | 85 | printf("%c", buffer[i]); |
itead | 0:5da9cbcd3013 | 86 | } |
itead | 0:5da9cbcd3013 | 87 | printf("]\r\n"); |
itead | 0:5da9cbcd3013 | 88 | } |
itead | 0:5da9cbcd3013 | 89 | |
itead | 0:5da9cbcd3013 | 90 | if (wifi.releaseTCP(mux_id)) { |
itead | 0:5da9cbcd3013 | 91 | printf("release tcp %u ok\r\n", mux_id); |
itead | 0:5da9cbcd3013 | 92 | } else { |
itead | 0:5da9cbcd3013 | 93 | printf("release tcp %u err\r\n", mux_id); |
itead | 0:5da9cbcd3013 | 94 | } |
itead | 0:5da9cbcd3013 | 95 | delay(5000); |
itead | 0:5da9cbcd3013 | 96 | mux_id++; |
itead | 0:5da9cbcd3013 | 97 | if (mux_id >= 5) { |
itead | 0:5da9cbcd3013 | 98 | mux_id = 0; |
itead | 0:5da9cbcd3013 | 99 | } |
itead | 0:5da9cbcd3013 | 100 | } |