AP mode

Dependencies:   NetworkSocketAPI WizFi310Interface mbed

Fork of WizFi310_TCP_Echo_Server_Example by WIZnet

Committer:
maru536
Date:
Tue Oct 03 05:38:58 2017 +0000
Revision:
8:e26236864101
Parent:
6:f27c1fe6abfd
comp

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