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.4.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, connection rejected</li>
351 <li>Close socket</li>
353 <p>Stream socket test 3:</p>
355 <li>Create stream socket</li>
356 <li>Connect to server, non-responding or non-existent</li>
357 <li>Close socket</li>
359 <p>Stream socket test 4:</p>
361 <li>Create stream socket</li>
363 <li>Start listening</li>
364 <li>Connect to server, blocking mode</li>
365 <li>Close socket</li>
367 <p>Datagram socket test:</p>
369 <li>Create datagram socket</li>
371 <li>Check function parameters</li>
372 <li>Connect to server, enable address filtering</li>
373 <li>Connect to unspecified address, disable filtering</li>
374 <li>Close socket</li>
375 <li>Connect again, closed socket </li>
380 <a class="anchor" id="ga834712f8877f775e1f0f6e50960d72d9"></a>
381 <div class="memitem">
382 <div class="memproto">
383 <table class="memname">
385 <td class="memname">void WIFI_SocketCreate </td>
387 <td class="paramtype">void </td>
388 <td class="paramname"></td><td>)</td>
392 </div><div class="memdoc">
393 <p>The test case <b>WIFI_SocketCreate</b> verifies the WiFi Driver <b>SocketCreate</b> function: </p>
394 <div class="fragment"><div class="line">int32_t (*SocketCreate) (int32_t af, int32_t type, int32_t protocol);</div>
395 </div><!-- fragment --><p>Create socket test:</p>
397 <li>Check function parameters</li>
398 <li>Create multiple stream sockets</li>
399 <li>Gradually close stream sockets and create datagram sockets</li>
400 <li>Close datagram sockets </li>
405 <a class="anchor" id="gac7bb0143c5d023b3ca97ff8f480c9f8a"></a>
406 <div class="memitem">
407 <div class="memproto">
408 <table class="memname">
410 <td class="memname">void WIFI_SocketGetHostByName </td>
412 <td class="paramtype">void </td>
413 <td class="paramname"></td><td>)</td>
417 </div><div class="memdoc">
418 <p>The test case <b>WIFI_SocketGetHostByName</b> the WiFi Driver <b>SocketGetHostByName</b> function: </p>
419 <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>
420 </div><!-- fragment --><p>Function test:</p>
422 <li>Check function parameters</li>
423 <li>Resolve host</li>
424 <li>Resolve non-existent host</li>
426 <dl class="section note"><dt>Note</dt><dd>This test requires internet connectivity to DNS server. </dd></dl>
430 <a class="anchor" id="ga265967d39cd19c584c2c88a593c19c86"></a>
431 <div class="memitem">
432 <div class="memproto">
433 <table class="memname">
435 <td class="memname">void WIFI_SocketGetOpt </td>
437 <td class="paramtype">void </td>
438 <td class="paramname"></td><td>)</td>
442 </div><div class="memdoc">
443 <p>The test case <b>WIFI_SocketGetOpt</b> verifies the WiFi Driver <b>SocketGetOpt</b> function: </p>
444 <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>
445 </div><!-- fragment --><p>Stream socket test:</p>
447 <li>Create stream socket</li>
448 <li>Check function parameters</li>
449 <li>Get socket options</li>
450 <li>Close socket</li>
451 <li>Get socket options again, closed socket</li>
453 <p>Datagram socket test:</p>
455 <li>Create datagram socket</li>
456 <li>Get socket type</li>
457 <li>Close socket</li>
458 <li>Get socket type </li>
463 <a class="anchor" id="ga57a2dee261a673a4ee30180613869423"></a>
464 <div class="memitem">
465 <div class="memproto">
466 <table class="memname">
468 <td class="memname">void WIFI_SocketGetPeerName </td>
470 <td class="paramtype">void </td>
471 <td class="paramname"></td><td>)</td>
475 </div><div class="memdoc">
476 <p>The test case <b>WIFI_SocketGetPeerName</b> verifies the WiFi Driver <b>SocketGetPeerName</b> function: </p>
477 <div class="fragment"><div class="line">int32_t (*SocketGetPeerName) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
478 </div><!-- fragment --><p>Stream socket test 1:</p>
480 <li>Create stream socket</li>
481 <li>Connect to server, blocking mode</li>
482 <li>Check function parameters</li>
483 <li>Get peer name</li>
484 <li>Close socket</li>
485 <li>Get peer name, closed socket</li>
487 <p>Stream socket test 2:</p>
489 <li>Create stream socket</li>
490 <li>Get peer name, created socket</li>
492 <li>Get peer name, bound socket</li>
493 <li>Start listening</li>
494 <li>Get peer name, listening socket</li>
495 <li>Close socket</li>
497 <p>Datagram socket test:</p>
499 <li>Create datagram socket</li>
500 <li>Connect to server, enable packet filtering</li>
501 <li>Check function parameters</li>
502 <li>Get peer name</li>
503 <li>Close socket</li>
504 <li>Get peer name, closed socket </li>
509 <a class="anchor" id="ga94647417555c347e127d5dd35a3b00c9"></a>
510 <div class="memitem">
511 <div class="memproto">
512 <table class="memname">
514 <td class="memname">void WIFI_SocketGetSockName </td>
516 <td class="paramtype">void </td>
517 <td class="paramname"></td><td>)</td>
521 </div><div class="memdoc">
522 <p>The test case <b>WIFI_SocketGetSockName</b> verifies the WiFi Driver <b>SocketGetSockName</b> function: </p>
523 <div class="fragment"><div class="line">int32_t (*SocketGetSockName) (int32_t socket, uint8_t *ip, uint32_t *ip_len, uint16_t *port);</div>
524 </div><!-- fragment --><p>Stream socket test 1:</p>
526 <li>Create stream socket</li>
527 <li>Connect to server, blocking mode</li>
528 <li>Check function parameters</li>
529 <li>Get socket name</li>
530 <li>Close socket</li>
531 <li>Get socket name again, closed socket</li>
533 <p>Stream socket test 1:</p>
535 <li>Create stream socket</li>
536 <li>Get socket name, not bound</li>
538 <li>Get socket name, bound</li>
539 <li>Close socket</li>
541 <p>Datagram socket test 1:</p>
543 <li>Create datagram socket</li>
544 <li>Connect to server, enable packet filtering</li>
545 <li>Check function parameters</li>
546 <li>Get socket name</li>
547 <li>Close socket</li>
548 <li>Get socket name again, closed socket</li>
550 <p>Datagram socket test 1:</p>
552 <li>Create datagram socket</li>
553 <li>Get socket name, not bound</li>
555 <li>Get socket name, bound</li>
556 <li>Close socket </li>
561 <a class="anchor" id="ga49b46f7f6a66857c1dc15b12ed179264"></a>
562 <div class="memitem">
563 <div class="memproto">
564 <table class="memname">
566 <td class="memname">void WIFI_SocketListen </td>
568 <td class="paramtype">void </td>
569 <td class="paramname"></td><td>)</td>
573 </div><div class="memdoc">
574 <p>The test case <b>WIFI_SocketListen</b> verifies the WiFi Driver <b>SocketListen</b> function: </p>
575 <div class="fragment"><div class="line">int32_t (*SocketListen) (int32_t socket, int32_t backlog);</div>
576 </div><!-- fragment --><p>Stream socket test 1:</p>
578 <li>Create stream socket</li>
580 <li>Check function parameters</li>
581 <li>Start listening</li>
582 <li>Start listening 2nd time</li>
583 <li>Close socket</li>
585 <p>Stream socket test 2:</p>
587 <li>Create stream socket</li>
588 <li>Start listening, unbound socket</li>
589 <li>Close socket</li>
590 <li>Start listening, closed socket</li>
592 <p>Datagram socket test:</p>
594 <li>Create datagram socket</li>
596 <li>Start listening</li>
597 <li>Close socket </li>
602 <a class="anchor" id="gaa80eb04e62ae8883e9feace380ef85b2"></a>
603 <div class="memitem">
604 <div class="memproto">
605 <table class="memname">
607 <td class="memname">void WIFI_SocketRecv </td>
609 <td class="paramtype">void </td>
610 <td class="paramname"></td><td>)</td>
614 </div><div class="memdoc">
615 <p>Test case <b>WIFI_SocketRecv</b> verifies the WiFi Driver <b>SocketRecv</b> function: </p>
616 <div class="fragment"><div class="line">int32_t (*SocketRecv) (int32_t socket, <span class="keywordtype">void</span> *buf, uint32_t len);</div>
617 </div><!-- fragment --><p>Stream socket test 1:</p>
619 <li>Create stream socket</li>
620 <li>Connect to Chargen server</li>
621 <li>Check function parameters</li>
622 <li>Receive data in blocking mode</li>
623 <li>Close socket</li>
624 <li>Receive again, closed socket</li>
626 <p>Stream socket test 2:</p>
628 <li>Create stream socket</li>
629 <li>Receive data, created socket</li>
631 <li>Receive data, bound socket</li>
632 <li>Start listening</li>
633 <li>Receive data, listening socket</li>
634 <li>Close socket</li>
636 <p>Stream socket test 3:</p>
638 <li>Create stream socket</li>
639 <li>Connect to Discard server</li>
640 <li>Set receive timeout to 1 sec</li>
641 <li>Receive data, timeout expires</li>
642 <li>Close socket </li>
647 <a class="anchor" id="ga5b92075e23383e2cdfc08ba17b7930a1"></a>
648 <div class="memitem">
649 <div class="memproto">
650 <table class="memname">
652 <td class="memname">void WIFI_SocketRecvFrom </td>
654 <td class="paramtype">void </td>
655 <td class="paramname"></td><td>)</td>
659 </div><div class="memdoc">
660 <p>The test case <b>WIFI_SocketRecvFrom</b> verifies the WiFi Driver <b>SocketRecvFrom</b> function: </p>
661 <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>
662 </div><!-- fragment --><p>Datagram socket test 1:</p>
664 <li>Create datagram socket</li>
665 <li>Connect to Chargen server</li>
666 <li>Check function parameters</li>
667 <li>Receive data in blocking mode</li>
668 <li>Set receive timeout to 1 sec</li>
669 <li>Receive again, timeout expires</li>
670 <li>Close socket</li>
671 <li>Receive again, closed socket </li>
676 <a class="anchor" id="gab3a6004025b524ac7564276397bf5d5e"></a>
677 <div class="memitem">
678 <div class="memproto">
679 <table class="memname">
681 <td class="memname">void WIFI_SocketSend </td>
683 <td class="paramtype">void </td>
684 <td class="paramname"></td><td>)</td>
688 </div><div class="memdoc">
689 <p>The test case <b>WIFI_SocketSend</b> verifies the WiFi Driver <b>SocketSend</b> function: </p>
690 <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>
691 </div><!-- fragment --><p>Stream socket test 1:</p>
693 <li>Create stream socket</li>
694 <li>Connect to server, blocking mode</li>
695 <li>Check function parameters</li>
696 <li>Send data, blocking mode</li>
697 <li>Close socket</li>
698 <li>Send again, closed socket</li>
700 <p>Stream socket test 2:</p>
702 <li>Create stream socket</li>
703 <li>Connect to server, blocking mode</li>
704 <li>Send ESC data, server disconnects</li>
705 <li>Send again, disconnected socket</li>
706 <li>Close socket</li>
708 <p>Stream socket test 3:</p>
710 <li>Create stream socket</li>
711 <li>Send data, created socket</li>
713 <li>Send data, bound socket</li>
714 <li>Start listening</li>
715 <li>Send data, listening socket</li>
716 <li>Close socket</li>
717 <li>Send again, closed socket </li>
722 <a class="anchor" id="gaffb006e3899ba780c3781af90bc1b009"></a>
723 <div class="memitem">
724 <div class="memproto">
725 <table class="memname">
727 <td class="memname">void WIFI_SocketSendTo </td>
729 <td class="paramtype">void </td>
730 <td class="paramname"></td><td>)</td>
734 </div><div class="memdoc">
735 <p>The test case <b>WIFI_SocketSend</b> verifies the WiFi Driver <b>SocketSendTo</b> function: </p>
736 <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>
737 </div><!-- fragment --><p>Datagram socket test:</p>
739 <li>Create datagram socket</li>
740 <li>Check function parameters</li>
741 <li>Send data, blocking mode</li>
742 <li>Receive echo data, verify if the same</li>
743 <li>Close socket</li>
744 <li>Send again, closed socket </li>
749 <a class="anchor" id="ga92055f19013c830b2b793c601226d1ea"></a>
750 <div class="memitem">
751 <div class="memproto">
752 <table class="memname">
754 <td class="memname">void WIFI_SocketSetOpt </td>
756 <td class="paramtype">void </td>
757 <td class="paramname"></td><td>)</td>
761 </div><div class="memdoc">
762 <p>The test case <b>WIFI_SocketSetOpt</b> verifies the WiFi Driver <b>SocketSetOpt</b> function: </p>
763 <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>
764 </div><!-- fragment --><p>Stream socket test:</p>
766 <li>Create stream socket</li>
767 <li>Check function parameters</li>
768 <li>Set socket options</li>
769 <li>Close socket</li>
770 <li>Set socket option again, closed socket</li>
772 <p>Datagram socket test:</p>
774 <li>Create datagram socket</li>
775 <li>Set socket options</li>
776 <li>Close socket</li>
777 <li>Set socket option again, closed socket </li>
782 </div><!-- contents -->
783 </div><!-- doc-content -->
784 <!-- start footer part -->
785 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
787 <li class="footer">Generated on Mon Dec 2 2019 12:02:23 for CMSIS-Driver Validation by ARM Ltd. All rights reserved.
789 <a href="http://www.doxygen.org/index.html">
790 <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6