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
Line 
1#include "rca.h"
2#include "ESP8266.h"
3
4#include "../examples_gdef.h"
5
6#define WMODE_STATION
7
8bool setup_done = false;
9
10void setup()
11{
12 int ret;
13
14 Serial.println("Echo Server : Start!");
15
16 ret = WiFi.begin(Serial5, 115200);
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:");
24 Serial.println(WiFi.getVersion().c_str());
25 Serial.print("Supported FW Version:");
26 Serial.print(ESP8266_SUPPORT_VERSION);
27 while(1);
28 } else {
29 Serial.print("begin ok\r\n");
30 }
31
32 Serial.print("FW Version:");
33 Serial.println(WiFi.getVersion().c_str());
34
35#ifdef WMODE_STATION
36 if (WiFi.setOprToStation()) {
37 Serial.print("to station ok\r\n");
38 } else {
39 Serial.print("to station err\r\n");
40 }
41
42 if (WiFi.joinAP(STA_SSID, STA_PASSWORD)) {
43 Serial.print("Join AP success\r\n");
44 Serial.print("IP: ");
45 Serial.println(WiFi.getLocalIP().c_str());
46 } else {
47 Serial.print("Join AP failure\r\n");
48 while(1);
49 }
50#else /* !WMODE_STATION */
51 if (WiFi.setOprToSoftAP()) {
52 Serial.print("to softap ok\r\n");
53 } else {
54 Serial.print("to softap err\r\n");
55 }
56 if(WiFi.setSoftAPParam(AP_SSID, AP_PASSWORD, 7, 0)){
57 Serial.print("Set SoftAP success\r\n");
58 Serial.print("IP: ");
59 Serial.println(WiFi.getLocalIP().c_str());
60 }
61 else {
62 Serial.print("Set SoftAP failure\r\n");
63 }
64#endif /* WMODE_STATION */
65
66 if (WiFi.enableMUX()) {
67 Serial.print("multiple ok\r\n");
68 } else {
69 Serial.print("multiple err\r\n");
70 while(1);
71 }
72
73 if (WiFi.startTCPServer(80)) {
74 Serial.print("start tcp server ok\r\n");
75 } else {
76 Serial.print("start tcp server err\r\n");
77 while(1);
78 }
79
80 if (WiFi.setTCPServerTimeout(60)) {
81 Serial.print("set tcp server timout 60 seconds\r\n");
82 } else {
83 Serial.print("set tcp server timout err\r\n");
84 while(1);
85 }
86
87 Serial.print("setup end\r\n");
88
89 setup_done = true;
90}
91
92#define MUX_NULL 0xff
93
94uint8_t mux_id_ptn;
95
96uint8_t mux_id = MUX_NULL;
97uint8_t task1_mux_id = MUX_NULL;
98
99void loop()
100{
101 uint8_t buffer[128] = {0};
102 uint8_t pre_mux_id_ptn;
103 uint32_t len;
104 uint32_t i;
105
106 delay(1);
107 /* Check Connection Status */
108 pre_mux_id_ptn = mux_id_ptn;
109
110 if(!WiFi.getMuxCStatus(&mux_id_ptn)) {
111 Serial.println("getMuxCStatus(&mux_id_ptn) : Error!");
112 }
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 }
124 }
125
126 if (mux_id == MUX_NULL) {
127 return;
128 }
129
130 if (!WiFi.isConnected(mux_id)) {
131 Serial.print("Echo Server : Port is closed: ");
132 Serial.println(mux_id);
133 mux_id = MUX_NULL;
134 return;
135 }
136
137 if((len = WiFi.recv(mux_id, buffer, sizeof(buffer))) == 0) {
138 return;
139 }
140
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);
148 WiFi.releaseTCP(mux_id);
149 mux_id = MUX_NULL;
150 return;
151 }
152 }
153
154 Serial.print("Echo Server : Recive Data from mux : ");
155 Serial.println(mux_id);
156 Serial.print("Echo Server : Recive len : ");
157 Serial.println(len);
158 Serial.print("Echo Server : Recive Data : ");
159 Serial.println((char*)buffer);
160
161 if(!WiFi.send(mux_id, buffer, len)) {
162 Serial.println("Echo Server : send(mux_id, cmd) : Error!");
163 }
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
182 delay(1);
183
184 if (task1_mux_id == MUX_NULL) {
185 delay(1);
186 return;
187 }
188
189 if (!WiFi.isConnected(task1_mux_id)) {
190 Serial.print("Echo Server Task1 : Port is closed: ");
191 Serial.println(task1_mux_id);
192 task1_mux_id = MUX_NULL;
193 return;
194 }
195 if((len = WiFi.recv(task1_mux_id, buffer, sizeof(buffer))) == 0) {
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);
206 WiFi.releaseTCP(task1_mux_id);
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
219 if(!WiFi.send(task1_mux_id, buffer, len)) {
220 Serial.println("Echo Server Task1 : send(task1_mux_id, cmd) : Error!");
221 }
222}
223#endif /* MULTI_ECHO_SERVER */
Note: See TracBrowser for help on using the repository browser.