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 22:02:47 2017 +0000
Revision:
5:e313e52adcaf
Parent:
4:a602935de142
Child:
6:f27c1fe6abfd
LED Complete

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