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

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

typoの修正

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