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">
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <title>WiFi Socket API</title>
7 <title>CMSIS-Driver Validation: WiFi Socket API</title>
8 <link href="tabs.css" rel="stylesheet" type="text/css"/>
9 <link href="drv.css" rel="stylesheet" type="text/css" />
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <script type="text/javascript" src="printComponentTabs.js"></script>
13 <link href="navtree.css" rel="stylesheet" type="text/css"/>
14 <script type="text/javascript" src="resize.js"></script>
15 <script type="text/javascript" src="navtree.js"></script>
16 <script type="text/javascript">
17 $(document).ready(initResizable);
18 $(window).load(resizeHeight);
20 <link href="search/search.css" rel="stylesheet" type="text/css"/>
21 <script type="text/javascript" src="search/search.js"></script>
22 <script type="text/javascript">
23 $(document).ready(function() { searchBox.OnSelectItem(0); });
25 <link href="stylsheetf" rel="stylesheet" type="text/css" />
28 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
30 <table cellspacing="0" cellpadding="0">
32 <tr style="height: 46px;">
33 <td id="projectlogo"><img alt="Logo" src="keilarm.png"/></td>
34 <td style="padding-left: 0.5em;">
35 <div id="projectname">CMSIS-Driver Validation
36  <span id="projectnumber">Version 1.3.0</span>
38 <div id="projectbrief">Driver Validation</div>
44 <!-- end header part -->
45 <div id="DRVnav" class="tabs1">
47 <script type="text/javascript">
49 writeComponentTabs.call(this);
54 <!-- Generated by Doxygen 1.8.6 -->
55 <script type="text/javascript">
56 var searchBox = new SearchBox("searchBox", "search",false,'Search');
58 <div id="navrow1" class="tabs">
60 <li><a href="index.html"><span>Main Page</span></a></li>
61 <li><a href="pages.html"><span>Usage and Description</span></a></li>
62 <li><a href="modules.html"><span>Reference</span></a></li>
64 <div id="MSearchBox" class="MSearchBoxInactive">
66 <img id="MSearchSelect" src="search/mag_sel.png"
67 onmouseover="return searchBox.OnSearchSelectShow()"
68 onmouseout="return searchBox.OnSearchSelectHide()"
70 <input type="text" id="MSearchField" value="Search" accesskey="S"
71 onfocus="searchBox.OnSearchFieldFocus(true)"
72 onblur="searchBox.OnSearchFieldFocus(false)"
73 onkeyup="searchBox.OnSearchFieldChange(event)"/>
74 </span><span class="right">
75 <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
82 <div id="side-nav" class="ui-resizable side-nav-resizable">
84 <div id="nav-tree-contents">
85 <div id="nav-sync" class="sync"></div>
88 <div id="splitbar" style="-moz-user-select:none;"
89 class="ui-resizable-handle">
92 <script type="text/javascript">
93 $(document).ready(function(){initNavTree('group__wifi__sock__api.html','');});
95 <div id="doc-content">
96 <!-- window showing the filter options -->
97 <div id="MSearchSelectWindow"
98 onmouseover="return searchBox.OnSearchSelectShow()"
99 onmouseout="return searchBox.OnSearchSelectHide()"
100 onkeydown="return searchBox.OnSearchSelectKey(event)">
101 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Pages</a></div>
103 <!-- iframe showing the search results (closed by default) -->
104 <div id="MSearchResultsWindow">
105 <iframe src="javascript:void(0)" frameborder="0"
106 name="MSearchResults" id="MSearchResults">
111 <div class="summary">
112 <a href="#func-members">Functions</a> </div>
113 <div class="headertitle">
114 <div class="title">WiFi Socket API<div class="ingroups"><a class="el" href="group__wifi__funcs.html">WiFi Validation</a></div></div> </div>
116 <div class="contents">
117 <table class="memberdecls">
118 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
119 Functions</h2></td></tr>
120 <tr class="memitem:ga834712f8877f775e1f0f6e50960d72d9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga834712f8877f775e1f0f6e50960d72d9">WIFI_SocketCreate</a> (void)</td></tr>
121 <tr class="memdesc:ga834712f8877f775e1f0f6e50960d72d9"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketCreate. <a href="#ga834712f8877f775e1f0f6e50960d72d9">More...</a><br/></td></tr>
122 <tr class="separator:ga834712f8877f775e1f0f6e50960d72d9"><td class="memSeparator" colspan="2"> </td></tr>
123 <tr class="memitem:ga67a1bb12d358a227080e43629ee911c3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga67a1bb12d358a227080e43629ee911c3">WIFI_SocketBind</a> (void)</td></tr>
124 <tr class="memdesc:ga67a1bb12d358a227080e43629ee911c3"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketBind. <a href="#ga67a1bb12d358a227080e43629ee911c3">More...</a><br/></td></tr>
125 <tr class="separator:ga67a1bb12d358a227080e43629ee911c3"><td class="memSeparator" colspan="2"> </td></tr>
126 <tr class="memitem:ga49b46f7f6a66857c1dc15b12ed179264"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga49b46f7f6a66857c1dc15b12ed179264">WIFI_SocketListen</a> (void)</td></tr>
127 <tr class="memdesc:ga49b46f7f6a66857c1dc15b12ed179264"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketListen. <a href="#ga49b46f7f6a66857c1dc15b12ed179264">More...</a><br/></td></tr>
128 <tr class="separator:ga49b46f7f6a66857c1dc15b12ed179264"><td class="memSeparator" colspan="2"> </td></tr>
129 <tr class="memitem:gaa29a391c5c63e0d9be6dfc250f29a610"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gaa29a391c5c63e0d9be6dfc250f29a610">WIFI_SocketAccept</a> (void)</td></tr>
130 <tr class="memdesc:gaa29a391c5c63e0d9be6dfc250f29a610"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketAccept. <a href="#gaa29a391c5c63e0d9be6dfc250f29a610">More...</a><br/></td></tr>
131 <tr class="separator:gaa29a391c5c63e0d9be6dfc250f29a610"><td class="memSeparator" colspan="2"> </td></tr>
132 <tr class="memitem:ga9e97e01035766895d1c8328f0b3919da"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga9e97e01035766895d1c8328f0b3919da">WIFI_SocketConnect</a> (void)</td></tr>
133 <tr class="memdesc:ga9e97e01035766895d1c8328f0b3919da"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketConnect. <a href="#ga9e97e01035766895d1c8328f0b3919da">More...</a><br/></td></tr>
134 <tr class="separator:ga9e97e01035766895d1c8328f0b3919da"><td class="memSeparator" colspan="2"> </td></tr>
135 <tr class="memitem:gaa80eb04e62ae8883e9feace380ef85b2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gaa80eb04e62ae8883e9feace380ef85b2">WIFI_SocketRecv</a> (void)</td></tr>
136 <tr class="memdesc:gaa80eb04e62ae8883e9feace380ef85b2"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketRecv. <a href="#gaa80eb04e62ae8883e9feace380ef85b2">More...</a><br/></td></tr>
137 <tr class="separator:gaa80eb04e62ae8883e9feace380ef85b2"><td class="memSeparator" colspan="2"> </td></tr>
138 <tr class="memitem:ga5b92075e23383e2cdfc08ba17b7930a1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga5b92075e23383e2cdfc08ba17b7930a1">WIFI_SocketRecvFrom</a> (void)</td></tr>
139 <tr class="memdesc:ga5b92075e23383e2cdfc08ba17b7930a1"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketRecvFrom. <a href="#ga5b92075e23383e2cdfc08ba17b7930a1">More...</a><br/></td></tr>
140 <tr class="separator:ga5b92075e23383e2cdfc08ba17b7930a1"><td class="memSeparator" colspan="2"> </td></tr>
141 <tr class="memitem:gab3a6004025b524ac7564276397bf5d5e"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gab3a6004025b524ac7564276397bf5d5e">WIFI_SocketSend</a> (void)</td></tr>
142 <tr class="memdesc:gab3a6004025b524ac7564276397bf5d5e"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketSend. <a href="#gab3a6004025b524ac7564276397bf5d5e">More...</a><br/></td></tr>
143 <tr class="separator:gab3a6004025b524ac7564276397bf5d5e"><td class="memSeparator" colspan="2"> </td></tr>
144 <tr class="memitem:gaffb006e3899ba780c3781af90bc1b009"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gaffb006e3899ba780c3781af90bc1b009">WIFI_SocketSendTo</a> (void)</td></tr>
145 <tr class="memdesc:gaffb006e3899ba780c3781af90bc1b009"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketSendTo. <a href="#gaffb006e3899ba780c3781af90bc1b009">More...</a><br/></td></tr>
146 <tr class="separator:gaffb006e3899ba780c3781af90bc1b009"><td class="memSeparator" colspan="2"> </td></tr>
147 <tr class="memitem:ga94647417555c347e127d5dd35a3b00c9"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga94647417555c347e127d5dd35a3b00c9">WIFI_SocketGetSockName</a> (void)</td></tr>
148 <tr class="memdesc:ga94647417555c347e127d5dd35a3b00c9"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketGetSockName. <a href="#ga94647417555c347e127d5dd35a3b00c9">More...</a><br/></td></tr>
149 <tr class="separator:ga94647417555c347e127d5dd35a3b00c9"><td class="memSeparator" colspan="2"> </td></tr>
150 <tr class="memitem:ga57a2dee261a673a4ee30180613869423"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga57a2dee261a673a4ee30180613869423">WIFI_SocketGetPeerName</a> (void)</td></tr>
151 <tr class="memdesc:ga57a2dee261a673a4ee30180613869423"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketGetPeerName. <a href="#ga57a2dee261a673a4ee30180613869423">More...</a><br/></td></tr>
152 <tr class="separator:ga57a2dee261a673a4ee30180613869423"><td class="memSeparator" colspan="2"> </td></tr>
153 <tr class="memitem:ga265967d39cd19c584c2c88a593c19c86"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga265967d39cd19c584c2c88a593c19c86">WIFI_SocketGetOpt</a> (void)</td></tr>
154 <tr class="memdesc:ga265967d39cd19c584c2c88a593c19c86"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketGetOpt. <a href="#ga265967d39cd19c584c2c88a593c19c86">More...</a><br/></td></tr>
155 <tr class="separator:ga265967d39cd19c584c2c88a593c19c86"><td class="memSeparator" colspan="2"> </td></tr>
156 <tr class="memitem:ga92055f19013c830b2b793c601226d1ea"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga92055f19013c830b2b793c601226d1ea">WIFI_SocketSetOpt</a> (void)</td></tr>
157 <tr class="memdesc:ga92055f19013c830b2b793c601226d1ea"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketSetOpt. <a href="#ga92055f19013c830b2b793c601226d1ea">More...</a><br/></td></tr>
158 <tr class="separator:ga92055f19013c830b2b793c601226d1ea"><td class="memSeparator" colspan="2"> </td></tr>
159 <tr class="memitem:ga365ef23d0c1980535863639bec4be080"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#ga365ef23d0c1980535863639bec4be080">WIFI_SocketClose</a> (void)</td></tr>
160 <tr class="memdesc:ga365ef23d0c1980535863639bec4be080"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketClose. <a href="#ga365ef23d0c1980535863639bec4be080">More...</a><br/></td></tr>
161 <tr class="separator:ga365ef23d0c1980535863639bec4be080"><td class="memSeparator" colspan="2"> </td></tr>
162 <tr class="memitem:gac7bb0143c5d023b3ca97ff8f480c9f8a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gac7bb0143c5d023b3ca97ff8f480c9f8a">WIFI_SocketGetHostByName</a> (void)</td></tr>
163 <tr class="memdesc:gac7bb0143c5d023b3ca97ff8f480c9f8a"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_SocketGetHostByName. <a href="#gac7bb0143c5d023b3ca97ff8f480c9f8a">More...</a><br/></td></tr>
164 <tr class="separator:gac7bb0143c5d023b3ca97ff8f480c9f8a"><td class="memSeparator" colspan="2"> </td></tr>
165 <tr class="memitem:gad37acd8194b984b4c25c88b0c05c2f03"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__wifi__sock__api.html#gad37acd8194b984b4c25c88b0c05c2f03">WIFI_Ping</a> (void)</td></tr>
166 <tr class="memdesc:gad37acd8194b984b4c25c88b0c05c2f03"><td class="mdescLeft"> </td><td class="mdescRight">Test case: WIFI_Ping. <a href="#gad37acd8194b984b4c25c88b0c05c2f03">More...</a><br/></td></tr>
167 <tr class="separator:gad37acd8194b984b4c25c88b0c05c2f03"><td class="memSeparator" colspan="2"> </td></tr>
169 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
170 <p>These tests verify API and operation of the WiFi socket functions. </p>
171 <h2 class="groupheader">Function Documentation</h2>
172 <a class="anchor" id="gad37acd8194b984b4c25c88b0c05c2f03"></a>
173 <div class="memitem">
174 <div class="memproto">
175 <table class="memname">
177 <td class="memname">void WIFI_Ping </td>
179 <td class="paramtype">void </td>
180 <td class="paramname"></td><td>)</td>
184 </div><div class="memdoc">
185 <p>The test case <b>WIFI_Ping</b> verifies the WiFi Driver <b>Ping</b> function: </p>
186 <div class="fragment"><div class="line">int32_t (*Ping) (<span class="keyword">const</span> uint8_t *ip, uint32_t ip_len);</div>
187 </div><!-- fragment --><p>Function test:</p>
189 <li>Check function parameters</li>
195 <a class="anchor" id="gaa29a391c5c63e0d9be6dfc250f29a610"></a>
196 <div class="memitem">
197 <div class="memproto">
198 <table class="memname">
200 <td class="memname">void WIFI_SocketAccept </td>
202 <td class="paramtype">void </td>
203 <td class="paramname"></td><td>)</td>
207 </div><div class="memdoc">
208 <p>The test case <b>WIFI_SocketAccept</b> verifies the WiFi Driver <b>SocketAccept</b> function: </p>
209 <div class="fragment"><div class="line">int32_t (*SocketAccept) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
210 </div><!-- fragment --><p>Stream socket test:</p>
212 <li>Create stream socket</li>
214 <li>Start listening</li>
215 <li>Check function parameters</li>
216 <li>Accept connection, NULL parameters</li>
217 <li>Receive ServerId on accepted socket</li>
218 <li>Close accepted socket</li>
219 <li>Accept connection again, return IP address and port</li>
220 <li>Receive ServerId on accepted socket</li>
221 <li>Receive again, server closed connection</li>
222 <li>Close accepted socket</li>
223 <li>Close listening socket</li>
224 <li>Accept again, closed socket</li>
226 <p>Datagram socket test:</p>
228 <li>Create datagram socket</li>
230 <li>Start listening</li>
231 <li>Accept connection, provide return parameters for IP address and port</li>
232 <li>Receive ServerId on socket</li>
233 <li>Close socket </li>
238 <a class="anchor" id="ga67a1bb12d358a227080e43629ee911c3"></a>
239 <div class="memitem">
240 <div class="memproto">
241 <table class="memname">
243 <td class="memname">void WIFI_SocketBind </td>
245 <td class="paramtype">void </td>
246 <td class="paramname"></td><td>)</td>
250 </div><div class="memdoc">
251 <p>The test case <b>WIFI_SocketBind</b> verifies the WiFi Driver <b>SocketBind</b> function: </p>
252 <div class="fragment"><div class="line">int32_t (*SocketBind) (int32_t socket, <span class="keyword">const</span> uint8_t *ip, uint32_t ip_len, uint16_t port);</div>
253 </div><!-- fragment --><p>Stream socket test:</p>
255 <li>Create stream socket</li>
256 <li>Check function parameters</li>
257 <li>Bind stream socket</li>
258 <li>Bind socket second time</li>
259 <li>Create 2nd stream socket</li>
260 <li>Bind 2nd socket, used port</li>
261 <li>Bind 2nd socket, unused port</li>
262 <li>Close stream sockets</li>
263 <li>Bind closed socket</li>
265 <p>Datagram socket test:</p>
267 <li>Create datagram socket</li>
268 <li>Bind datagram socket</li>
269 <li>Bind socket second time</li>
270 <li>Create 2nd datagram socket</li>
271 <li>Bind 2nd socket, used port</li>
272 <li>Bind 2nd socket, unused port</li>
273 <li>Close datagram socket</li>
274 <li>Bind closed socket </li>
279 <a class="anchor" id="ga365ef23d0c1980535863639bec4be080"></a>
280 <div class="memitem">
281 <div class="memproto">
282 <table class="memname">
284 <td class="memname">void WIFI_SocketClose </td>
286 <td class="paramtype">void </td>
287 <td class="paramname"></td><td>)</td>
291 </div><div class="memdoc">
292 <p>The test case <b>WIFI_SocketClose</b> verifies the WiFi Driver <b>SocketClose</b> function: </p>
293 <div class="fragment"><div class="line">int32_t (*SocketClose) (int32_t socket);</div>
294 </div><!-- fragment --><p>Stream socket test 1:</p>
296 <li>Create stream socket</li>
298 <li>Connect to server</li>
299 <li>Check function parameters</li>
300 <li>Close socket</li>
301 <li>Close socket again</li>
303 <p>Stream socket test 2:</p>
305 <li>Create stream socket</li>
307 <li>Start listening</li>
308 <li>Close socket</li>
309 <li>Close socket again</li>
311 <p>Datagram socket test:</p>
313 <li>Create datagram socket</li>
315 <li>Check function parameters</li>
316 <li>Close socket</li>
317 <li>Close socket again </li>
322 <a class="anchor" id="ga9e97e01035766895d1c8328f0b3919da"></a>
323 <div class="memitem">
324 <div class="memproto">
325 <table class="memname">
327 <td class="memname">void WIFI_SocketConnect </td>
329 <td class="paramtype">void </td>
330 <td class="paramname"></td><td>)</td>
334 </div><div class="memdoc">
335 <p>The test case <b>WIFI_SocketConnect</b> verifies the WiFi Driver <b>SocketConnect</b> function: </p>
336 <div class="fragment"><div class="line">int32_t (*SocketConnect) (int32_t socket, <span class="keyword">const</span> uint8_t *ip, uint32_t ip_len, uint16_t port);</div>
337 </div><!-- fragment --><p>Stream socket test 1:</p>
339 <li>Create stream socket</li>
340 <li>Check function parameters</li>
341 <li>Connect to server, blocking mode</li>
342 <li>Connect again, already connected</li>
343 <li>Bind connected socket</li>
344 <li>Close socket</li>
345 <li>Connect on closed socket</li>
347 <p>Stream socket test 2:</p>
349 <li>Create stream socket</li>
350 <li>Connect to server, non-existent port</li>
351 <li>Close socket</li>
353 <p>Stream socket test 3:</p>
355 <li>Create stream socket</li>
357 <li>Start listening</li>
358 <li>Connect to server, blocking mode</li>
359 <li>Close socket</li>
361 <p>Datagram socket test:</p>
363 <li>Create datagram socket</li>
365 <li>Check function parameters</li>
366 <li>Connect to server, enable address filtering</li>
367 <li>Connect to unspecified address, disable filtering</li>
368 <li>Close socket</li>
369 <li>Connect again, closed socket </li>
374 <a class="anchor" id="ga834712f8877f775e1f0f6e50960d72d9"></a>
375 <div class="memitem">
376 <div class="memproto">
377 <table class="memname">
379 <td class="memname">void WIFI_SocketCreate </td>
381 <td class="paramtype">void </td>
382 <td class="paramname"></td><td>)</td>
386 </div><div class="memdoc">
387 <p>The test case <b>WIFI_SocketCreate</b> verifies the WiFi Driver <b>SocketCreate</b> function: </p>
388 <div class="fragment"><div class="line">int32_t (*SocketCreate) (int32_t af, int32_t type, int32_t protocol);</div>
389 </div><!-- fragment --><p>Create socket test:</p>
391 <li>Check function parameters</li>
392 <li>Create multiple stream sockets</li>
393 <li>Gradually close stream sockets and create datagram sockets</li>
394 <li>Close datagram sockets </li>
399 <a class="anchor" id="gac7bb0143c5d023b3ca97ff8f480c9f8a"></a>
400 <div class="memitem">
401 <div class="memproto">
402 <table class="memname">
404 <td class="memname">void WIFI_SocketGetHostByName </td>
406 <td class="paramtype">void </td>
407 <td class="paramname"></td><td>)</td>
411 </div><div class="memdoc">
412 <p>The test case <b>WIFI_SocketGetHostByName</b> the WiFi Driver <b>SocketGetHostByName</b> function: </p>
413 <div class="fragment"><div class="line">int32_t (*SocketGetHostByName) (<span class="keyword">const</span> <span class="keywordtype">char</span> *name, int32_t af, uint8_t *ip, uint32_t *ip_len);</div>
414 </div><!-- fragment --><p>Function test:</p>
416 <li>Check function parameters</li>
417 <li>Resolve host</li>
418 <li>Resolve non-existent host</li>
420 <dl class="section note"><dt>Note</dt><dd>This test requires internet connectivity to DNS server. </dd></dl>
424 <a class="anchor" id="ga265967d39cd19c584c2c88a593c19c86"></a>
425 <div class="memitem">
426 <div class="memproto">
427 <table class="memname">
429 <td class="memname">void WIFI_SocketGetOpt </td>
431 <td class="paramtype">void </td>
432 <td class="paramname"></td><td>)</td>
436 </div><div class="memdoc">
437 <p>The test case <b>WIFI_SocketGetOpt</b> verifies the WiFi Driver <b>SocketGetOpt</b> function: </p>
438 <div class="fragment"><div class="line">int32_t (*SocketGetOpt) (int32_t socket, int32_t opt_id, <span class="keywordtype">void</span> *opt_val, uint32_t *opt_len);</div>
439 </div><!-- fragment --><p>Stream socket test:</p>
441 <li>Create stream socket</li>
442 <li>Check function parameters</li>
443 <li>Get socket options</li>
444 <li>Close socket</li>
445 <li>Get socket options again, closed socket</li>
447 <p>Datagram socket test:</p>
449 <li>Create datagram socket</li>
450 <li>Get socket type</li>
451 <li>Close socket</li>
452 <li>Get socket type </li>
457 <a class="anchor" id="ga57a2dee261a673a4ee30180613869423"></a>
458 <div class="memitem">
459 <div class="memproto">
460 <table class="memname">
462 <td class="memname">void WIFI_SocketGetPeerName </td>
464 <td class="paramtype">void </td>
465 <td class="paramname"></td><td>)</td>
469 </div><div class="memdoc">
470 <p>The test case <b>WIFI_SocketGetPeerName</b> verifies the WiFi Driver <b>SocketGetPeerName</b> function: </p>
471 <div class="fragment"><div class="line">int32_t (*SocketGetPeerName) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
472 </div><!-- fragment --><p>Stream socket test 1:</p>
474 <li>Create stream socket</li>
475 <li>Connect to server, blocking mode</li>
476 <li>Check function parameters</li>
477 <li>Get peer name</li>
478 <li>Close socket</li>
479 <li>Get peer name, closed socket</li>
481 <p>Stream socket test 2:</p>
483 <li>Create stream socket</li>
484 <li>Get peer name, created socket</li>
486 <li>Get peer name, bound socket</li>
487 <li>Start listening</li>
488 <li>Get peer name, listening socket</li>
489 <li>Close socket</li>
491 <p>Datagram socket test:</p>
493 <li>Create datagram socket</li>
494 <li>Connect to server, enable packet filtering</li>
495 <li>Check function parameters</li>
496 <li>Get peer name</li>
497 <li>Close socket</li>
498 <li>Get peer name, closed socket </li>
503 <a class="anchor" id="ga94647417555c347e127d5dd35a3b00c9"></a>
504 <div class="memitem">
505 <div class="memproto">
506 <table class="memname">
508 <td class="memname">void WIFI_SocketGetSockName </td>
510 <td class="paramtype">void </td>
511 <td class="paramname"></td><td>)</td>
515 </div><div class="memdoc">
516 <p>The test case <b>WIFI_SocketGetSockName</b> verifies the WiFi Driver <b>SocketGetSockName</b> function: </p>
517 <div class="fragment"><div class="line">int32_t (*SocketGetSockName) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
518 </div><!-- fragment --><p>Stream socket test 1:</p>
520 <li>Create stream socket</li>
521 <li>Connect to server, blocking mode</li>
522 <li>Check function parameters</li>
523 <li>Get socket name</li>
524 <li>Close socket</li>
525 <li>Get socket name again, closed socket</li>
527 <p>Stream socket test 1:</p>
529 <li>Create stream socket</li>
530 <li>Get socket name, not bound</li>
532 <li>Get socket name, bound</li>
533 <li>Close socket</li>
535 <p>Datagram socket test 1:</p>
537 <li>Create datagram socket</li>
538 <li>Connect to server, enable packet filtering</li>
539 <li>Check function parameters</li>
540 <li>Get socket name</li>
541 <li>Close socket</li>
542 <li>Get socket name again, closed socket</li>
544 <p>Datagram socket test 1:</p>
546 <li>Create datagram socket</li>
547 <li>Get socket name, not bound</li>
549 <li>Get socket name, bound</li>
550 <li>Close socket </li>
555 <a class="anchor" id="ga49b46f7f6a66857c1dc15b12ed179264"></a>
556 <div class="memitem">
557 <div class="memproto">
558 <table class="memname">
560 <td class="memname">void WIFI_SocketListen </td>
562 <td class="paramtype">void </td>
563 <td class="paramname"></td><td>)</td>
567 </div><div class="memdoc">
568 <p>The test case <b>WIFI_SocketListen</b> verifies the WiFi Driver <b>SocketListen</b> function: </p>
569 <div class="fragment"><div class="line">int32_t (*SocketListen) (int32_t socket, int32_t backlog);</div>
570 </div><!-- fragment --><p>Stream socket test 1:</p>
572 <li>Create stream socket</li>
574 <li>Check function parameters</li>
575 <li>Start listening</li>
576 <li>Start listening 2nd time</li>
577 <li>Close socket</li>
579 <p>Stream socket test 2:</p>
581 <li>Create stream socket</li>
582 <li>Start listening, unbound socket</li>
583 <li>Close socket</li>
584 <li>Start listening, closed socket</li>
586 <p>Datagram socket test:</p>
588 <li>Create datagram socket</li>
590 <li>Start listening</li>
591 <li>Close socket </li>
596 <a class="anchor" id="gaa80eb04e62ae8883e9feace380ef85b2"></a>
597 <div class="memitem">
598 <div class="memproto">
599 <table class="memname">
601 <td class="memname">void WIFI_SocketRecv </td>
603 <td class="paramtype">void </td>
604 <td class="paramname"></td><td>)</td>
608 </div><div class="memdoc">
609 <p>Test case <b>WIFI_SocketRecv</b> verifies the WiFi Driver <b>SocketRecv</b> function: </p>
610 <div class="fragment"><div class="line">int32_t (*SocketRecv) (int32_t socket, <span class="keywordtype">void</span> *buf, uint32_t len);</div>
611 </div><!-- fragment --><p>Stream socket test 1:</p>
613 <li>Create stream socket</li>
614 <li>Connect to Chargen server</li>
615 <li>Check function parameters</li>
616 <li>Receive data in blocking mode</li>
617 <li>Close socket</li>
618 <li>Receive again, closed socket</li>
620 <p>Stream socket test 2:</p>
622 <li>Create stream socket</li>
623 <li>Receive data, created socket</li>
625 <li>Receive data, bound socket</li>
626 <li>Start listening</li>
627 <li>Receive data, listening socket</li>
628 <li>Close socket</li>
630 <p>Stream socket test 3:</p>
632 <li>Create stream socket</li>
633 <li>Connect to Discard server</li>
634 <li>Set receive timeout to 1 sec</li>
635 <li>Receive data, timeout expires</li>
636 <li>Close socket </li>
641 <a class="anchor" id="ga5b92075e23383e2cdfc08ba17b7930a1"></a>
642 <div class="memitem">
643 <div class="memproto">
644 <table class="memname">
646 <td class="memname">void WIFI_SocketRecvFrom </td>
648 <td class="paramtype">void </td>
649 <td class="paramname"></td><td>)</td>
653 </div><div class="memdoc">
654 <p>The test case <b>WIFI_SocketRecvFrom</b> verifies the WiFi Driver <b>SocketRecvFrom</b> function: </p>
655 <div class="fragment"><div class="line">int32_t (*SocketRecvFrom) (int32_t socket, <span class="keywordtype">void</span> *buf, uint32_t len, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
656 </div><!-- fragment --><p>Datagram socket test 1:</p>
658 <li>Create datagram socket</li>
659 <li>Connect to Chargen server</li>
660 <li>Check function parameters</li>
661 <li>Receive data in blocking mode</li>
662 <li>Set receive timeout to 1 sec</li>
663 <li>Receive again, timeout expires</li>
664 <li>Close socket</li>
665 <li>Receive again, closed socket </li>
670 <a class="anchor" id="gab3a6004025b524ac7564276397bf5d5e"></a>
671 <div class="memitem">
672 <div class="memproto">
673 <table class="memname">
675 <td class="memname">void WIFI_SocketSend </td>
677 <td class="paramtype">void </td>
678 <td class="paramname"></td><td>)</td>
682 </div><div class="memdoc">
683 <p>The test case <b>WIFI_SocketSend</b> verifies the WiFi Driver <b>SocketSend</b> function: </p>
684 <div class="fragment"><div class="line">int32_t (*SocketSend) (int32_t socket, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, uint32_t len);</div>
685 </div><!-- fragment --><p>Stream socket test 1:</p>
687 <li>Create stream socket</li>
688 <li>Connect to server, blocking mode</li>
689 <li>Check function parameters</li>
690 <li>Send data, blocking mode</li>
691 <li>Close socket</li>
692 <li>Send again, closed socket</li>
694 <p>Stream socket test 2:</p>
696 <li>Create stream socket</li>
697 <li>Connect to server, blocking mode</li>
698 <li>Send ESC data, server disconnects</li>
699 <li>Send again, disconnected socket</li>
700 <li>Close socket</li>
702 <p>Stream socket test 3:</p>
704 <li>Create stream socket</li>
705 <li>Send data, created socket</li>
707 <li>Send data, bound socket</li>
708 <li>Start listening</li>
709 <li>Send data, listening socket</li>
710 <li>Close socket</li>
711 <li>Send again, closed socket </li>
716 <a class="anchor" id="gaffb006e3899ba780c3781af90bc1b009"></a>
717 <div class="memitem">
718 <div class="memproto">
719 <table class="memname">
721 <td class="memname">void WIFI_SocketSendTo </td>
723 <td class="paramtype">void </td>
724 <td class="paramname"></td><td>)</td>
728 </div><div class="memdoc">
729 <p>The test case <b>WIFI_SocketSend</b> verifies the WiFi Driver <b>SocketSendTo</b> function: </p>
730 <div class="fragment"><div class="line">int32_t (*SocketSendTo) (int32_t socket, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, uint32_t len, <span class="keyword">const</span> uint8_t *ip, uint32_t ip_len, uint16_t port);</div>
731 </div><!-- fragment --><p>Datagram socket test:</p>
733 <li>Create datagram socket</li>
734 <li>Check function parameters</li>
735 <li>Send data, blocking mode</li>
736 <li>Receive echo data, verify if the same</li>
737 <li>Close socket</li>
738 <li>Send again, closed socket </li>
743 <a class="anchor" id="ga92055f19013c830b2b793c601226d1ea"></a>
744 <div class="memitem">
745 <div class="memproto">
746 <table class="memname">
748 <td class="memname">void WIFI_SocketSetOpt </td>
750 <td class="paramtype">void </td>
751 <td class="paramname"></td><td>)</td>
755 </div><div class="memdoc">
756 <p>The test case <b>WIFI_SocketSetOpt</b> verifies the WiFi Driver <b>SocketSetOpt</b> function: </p>
757 <div class="fragment"><div class="line">int32_t (*SocketSetOpt) (int32_t socket, int32_t opt_id, <span class="keyword">const</span> <span class="keywordtype">void</span> *opt_val, uint32_t opt_len);</div>
758 </div><!-- fragment --><p>Stream socket test:</p>
760 <li>Create stream socket</li>
761 <li>Check function parameters</li>
762 <li>Set socket options</li>
763 <li>Close socket</li>
764 <li>Set socket option again, closed socket</li>
766 <p>Datagram socket test:</p>
768 <li>Create datagram socket</li>
769 <li>Set socket options</li>
770 <li>Close socket</li>
771 <li>Set socket option again, closed socket </li>
776 </div><!-- contents -->
777 </div><!-- doc-content -->
778 <!-- start footer part -->
779 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
781 <li class="footer">Generated on Fri Oct 4 2019 14:13:04 for CMSIS-Driver Validation by ARM Ltd. All rights reserved.
783 <a href="http://www.doxygen.org/index.html">
784 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6