source: rtos_arduino/trunk/examples/WifiEcho/rca_app.cpp@ 235

Last change on this file since 235 was 235, checked in by ertl-honda, 8 years ago

共有設定を別ファイルとした

File size: 5.4 KB
RevLine 
[146]1#include "rca.h"
[200]2#include "ESP8266.h"
[146]3
[235]4#include "../examples_gdef.h"
[146]5
[179]6#define WMODE_STATION
7
[200]8bool setup_done = false;
9
[146]10void setup()
11{
[179]12 int ret;
13
[201]14 Serial.println("Echo Server : Start!");
[146]15
[213]16 ret = WiFi.begin(Serial5, 115200);
[179]17
18 if(ret == 1) {
19 Serial.print("Cannot communicate with ESP8266.");
20 while(1);
21 } else if(ret == 2) {
22 Serial.println("FW Version mismatch.");
23 Serial.print("FW Version:");
[213]24 Serial.println(WiFi.getVersion().c_str());
[179]25 Serial.print("Supported FW Version:");
[235]26 Serial.print(ESP8266_SUPPORT_VERSION);
[179]27 while(1);
28 } else {
29 Serial.print("begin ok\r\n");
30 }
31
[146]32 Serial.print("FW Version:");
[213]33 Serial.println(WiFi.getVersion().c_str());
[146]34
[179]35#ifdef WMODE_STATION
[213]36 if (WiFi.setOprToStation()) {
[146]37 Serial.print("to station ok\r\n");
38 } else {
39 Serial.print("to station err\r\n");
40 }
41
[213]42 if (WiFi.joinAP(STA_SSID, STA_PASSWORD)) {
[146]43 Serial.print("Join AP success\r\n");
44 Serial.print("IP: ");
[213]45 Serial.println(WiFi.getLocalIP().c_str());
[146]46 } else {
47 Serial.print("Join AP failure\r\n");
[235]48 while(1);
[146]49 }
[179]50#else /* !WMODE_STATION */
[213]51 if (WiFi.setOprToSoftAP()) {
[146]52 Serial.print("to softap ok\r\n");
53 } else {
54 Serial.print("to softap err\r\n");
[179]55 }
[213]56 if(WiFi.setSoftAPParam(AP_SSID, AP_PASSWORD, 7, 0)){
[146]57 Serial.print("Set SoftAP success\r\n");
58 Serial.print("IP: ");
[213]59 Serial.println(WiFi.getLocalIP().c_str());
[146]60 }
61 else {
62 Serial.print("Set SoftAP failure\r\n");
63 }
[179]64#endif /* WMODE_STATION */
65
[213]66 if (WiFi.enableMUX()) {
[146]67 Serial.print("multiple ok\r\n");
68 } else {
69 Serial.print("multiple err\r\n");
[235]70 while(1);
[146]71 }
[179]72
[213]73 if (WiFi.startTCPServer(80)) {
[146]74 Serial.print("start tcp server ok\r\n");
75 } else {
76 Serial.print("start tcp server err\r\n");
[235]77 while(1);
[146]78 }
79
[213]80 if (WiFi.setTCPServerTimeout(60)) {
[200]81 Serial.print("set tcp server timout 60 seconds\r\n");
[146]82 } else {
83 Serial.print("set tcp server timout err\r\n");
[235]84 while(1);
[146]85 }
[179]86
[146]87 Serial.print("setup end\r\n");
[200]88
89 setup_done = true;
[146]90}
91
[200]92#define MUX_NULL 0xff
93
[179]94uint8_t mux_id_ptn;
[146]95
[200]96uint8_t mux_id = MUX_NULL;
97uint8_t task1_mux_id = MUX_NULL;
98
[146]99void loop()
100{
101 uint8_t buffer[128] = {0};
[200]102 uint8_t pre_mux_id_ptn;
103 uint32_t len;
104 uint32_t i;
105
106 delay(1);
107 /* Check Connection Status */
[179]108 pre_mux_id_ptn = mux_id_ptn;
109
[213]110 if(!WiFi.getMuxCStatus(&mux_id_ptn)) {
[200]111 Serial.println("getMuxCStatus(&mux_id_ptn) : Error!");
[179]112 }
[200]113 else {
114 if (pre_mux_id_ptn != mux_id_ptn) {
115 Serial.print("Connection Status changed! : 0x");
116 Serial.println(mux_id_ptn, HEX);
117 if (mux_id_ptn & 0x01) {
118 mux_id = 0;
119 }
120 if (mux_id_ptn & 0x02) {
121 task1_mux_id = 1;
122 }
123 }
[179]124 }
125
[200]126 if (mux_id == MUX_NULL) {
[146]127 return;
128 }
[200]129
[213]130 if (!WiFi.isConnected(mux_id)) {
[200]131 Serial.print("Echo Server : Port is closed: ");
132 Serial.println(mux_id);
133 mux_id = MUX_NULL;
[179]134 return;
135 }
[200]136
[213]137 if((len = WiFi.recv(mux_id, buffer, sizeof(buffer))) == 0) {
[200]138 return;
139 }
[179]140
[200]141 /* Recived Data */
142
143 for(i = 0; i < len; i++) {
144 /* If Recive Ctrl-q(17) */
145 if(buffer[i] == 17) {
146 Serial.print("Echo Server : Close port : ");
147 Serial.println(mux_id);
[213]148 WiFi.releaseTCP(mux_id);
[200]149 mux_id = MUX_NULL;
150 return;
151 }
152 }
153
154 Serial.print("Echo Server : Recive Data from mux : ");
[179]155 Serial.println(mux_id);
[200]156 Serial.print("Echo Server : Recive len : ");
[179]157 Serial.println(len);
[200]158 Serial.print("Echo Server : Recive Data : ");
159 Serial.println((char*)buffer);
[179]160
[213]161 if(!WiFi.send(mux_id, buffer, len)) {
[200]162 Serial.println("Echo Server : send(mux_id, cmd) : Error!");
[179]163 }
[200]164}
165
166#ifdef MULTI_ECHO_SERVER
167/*
168 * For TASK1
169 */
170void task1_setup() {
171 while(!setup_done) {
172 delay(1);
173 }
174 Serial.println("Echo Server Task1 : start");
175}
176
177void task1_loop() {
178 uint8_t buffer[128] = {0};
179 uint32_t len;
180 uint32_t i;
181
[203]182 delay(1);
183
[200]184 if (task1_mux_id == MUX_NULL) {
185 delay(1);
186 return;
187 }
[179]188
[213]189 if (!WiFi.isConnected(task1_mux_id)) {
[200]190 Serial.print("Echo Server Task1 : Port is closed: ");
191 Serial.println(task1_mux_id);
192 task1_mux_id = MUX_NULL;
193 return;
194 }
[213]195 if((len = WiFi.recv(task1_mux_id, buffer, sizeof(buffer))) == 0) {
[200]196 return;
197 }
198
199 /* Recived Data */
200
201 for(i = 0; i < len; i++) {
202 /* If Recive Ctrl-q(17) */
203 if(buffer[i] == 17) {
204 Serial.print("Echo Server Task1 : Close port : ");
205 Serial.println(task1_mux_id);
[213]206 WiFi.releaseTCP(task1_mux_id);
[200]207 task1_mux_id = MUX_NULL;
208 return;
209 }
210 }
211
212 Serial.print("Echo Server Task1 : Recive Data from mux : ");
213 Serial.println(task1_mux_id);
214 Serial.print("Echo Server Task1 : Recive len : ");
215 Serial.println(len);
216 Serial.print("Echo Server Task1 : Recive Data : ");
217 Serial.println((char*)buffer);
218
[213]219 if(!WiFi.send(task1_mux_id, buffer, len)) {
[200]220 Serial.println("Echo Server Task1 : send(task1_mux_id, cmd) : Error!");
221 }
[146]222}
[200]223#endif /* MULTI_ECHO_SERVER */
Note: See TracBrowser for help on using the repository browser.