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:49:51 2017 +0000
Revision:
4:a602935de142
Parent:
3:4b4eb90875bd
Child:
5:e313e52adcaf
LED

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);
maru536 4:a602935de142 32 ShiftRegisterControlClass m_register(PC_10, PC_11, PC_12);
kaizen 0:50932ef4b276 33
kaizen 0:50932ef4b276 34 int main()
kaizen 0:50932ef4b276 35 {
maru536 3:4b4eb90875bd 36 //Start Goout
maru536 3:4b4eb90875bd 37 Serial pc(USBTX, USBRX);
kaizen 0:50932ef4b276 38 pc.baud(115200);
kaizen 0:50932ef4b276 39
maru536 4:a602935de142 40 m_register.BlinkLed()
maru536 4:a602935de142 41 m_register.TurnOnLed(m_register.kPowerLedByte);
maru536 4:a602935de142 42
maru536 3:4b4eb90875bd 43 //Wifi AP Mode Start
maru536 2:8d119e9b8f5a 44 wifiInterface.connectAP(AP_SSID, AP_PASSWORD, AP_SECURITY);
kaizen 0:50932ef4b276 45
maru536 3:4b4eb90875bd 46 char buf[MAX_BUF_SIZE] = "";
maru536 2:8d119e9b8f5a 47 char id[MAX_ID_SIZE] = "";
maru536 2:8d119e9b8f5a 48 char pwd[MAX_PWD_SIZE] = "";
kaizen 0:50932ef4b276 49
maru536 3:4b4eb90875bd 50 //Wifi AP Mode Server Start
kaizen 0:50932ef4b276 51 TCPServer srv;
kaizen 0:50932ef4b276 52 TCPSocket clt_sock;
kaizen 0:50932ef4b276 53
maru536 3:4b4eb90875bd 54 //Wifi AP Mode Server init
maru536 2:8d119e9b8f5a 55 srv.open(&wifiInterface);
kaizen 0:50932ef4b276 56 srv.set_blocking(true);
maru536 2:8d119e9b8f5a 57 srv.bind(8080);
kaizen 0:50932ef4b276 58 srv.listen();
kaizen 0:50932ef4b276 59 srv.accept(&clt_sock);
kaizen 0:50932ef4b276 60
maru536 3:4b4eb90875bd 61 //Wifi AP Mode Server recv Wifi config info
kaizen 0:50932ef4b276 62 while (true)
kaizen 0:50932ef4b276 63 {
maru536 2:8d119e9b8f5a 64 int n = clt_sock.recv(buf, MAX_BUF_SIZE);
kaizen 0:50932ef4b276 65 if( n < 0 )
kaizen 0:50932ef4b276 66 {
kaizen 0:50932ef4b276 67 clt_sock.close();
kaizen 0:50932ef4b276 68 srv.close();
kaizen 0:50932ef4b276 69 }
kaizen 0:50932ef4b276 70 if( n > 0 )
kaizen 0:50932ef4b276 71 {
maru536 2:8d119e9b8f5a 72 buf[n] = '\0';
maru536 2:8d119e9b8f5a 73 clt_sock.send(buf, n);
maru536 2:8d119e9b8f5a 74 break;
kaizen 0:50932ef4b276 75 }
kaizen 0:50932ef4b276 76 }
maru536 2:8d119e9b8f5a 77
maru536 3:4b4eb90875bd 78 //Wifi AP Mode Server response Wifi config info
maru536 2:8d119e9b8f5a 79 sendMacResponse(wifiInterface, clt_sock);
maru536 2:8d119e9b8f5a 80 processWiFiJson(buf, pwd, id);
maru536 2:8d119e9b8f5a 81
maru536 3:4b4eb90875bd 82 //free wifi AP Server
maru536 2:8d119e9b8f5a 83 clt_sock.close();
maru536 2:8d119e9b8f5a 84 srv.close();
maru536 2:8d119e9b8f5a 85
maru536 3:4b4eb90875bd 86 #if MODE == DEMO_MODE
maru536 3:4b4eb90875bd 87 //Decoder Init
maru536 3:4b4eb90875bd 88 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 89 player.hardwareReset(); //Make a reset to the VS1053 board
maru536 3:4b4eb90875bd 90 player.modeSwitch(); //Patch the VS1054 board to play MP3 files (very important!).
maru536 3:4b4eb90875bd 91 #endif
maru536 3:4b4eb90875bd 92
maru536 3:4b4eb90875bd 93 //Wifi Station(Client) Mode start
maru536 2:8d119e9b8f5a 94 wifiInterface.connect(buf, pwd, STA_SECURITY);
maru536 4:a602935de142 95 m_register.TurnOnLed(m_register.kWifiLedByte);
maru536 2:8d119e9b8f5a 96 TCPSocket *socket = new TCPSocket(&wifiInterface);
maru536 2:8d119e9b8f5a 97
maru536 3:4b4eb90875bd 98 #if MODE == DEMO_MODE
maru536 3:4b4eb90875bd 99 //detecting start
maru536 3:4b4eb90875bd 100 detecting(player, socket, buf, id)
maru536 3:4b4eb90875bd 101 #endif
maru536 3:4b4eb90875bd 102
maru536 3:4b4eb90875bd 103 #if MODE == TEST_MODE
maru536 3:4b4eb90875bd 104 //recv tts text
maru536 2:8d119e9b8f5a 105 recvInfo(socket, buf, id);
maru536 3:4b4eb90875bd 106 //recv tts data and play
maru536 2:8d119e9b8f5a 107 playTTS(socket, buf);
maru536 3:4b4eb90875bd 108 //recv android app push notification
maru536 2:8d119e9b8f5a 109 requestNoti(socket, id, buf);
maru536 3:4b4eb90875bd 110 #endif
maru536 2:8d119e9b8f5a 111
maru536 3:4b4eb90875bd 112 //free wifi
maru536 2:8d119e9b8f5a 113 socket->close();
maru536 2:8d119e9b8f5a 114 wifiInterface.disconnect();
maru536 3:4b4eb90875bd 115
maru536 3:4b4eb90875bd 116 #if MODE == DEMO_MODE
maru536 3:4b4eb90875bd 117 //free decoder
maru536 3:4b4eb90875bd 118 player.sendCancel();
maru536 3:4b4eb90875bd 119 player.stop();
maru536 3:4b4eb90875bd 120 #endif
maru536 2:8d119e9b8f5a 121
maru536 2:8d119e9b8f5a 122 printf("D\n");
maru536 2:8d119e9b8f5a 123 delete socket;
maru536 4:a602935de142 124
maru536 4:a602935de142 125 m_register.BlackOutLed();
kaizen 0:50932ef4b276 126 }