pefect / Mbed 2 deprecated WizFi310_TCP_Echo_Server_Example

Dependencies:   NetworkSocketAPI WizFi310Interface mbed

Fork of WizFi310_TCP_Echo_Server_Example by WIZnet

Committer:
maru536
Date:
Mon Oct 02 21:29:51 2017 +0000
Revision:
3:4b4eb90875bd
Parent:
2:8d119e9b8f5a
Child:
4:a602935de142
Comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaizen 0:50932ef4b276 1 /* NetworkSocketAPI Example Program
kaizen 0:50932ef4b276 2 * Copyright (c) 2015 ARM Limited
kaizen 0:50932ef4b276 3 *
kaizen 0:50932ef4b276 4 * Licensed under the Apache License, Version 2.0 (the "License");
kaizen 0:50932ef4b276 5 * you may not use this file except in compliance with the License.
kaizen 0:50932ef4b276 6 * You may obtain a copy of the License at
kaizen 0:50932ef4b276 7 *
kaizen 0:50932ef4b276 8 * http://www.apache.org/licenses/LICENSE-2.0
kaizen 0:50932ef4b276 9 *
kaizen 0:50932ef4b276 10 * Unless required by applicable law or agreed to in writing, software
kaizen 0:50932ef4b276 11 * distributed under the License is distributed on an "AS IS" BASIS,
kaizen 0:50932ef4b276 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kaizen 0:50932ef4b276 13 * See the License for the specific language governing permissions and
kaizen 0:50932ef4b276 14 * limitations under the License.
kaizen 0:50932ef4b276 15 */
kaizen 0:50932ef4b276 16
maru536 2:8d119e9b8f5a 17 #include <stdio.h>
maru536 2:8d119e9b8f5a 18 #include <stdlib.h>
kaizen 0:50932ef4b276 19 #include "mbed.h"
maru536 2:8d119e9b8f5a 20 #include "detect.h"
maru536 2:8d119e9b8f5a 21 #include "info.h"
maru536 2:8d119e9b8f5a 22 #include "tts.h"
maru536 2:8d119e9b8f5a 23 #include "push.h"
maru536 2:8d119e9b8f5a 24 #include "setting.h"
kaizen 0:50932ef4b276 25
maru536 3:4b4eb90875bd 26 #define TEST_MODE 0
maru536 3:4b4eb90875bd 27 #define DEMO_MODE 1
maru536 3:4b4eb90875bd 28
maru536 3:4b4eb90875bd 29 #define MODE TEST_MODE
maru536 3:4b4eb90875bd 30
maru536 2:8d119e9b8f5a 31 WizFi310Interface wifiInterface(D1, D0, D7, D6, D8, NC, 115200);
kaizen 0:50932ef4b276 32
kaizen 0:50932ef4b276 33 int main()
kaizen 0:50932ef4b276 34 {
maru536 3:4b4eb90875bd 35 //Start Goout
maru536 3:4b4eb90875bd 36 Serial pc(USBTX, USBRX);
kaizen 0:50932ef4b276 37 pc.baud(115200);
kaizen 0:50932ef4b276 38
maru536 3:4b4eb90875bd 39 //Wifi AP Mode Start
maru536 2:8d119e9b8f5a 40 wifiInterface.connectAP(AP_SSID, AP_PASSWORD, AP_SECURITY);
kaizen 0:50932ef4b276 41
maru536 3:4b4eb90875bd 42 char buf[MAX_BUF_SIZE] = "";
maru536 2:8d119e9b8f5a 43 char id[MAX_ID_SIZE] = "";
maru536 2:8d119e9b8f5a 44 char pwd[MAX_PWD_SIZE] = "";
kaizen 0:50932ef4b276 45
maru536 3:4b4eb90875bd 46 //Wifi AP Mode Server Start
kaizen 0:50932ef4b276 47 TCPServer srv;
kaizen 0:50932ef4b276 48 TCPSocket clt_sock;
kaizen 0:50932ef4b276 49
maru536 3:4b4eb90875bd 50 //Wifi AP Mode Server init
maru536 2:8d119e9b8f5a 51 srv.open(&wifiInterface);
kaizen 0:50932ef4b276 52 srv.set_blocking(true);
maru536 2:8d119e9b8f5a 53 srv.bind(8080);
kaizen 0:50932ef4b276 54 srv.listen();
kaizen 0:50932ef4b276 55 srv.accept(&clt_sock);
kaizen 0:50932ef4b276 56
maru536 3:4b4eb90875bd 57 //Wifi AP Mode Server recv Wifi config info
kaizen 0:50932ef4b276 58 while (true)
kaizen 0:50932ef4b276 59 {
maru536 2:8d119e9b8f5a 60 int n = clt_sock.recv(buf, MAX_BUF_SIZE);
kaizen 0:50932ef4b276 61 if( n < 0 )
kaizen 0:50932ef4b276 62 {
kaizen 0:50932ef4b276 63 clt_sock.close();
kaizen 0:50932ef4b276 64 srv.close();
kaizen 0:50932ef4b276 65 }
kaizen 0:50932ef4b276 66 if( n > 0 )
kaizen 0:50932ef4b276 67 {
maru536 2:8d119e9b8f5a 68 buf[n] = '\0';
maru536 2:8d119e9b8f5a 69 clt_sock.send(buf, n);
maru536 2:8d119e9b8f5a 70 break;
kaizen 0:50932ef4b276 71 }
kaizen 0:50932ef4b276 72 }
maru536 2:8d119e9b8f5a 73
maru536 3:4b4eb90875bd 74 //Wifi AP Mode Server response Wifi config info
maru536 2:8d119e9b8f5a 75 sendMacResponse(wifiInterface, clt_sock);
maru536 2:8d119e9b8f5a 76 processWiFiJson(buf, pwd, id);
maru536 2:8d119e9b8f5a 77
maru536 3:4b4eb90875bd 78 //free wifi AP Server
maru536 2:8d119e9b8f5a 79 clt_sock.close();
maru536 2:8d119e9b8f5a 80 srv.close();
maru536 2:8d119e9b8f5a 81
maru536 3:4b4eb90875bd 82 #if MODE == DEMO_MODE
maru536 3:4b4eb90875bd 83 //Decoder Init
maru536 3:4b4eb90875bd 84 VS1053 player(PA_08, PA_07, PA_06, PA_00, PA_05, PA_01, PA_02); // mosi, miso, sck, cs, bsync, dreq, rst
maru536 3:4b4eb90875bd 85 player.hardwareReset(); //Make a reset to the VS1053 board
maru536 3:4b4eb90875bd 86 player.modeSwitch(); //Patch the VS1054 board to play MP3 files (very important!).
maru536 3:4b4eb90875bd 87 #endif
maru536 3:4b4eb90875bd 88
maru536 3:4b4eb90875bd 89 //Wifi Station(Client) Mode start
maru536 2:8d119e9b8f5a 90 wifiInterface.connect(buf, pwd, STA_SECURITY);
maru536 2:8d119e9b8f5a 91 TCPSocket *socket = new TCPSocket(&wifiInterface);
maru536 2:8d119e9b8f5a 92
maru536 3:4b4eb90875bd 93 #if MODE == DEMO_MODE
maru536 3:4b4eb90875bd 94 //detecting start
maru536 3:4b4eb90875bd 95 detecting(player, socket, buf, id)
maru536 3:4b4eb90875bd 96 #endif
maru536 3:4b4eb90875bd 97
maru536 3:4b4eb90875bd 98 #if MODE == TEST_MODE
maru536 3:4b4eb90875bd 99 //recv tts text
maru536 2:8d119e9b8f5a 100 recvInfo(socket, buf, id);
maru536 3:4b4eb90875bd 101 //recv tts data and play
maru536 2:8d119e9b8f5a 102 playTTS(socket, buf);
maru536 3:4b4eb90875bd 103 //recv android app push notification
maru536 2:8d119e9b8f5a 104 requestNoti(socket, id, buf);
maru536 3:4b4eb90875bd 105 #endif
maru536 2:8d119e9b8f5a 106
maru536 3:4b4eb90875bd 107 //free wifi
maru536 2:8d119e9b8f5a 108 socket->close();
maru536 2:8d119e9b8f5a 109 wifiInterface.disconnect();
maru536 3:4b4eb90875bd 110
maru536 3:4b4eb90875bd 111 #if MODE == DEMO_MODE
maru536 3:4b4eb90875bd 112 //free decoder
maru536 3:4b4eb90875bd 113 player.sendCancel();
maru536 3:4b4eb90875bd 114 player.stop();
maru536 3:4b4eb90875bd 115 #endif
maru536 2:8d119e9b8f5a 116
maru536 2:8d119e9b8f5a 117 printf("D\n");
maru536 2:8d119e9b8f5a 118 delete socket;
kaizen 0:50932ef4b276 119 }