source: rtos_arduino/trunk/arduino_lib/libraries/ESP8266/doc/API-html/_t_c_p_server_8ino_source.html@ 136

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

ライブラリとOS及びベーシックなサンプルの追加.

File size: 20.3 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.7"/>
7<title>API: examples/TCPServer/TCPServer.ino Source File</title>
8<link href="tabs.css" rel="stylesheet" type="text/css"/>
9<script type="text/javascript" src="jquery.js"></script>
10<script type="text/javascript" src="dynsections.js"></script>
11<link href="doxygen.css" rel="stylesheet" type="text/css" />
12</head>
13<body>
14<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
15<div id="titlearea">
16<table cellspacing="0" cellpadding="0">
17 <tbody>
18 <tr style="height: 56px;">
19 <td id="projectlogo"><img alt="Logo" src="ITEAD-logo.JPG"/></td>
20 <td style="padding-left: 0.5em;">
21 <div id="projectname">API
22 </div>
23 <div id="projectbrief">For Arduino developers</div>
24 </td>
25 </tr>
26 </tbody>
27</table>
28</div>
29<!-- end header part -->
30<!-- Generated by Doxygen 1.8.7 -->
31 <div id="navrow1" class="tabs">
32 <ul class="tablist">
33 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
34 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
35 <li><a href="annotated.html"><span>Classes</span></a></li>
36 <li class="current"><a href="files.html"><span>Files</span></a></li>
37 <li><a href="examples.html"><span>Examples</span></a></li>
38 </ul>
39 </div>
40 <div id="navrow2" class="tabs2">
41 <ul class="tablist">
42 <li><a href="files.html"><span>File&#160;List</span></a></li>
43 </ul>
44 </div>
45<div id="nav-path" class="navpath">
46 <ul>
47<li class="navelem"><a class="el" href="dir_d28a4824dc47e487b107a5db32ef43c4.html">examples</a></li><li class="navelem"><a class="el" href="dir_d2ed1861e8b23cc7f6c17b3a49969805.html">TCPServer</a></li> </ul>
48</div>
49</div><!-- top -->
50<div class="header">
51 <div class="headertitle">
52<div class="title">TCPServer.ino</div> </div>
53</div><!--header-->
54<div class="contents">
55<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
56<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_e_s_p8266_8h.html">ESP8266.h</a>&quot;</span></div>
57<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
58<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#define SSID &quot;ITEAD&quot;</span></div>
59<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define PASSWORD &quot;12345678&quot;</span></div>
60<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
61<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<a class="code" href="class_e_s_p8266.html">ESP8266</a> wifi(Serial1);</div>
62<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
63<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keywordtype">void</span> setup(<span class="keywordtype">void</span>)</div>
64<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
65<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; Serial.begin(9600);</div>
66<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; Serial.print(<span class="stringliteral">&quot;setup begin\r\n&quot;</span>);</div>
67<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
68<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; Serial.print(<span class="stringliteral">&quot;FW Version:&quot;</span>);</div>
69<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; Serial.println(wifi.<a class="code" href="class_e_s_p8266.html#a4e2d8a0637b437d4b03209cebfa5b750">getVersion</a>().c_str());</div>
70<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
71<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span> (wifi.<a class="code" href="class_e_s_p8266.html#ac179183a46b218609a481747bcfd5a61">setOprToStationSoftAP</a>()) {</div>
72<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; Serial.print(<span class="stringliteral">&quot;to station + softap ok\r\n&quot;</span>);</div>
73<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; } <span class="keywordflow">else</span> {</div>
74<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; Serial.print(<span class="stringliteral">&quot;to station + softap err\r\n&quot;</span>);</div>
75<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div>
76<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
77<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span> (wifi.<a class="code" href="class_e_s_p8266.html#a300535b4b5f001b74058ebcc694a749f">joinAP</a>(SSID, PASSWORD)) {</div>
78<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; Serial.print(<span class="stringliteral">&quot;Join AP success\r\n&quot;</span>);</div>
79<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; Serial.print(<span class="stringliteral">&quot;IP: &quot;</span>);</div>
80<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; Serial.println(wifi.<a class="code" href="class_e_s_p8266.html#a20819d4dabf19fed6e3dcb3fd04ee49d">getLocalIP</a>().c_str()); </div>
81<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; } <span class="keywordflow">else</span> {</div>
82<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; Serial.print(<span class="stringliteral">&quot;Join AP failure\r\n&quot;</span>);</div>
83<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div>
84<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
85<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span> (wifi.<a class="code" href="class_e_s_p8266.html#a16963a076b80906563d2269c0cd52007">enableMUX</a>()) {</div>
86<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; Serial.print(<span class="stringliteral">&quot;multiple ok\r\n&quot;</span>);</div>
87<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; } <span class="keywordflow">else</span> {</div>
88<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; Serial.print(<span class="stringliteral">&quot;multiple err\r\n&quot;</span>);</div>
89<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div>
90<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
91<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span> (wifi.<a class="code" href="class_e_s_p8266.html#a22a7768a76709c8d8f0b9809158b7ec9">startTCPServer</a>(8090)) {</div>
92<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; Serial.print(<span class="stringliteral">&quot;start tcp server ok\r\n&quot;</span>);</div>
93<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">else</span> {</div>
94<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; Serial.print(<span class="stringliteral">&quot;start tcp server err\r\n&quot;</span>);</div>
95<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
96<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
97<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span> (wifi.<a class="code" href="class_e_s_p8266.html#a71f76c76d23fc66c26f1c7b357f58ac2">setTCPServerTimeout</a>(10)) { </div>
98<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; Serial.print(<span class="stringliteral">&quot;set tcp server timout 10 seconds\r\n&quot;</span>);</div>
99<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; } <span class="keywordflow">else</span> {</div>
100<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; Serial.print(<span class="stringliteral">&quot;set tcp server timout err\r\n&quot;</span>);</div>
101<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div>
102<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; </div>
103<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; Serial.print(<span class="stringliteral">&quot;setup end\r\n&quot;</span>);</div>
104<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div>
105<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
106<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="keywordtype">void</span> loop(<span class="keywordtype">void</span>)</div>
107<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div>
108<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; uint8_t buffer[128] = {0};</div>
109<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; uint8_t mux_id;</div>
110<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; uint32_t len = wifi.<a class="code" href="class_e_s_p8266.html#af8ce40bd14556bcfb5d4c521047fc821">recv</a>(&amp;mux_id, buffer, <span class="keyword">sizeof</span>(buffer), 100);</div>
111<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (len &gt; 0) {</div>
112<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; Serial.print(<span class="stringliteral">&quot;Status:[&quot;</span>);</div>
113<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; Serial.print(wifi.<a class="code" href="class_e_s_p8266.html#ad273286fbb8627a612249a232d53ca22">getIPStatus</a>().c_str());</div>
114<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; Serial.println(<span class="stringliteral">&quot;]&quot;</span>);</div>
115<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
116<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; Serial.print(<span class="stringliteral">&quot;Received from :&quot;</span>);</div>
117<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; Serial.print(mux_id);</div>
118<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; Serial.print(<span class="stringliteral">&quot;[&quot;</span>);</div>
119<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; len; i++) {</div>
120<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; Serial.print((<span class="keywordtype">char</span>)buffer[i]);</div>
121<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div>
122<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; Serial.print(<span class="stringliteral">&quot;]\r\n&quot;</span>);</div>
123<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
124<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(wifi.<a class="code" href="class_e_s_p8266.html#a6ba21b921a7afc79a36d0e41c20d59bc">send</a>(mux_id, buffer, len)) {</div>
125<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; Serial.print(<span class="stringliteral">&quot;send back ok\r\n&quot;</span>);</div>
126<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; } <span class="keywordflow">else</span> {</div>
127<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; Serial.print(<span class="stringliteral">&quot;send back err\r\n&quot;</span>);</div>
128<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div>
129<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
130<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (wifi.<a class="code" href="class_e_s_p8266.html#ac15ce9df69dc566c37b3fa2c3c869337">releaseTCP</a>(mux_id)) {</div>
131<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; Serial.print(<span class="stringliteral">&quot;release tcp &quot;</span>);</div>
132<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; Serial.print(mux_id);</div>
133<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; Serial.println(<span class="stringliteral">&quot; ok&quot;</span>);</div>
134<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; } <span class="keywordflow">else</span> {</div>
135<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; Serial.print(<span class="stringliteral">&quot;release tcp&quot;</span>);</div>
136<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; Serial.print(mux_id);</div>
137<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; Serial.println(<span class="stringliteral">&quot; err&quot;</span>);</div>
138<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div>
139<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
140<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; Serial.print(<span class="stringliteral">&quot;Status:[&quot;</span>);</div>
141<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; Serial.print(wifi.<a class="code" href="class_e_s_p8266.html#ad273286fbb8627a612249a232d53ca22">getIPStatus</a>().c_str());</div>
142<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; Serial.println(<span class="stringliteral">&quot;]&quot;</span>);</div>
143<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div>
144<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div>
145<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
146<div class="ttc" id="class_e_s_p8266_html_a6ba21b921a7afc79a36d0e41c20d59bc"><div class="ttname"><a href="class_e_s_p8266.html#a6ba21b921a7afc79a36d0e41c20d59bc">ESP8266::send</a></div><div class="ttdeci">bool send(const uint8_t *buffer, uint32_t len)</div><div class="ttdoc">Send data based on TCP or UDP builded already in single mode. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00261">ESP8266.cpp:261</a></div></div>
147<div class="ttc" id="class_e_s_p8266_html_a4e2d8a0637b437d4b03209cebfa5b750"><div class="ttname"><a href="class_e_s_p8266.html#a4e2d8a0637b437d4b03209cebfa5b750">ESP8266::getVersion</a></div><div class="ttdeci">String getVersion(void)</div><div class="ttdoc">Get the version of AT Command Set. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00080">ESP8266.cpp:80</a></div></div>
148<div class="ttc" id="class_e_s_p8266_html_ac15ce9df69dc566c37b3fa2c3c869337"><div class="ttname"><a href="class_e_s_p8266.html#ac15ce9df69dc566c37b3fa2c3c869337">ESP8266::releaseTCP</a></div><div class="ttdeci">bool releaseTCP(void)</div><div class="ttdoc">Release TCP connection in single mode. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00196">ESP8266.cpp:196</a></div></div>
149<div class="ttc" id="class_e_s_p8266_html_af8ce40bd14556bcfb5d4c521047fc821"><div class="ttname"><a href="class_e_s_p8266.html#af8ce40bd14556bcfb5d4c521047fc821">ESP8266::recv</a></div><div class="ttdeci">uint32_t recv(uint8_t *buffer, uint32_t buffer_size, uint32_t timeout=1000)</div><div class="ttdoc">Receive data from TCP or UDP builded already in single mode. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00271">ESP8266.cpp:271</a></div></div>
150<div class="ttc" id="class_e_s_p8266_html_a16963a076b80906563d2269c0cd52007"><div class="ttname"><a href="class_e_s_p8266.html#a16963a076b80906563d2269c0cd52007">ESP8266::enableMUX</a></div><div class="ttdeci">bool enableMUX(void)</div><div class="ttdoc">Enable IP MUX(multiple connection mode). </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00181">ESP8266.cpp:181</a></div></div>
151<div class="ttc" id="class_e_s_p8266_html_a20819d4dabf19fed6e3dcb3fd04ee49d"><div class="ttname"><a href="class_e_s_p8266.html#a20819d4dabf19fed6e3dcb3fd04ee49d">ESP8266::getLocalIP</a></div><div class="ttdeci">String getLocalIP(void)</div><div class="ttdoc">Get the IP address of ESP8266. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00174">ESP8266.cpp:174</a></div></div>
152<div class="ttc" id="_e_s_p8266_8h_html"><div class="ttname"><a href="_e_s_p8266_8h.html">ESP8266.h</a></div><div class="ttdoc">The definition of class ESP8266. </div></div>
153<div class="ttc" id="class_e_s_p8266_html_ac179183a46b218609a481747bcfd5a61"><div class="ttname"><a href="class_e_s_p8266.html#ac179183a46b218609a481747bcfd5a61">ESP8266::setOprToStationSoftAP</a></div><div class="ttdeci">bool setOprToStationSoftAP(void)</div><div class="ttdoc">Set operation mode to station + softap. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00121">ESP8266.cpp:121</a></div></div>
154<div class="ttc" id="class_e_s_p8266_html_a300535b4b5f001b74058ebcc694a749f"><div class="ttname"><a href="class_e_s_p8266.html#a300535b4b5f001b74058ebcc694a749f">ESP8266::joinAP</a></div><div class="ttdeci">bool joinAP(String ssid, String pwd)</div><div class="ttdoc">Join in AP. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00145">ESP8266.cpp:145</a></div></div>
155<div class="ttc" id="class_e_s_p8266_html_a71f76c76d23fc66c26f1c7b357f58ac2"><div class="ttname"><a href="class_e_s_p8266.html#a71f76c76d23fc66c26f1c7b357f58ac2">ESP8266::setTCPServerTimeout</a></div><div class="ttdeci">bool setTCPServerTimeout(uint32_t timeout=180)</div><div class="ttdoc">Set the timeout of TCP Server. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00231">ESP8266.cpp:231</a></div></div>
156<div class="ttc" id="class_e_s_p8266_html"><div class="ttname"><a href="class_e_s_p8266.html">ESP8266</a></div><div class="ttdoc">Provide an easy-to-use way to manipulate ESP8266. </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8h_source.html#l00038">ESP8266.h:38</a></div></div>
157<div class="ttc" id="class_e_s_p8266_html_a22a7768a76709c8d8f0b9809158b7ec9"><div class="ttname"><a href="class_e_s_p8266.html#a22a7768a76709c8d8f0b9809158b7ec9">ESP8266::startTCPServer</a></div><div class="ttdeci">bool startTCPServer(uint32_t port=333)</div><div class="ttdoc">Start TCP Server(Only in multiple mode). </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00236">ESP8266.cpp:236</a></div></div>
158<div class="ttc" id="class_e_s_p8266_html_ad273286fbb8627a612249a232d53ca22"><div class="ttname"><a href="class_e_s_p8266.html#ad273286fbb8627a612249a232d53ca22">ESP8266::getIPStatus</a></div><div class="ttdeci">String getIPStatus(void)</div><div class="ttdoc">Get the current status of connection(UDP and TCP). </div><div class="ttdef"><b>Definition:</b> <a href="_e_s_p8266_8cpp_source.html#l00167">ESP8266.cpp:167</a></div></div>
159</div><!-- fragment --></div><!-- contents -->
160<!-- start footer part -->
161<hr class="footer"/><address class="footer"><small>
162Generated on Tue Mar 17 2015 10:34:17 for API by &#160;<a href="http://www.doxygen.org/index.html">
163<img class="footer" src="doxygen.png" alt="doxygen"/>
164</a> 1.8.7
165</small></address>
166</body>
167</html>
Note: See TracBrowser for help on using the repository browser.