libctru/uds_8h.html
2024-11-03 20:36:34 +00:00

1366 lines
84 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libctru: include/3ds/services/uds.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">libctru
&#160;<span id="projectnumber">v2.4.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_d475325f6a9fe3bfc3a495c72a9e475e.html">3ds</a></li><li class="navelem"><a class="el" href="dir_0e005207343684f6967052d1f51a7e66.html">services</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">uds.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>UDS(NWMUDS) local-WLAN service.
<a href="#details">More...</a></p>
<p><a href="uds_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structudsNodeInfo.html">udsNodeInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Node info struct. <a href="structudsNodeInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structudsConnectionStatus.html">udsConnectionStatus</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connection status struct. <a href="structudsConnectionStatus.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Network struct stored as big-endian. <a href="structudsNetworkStruct.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structudsBindContext.html">udsBindContext</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnwmScanInputStruct.html">nwmScanInputStruct</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">General NWM input structure used for AP scanning. <a href="structnwmScanInputStruct.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnwmBeaconDataReplyHeader.html">nwmBeaconDataReplyHeader</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">General NWM output structure from AP scanning. <a href="structnwmBeaconDataReplyHeader.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnwmBeaconDataReplyEntry.html">nwmBeaconDataReplyEntry</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">General NWM output structure from AP scanning, for each entry. <a href="structnwmBeaconDataReplyEntry.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structudsNetworkScanInfo.html">udsNetworkScanInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Output structure generated from host scanning output. <a href="structudsNetworkScanInfo.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:af550f39aed337de1ec8f99823c3dc886"><td class="memItemLeft" align="right" valign="top"><a id="af550f39aed337de1ec8f99823c3dc886"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#af550f39aed337de1ec8f99823c3dc886">UDS_MAXNODES</a>&#160;&#160;&#160;16</td></tr>
<tr class="memdesc:af550f39aed337de1ec8f99823c3dc886"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of nodes(devices) that can be connected to the network. <br /></td></tr>
<tr class="separator:af550f39aed337de1ec8f99823c3dc886"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0716197ea3205d2c2ad802fd39d64b53"><td class="memItemLeft" align="right" valign="top"><a id="a0716197ea3205d2c2ad802fd39d64b53"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a0716197ea3205d2c2ad802fd39d64b53">UDS_BROADCAST_NETWORKNODEID</a>&#160;&#160;&#160;0xFFFF</td></tr>
<tr class="memdesc:a0716197ea3205d2c2ad802fd39d64b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Broadcast value for NetworkNodeID / alias for all NetworkNodeIDs. <br /></td></tr>
<tr class="separator:a0716197ea3205d2c2ad802fd39d64b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a965ac901ed9240377d8fe2e0f223b033"><td class="memItemLeft" align="right" valign="top"><a id="a965ac901ed9240377d8fe2e0f223b033"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a965ac901ed9240377d8fe2e0f223b033">UDS_HOST_NETWORKNODEID</a>&#160;&#160;&#160;0x1</td></tr>
<tr class="memdesc:a965ac901ed9240377d8fe2e0f223b033"><td class="mdescLeft">&#160;</td><td class="mdescRight">NetworkNodeID for the host(the first node). <br /></td></tr>
<tr class="separator:a965ac901ed9240377d8fe2e0f223b033"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa762c12085c0caf4cc3c380621a66b3"><td class="memItemLeft" align="right" valign="top"><a id="aaa762c12085c0caf4cc3c380621a66b3"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#aaa762c12085c0caf4cc3c380621a66b3">UDS_DEFAULT_RECVBUFSIZE</a>&#160;&#160;&#160;0x2E30</td></tr>
<tr class="memdesc:aaa762c12085c0caf4cc3c380621a66b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default recv_buffer_size that can be used for <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a> input / code which uses <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a> internally. <br /></td></tr>
<tr class="separator:aaa762c12085c0caf4cc3c380621a66b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a925d4cb65dc18dace5cfbd4115149a70"><td class="memItemLeft" align="right" valign="top"><a id="a925d4cb65dc18dace5cfbd4115149a70"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a925d4cb65dc18dace5cfbd4115149a70">UDS_DATAFRAME_MAXSIZE</a>&#160;&#160;&#160;0x5C6</td></tr>
<tr class="memdesc:a925d4cb65dc18dace5cfbd4115149a70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Max size of user data-frames. <br /></td></tr>
<tr class="separator:a925d4cb65dc18dace5cfbd4115149a70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95b9889070392e10ed0ce8eaa4680148"><td class="memItemLeft" align="right" valign="top"><a id="a95b9889070392e10ed0ce8eaa4680148"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a95b9889070392e10ed0ce8eaa4680148">UDS_CHECK_SENDTO_FATALERROR</a>(x)&#160;&#160;&#160;(<a class="el" href="result_8h.html#a0040b35f38c0d2fef6766d5b284fefc7">R_FAILED</a>(x) &amp;&amp; x!=0xC86113F0)</td></tr>
<tr class="memdesc:a95b9889070392e10ed0ce8eaa4680148"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether a fatal udsSendTo error occured(some error(s) from <a class="el" href="uds_8h.html#a2609972c60a77f6cfbd85c4caab93c70" title="Sends data over the network.">udsSendTo()</a> can be ignored, but the frame won't be sent when that happens). <br /></td></tr>
<tr class="separator:a95b9889070392e10ed0ce8eaa4680148"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:aeb8e1c282570d629a6b603a94a4650d6"><td class="memItemLeft" align="right" valign="top"><a id="aeb8e1c282570d629a6b603a94a4650d6"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<b>UDSNETATTR_DisableConnectSpectators</b> = BIT(0)
, <br />
&#160;&#160;<b>UDSNETATTR_DisableConnectClients</b> = BIT(1)
, <br />
&#160;&#160;<b>UDSNETATTR_x4</b> = BIT(2)
, <br />
&#160;&#160;<b>UDSNETATTR_Default</b> = BIT(15)
<br />
}</td></tr>
<tr class="separator:aeb8e1c282570d629a6b603a94a4650d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a109bfaad92bd6d348dab484aec11edbb"><td class="memItemLeft" align="right" valign="top"><a id="a109bfaad92bd6d348dab484aec11edbb"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<b>UDS_SENDFLAG_Default</b> = BIT(0)
, <br />
&#160;&#160;<b>UDS_SENDFLAG_Broadcast</b> = BIT(1)
<br />
}</td></tr>
<tr class="separator:a109bfaad92bd6d348dab484aec11edbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f103995e27e71590533da69c673b9a0"><td class="memItemLeft" align="right" valign="top"><a id="a8f103995e27e71590533da69c673b9a0"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>udsConnectionType</b> { <br />
&#160;&#160;<b>UDSCONTYPE_Client</b> = 0x1
, <br />
&#160;&#160;<b>UDSCONTYPE_Spectator</b> = 0x2
<br />
}</td></tr>
<tr class="separator:a8f103995e27e71590533da69c673b9a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a7b9dd66fad0387daa7cc1a0803093161"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a7b9dd66fad0387daa7cc1a0803093161">udsInit</a> (size_t sharedmem_size, const char *username)</td></tr>
<tr class="memdesc:a7b9dd66fad0387daa7cc1a0803093161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes UDS. <a href="uds_8h.html#a7b9dd66fad0387daa7cc1a0803093161">More...</a><br /></td></tr>
<tr class="separator:a7b9dd66fad0387daa7cc1a0803093161"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c4ec11a4ba9281c96528fdd2340e169"><td class="memItemLeft" align="right" valign="top"><a id="a0c4ec11a4ba9281c96528fdd2340e169"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a0c4ec11a4ba9281c96528fdd2340e169">udsExit</a> (void)</td></tr>
<tr class="memdesc:a0c4ec11a4ba9281c96528fdd2340e169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exits UDS. <br /></td></tr>
<tr class="separator:a0c4ec11a4ba9281c96528fdd2340e169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbd391642998a00ba323d2b1cf2c3987"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#adbd391642998a00ba323d2b1cf2c3987">udsGenerateNodeInfo</a> (<a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *nodeinfo, const char *username)</td></tr>
<tr class="memdesc:adbd391642998a00ba323d2b1cf2c3987"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a NodeInfo struct with data loaded from system-config. <a href="uds_8h.html#adbd391642998a00ba323d2b1cf2c3987">More...</a><br /></td></tr>
<tr class="separator:adbd391642998a00ba323d2b1cf2c3987"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1a1a204b83acf4615b1d2a870681272"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#aa1a1a204b83acf4615b1d2a870681272">udsGetNodeInfoUsername</a> (const <a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *nodeinfo, char *username)</td></tr>
<tr class="memdesc:aa1a1a204b83acf4615b1d2a870681272"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads the UTF-16 username stored in the input NodeInfo struct, converted to UTF-8. <a href="uds_8h.html#aa1a1a204b83acf4615b1d2a870681272">More...</a><br /></td></tr>
<tr class="separator:aa1a1a204b83acf4615b1d2a870681272"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d326aaf8ff13eb9041730bf86374fe0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a8d326aaf8ff13eb9041730bf86374fe0">udsCheckNodeInfoInitialized</a> (const <a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *nodeinfo)</td></tr>
<tr class="memdesc:a8d326aaf8ff13eb9041730bf86374fe0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a NodeInfo struct was initialized by NWM-module(not any output from <a class="el" href="uds_8h.html#adbd391642998a00ba323d2b1cf2c3987" title="Generates a NodeInfo struct with data loaded from system-config.">udsGenerateNodeInfo()</a>). <a href="uds_8h.html#a8d326aaf8ff13eb9041730bf86374fe0">More...</a><br /></td></tr>
<tr class="separator:a8d326aaf8ff13eb9041730bf86374fe0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2bc9475be5af0d5e1ee3a5f98855b89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#ae2bc9475be5af0d5e1ee3a5f98855b89">udsGenerateDefaultNetworkStruct</a> (<a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *network, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> wlancommID, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> id8, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> max_nodes)</td></tr>
<tr class="memdesc:ae2bc9475be5af0d5e1ee3a5f98855b89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a default NetworkStruct for creating networks. <a href="uds_8h.html#ae2bc9475be5af0d5e1ee3a5f98855b89">More...</a><br /></td></tr>
<tr class="separator:ae2bc9475be5af0d5e1ee3a5f98855b89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2af058b5911c1755a1d0a486962048c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a2af058b5911c1755a1d0a486962048c2">udsScanBeacons</a> (void *outbuf, size_t maxsize, <a class="el" href="structudsNetworkScanInfo.html">udsNetworkScanInfo</a> **networks, size_t *total_networks, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> wlancommID, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> id8, const <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> *host_macaddress, bool connected)</td></tr>
<tr class="memdesc:a2af058b5911c1755a1d0a486962048c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scans for networks via beacon-scanning. <a href="uds_8h.html#a2af058b5911c1755a1d0a486962048c2">More...</a><br /></td></tr>
<tr class="separator:a2af058b5911c1755a1d0a486962048c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d31b5879de5cec14eff252093d1c88d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a6d31b5879de5cec14eff252093d1c88d">udsSetApplicationData</a> (const void *buf, size_t size)</td></tr>
<tr class="memdesc:a6d31b5879de5cec14eff252093d1c88d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used by the host to set the appdata contained in the broadcasted beacons. <a href="uds_8h.html#a6d31b5879de5cec14eff252093d1c88d">More...</a><br /></td></tr>
<tr class="separator:a6d31b5879de5cec14eff252093d1c88d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa10484f4b741649b48633efafdfb8e55"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#aa10484f4b741649b48633efafdfb8e55">udsGetApplicationData</a> (void *buf, size_t size, size_t *actual_size)</td></tr>
<tr class="memdesc:aa10484f4b741649b48633efafdfb8e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used while on a network(host/client) to get the appdata from the current beacon. <a href="uds_8h.html#aa10484f4b741649b48633efafdfb8e55">More...</a><br /></td></tr>
<tr class="separator:aa10484f4b741649b48633efafdfb8e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3ffe31c0e34aba040548dc56abb001d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#ab3ffe31c0e34aba040548dc56abb001d">udsGetNetworkStructApplicationData</a> (const <a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *network, void *buf, size_t size, size_t *actual_size)</td></tr>
<tr class="memdesc:ab3ffe31c0e34aba040548dc56abb001d"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used with a NetworkStruct, from <a class="el" href="uds_8h.html#a2af058b5911c1755a1d0a486962048c2" title="Scans for networks via beacon-scanning.">udsScanBeacons()</a> mainly, for getting the appdata. <a href="uds_8h.html#ab3ffe31c0e34aba040548dc56abb001d">More...</a><br /></td></tr>
<tr class="separator:ab3ffe31c0e34aba040548dc56abb001d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ef6ef86df7e0bd4c13441559b376dd8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8">udsBind</a> (<a class="el" href="structudsBindContext.html">udsBindContext</a> *bindcontext, <a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> NetworkNodeID, bool spectator, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> data_channel, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> recv_buffer_size)</td></tr>
<tr class="memdesc:a2ef6ef86df7e0bd4c13441559b376dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a bind. <a href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8">More...</a><br /></td></tr>
<tr class="separator:a2ef6ef86df7e0bd4c13441559b376dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0478019d97df6c5754cae576b2fecbbd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a0478019d97df6c5754cae576b2fecbbd">udsUnbind</a> (<a class="el" href="structudsBindContext.html">udsBindContext</a> *bindcontext)</td></tr>
<tr class="memdesc:a0478019d97df6c5754cae576b2fecbbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove a bind. <a href="uds_8h.html#a0478019d97df6c5754cae576b2fecbbd">More...</a><br /></td></tr>
<tr class="separator:a0478019d97df6c5754cae576b2fecbbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a705245e37134aba29af68c8e90b5df32"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a705245e37134aba29af68c8e90b5df32">udsWaitDataAvailable</a> (const <a class="el" href="structudsBindContext.html">udsBindContext</a> *bindcontext, bool nextEvent, bool wait)</td></tr>
<tr class="memdesc:a705245e37134aba29af68c8e90b5df32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for the bind event to occur, or checks if the event was signaled. <a href="uds_8h.html#a705245e37134aba29af68c8e90b5df32">More...</a><br /></td></tr>
<tr class="separator:a705245e37134aba29af68c8e90b5df32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15464b1fc2ce4897f352001b59b40597"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a15464b1fc2ce4897f352001b59b40597">udsPullPacket</a> (const <a class="el" href="structudsBindContext.html">udsBindContext</a> *bindcontext, void *buf, size_t size, size_t *actual_size, <a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> *src_NetworkNodeID)</td></tr>
<tr class="memdesc:a15464b1fc2ce4897f352001b59b40597"><td class="mdescLeft">&#160;</td><td class="mdescRight">Receives data over the network. <a href="uds_8h.html#a15464b1fc2ce4897f352001b59b40597">More...</a><br /></td></tr>
<tr class="separator:a15464b1fc2ce4897f352001b59b40597"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2609972c60a77f6cfbd85c4caab93c70"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a2609972c60a77f6cfbd85c4caab93c70">udsSendTo</a> (<a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> dst_NetworkNodeID, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> data_channel, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> flags, const void *buf, size_t size)</td></tr>
<tr class="memdesc:a2609972c60a77f6cfbd85c4caab93c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends data over the network. <a href="uds_8h.html#a2609972c60a77f6cfbd85c4caab93c70">More...</a><br /></td></tr>
<tr class="separator:a2609972c60a77f6cfbd85c4caab93c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a682ad1bee0b482a496d03a6d88ec5c0c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a682ad1bee0b482a496d03a6d88ec5c0c">udsGetChannel</a> (<a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> *channel)</td></tr>
<tr class="memdesc:a682ad1bee0b482a496d03a6d88ec5c0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the wifi channel currently being used. <a href="uds_8h.html#a682ad1bee0b482a496d03a6d88ec5c0c">More...</a><br /></td></tr>
<tr class="separator:a682ad1bee0b482a496d03a6d88ec5c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1975ed5bb92b1a1c87de5bfb41588847"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a1975ed5bb92b1a1c87de5bfb41588847">udsCreateNetwork</a> (const <a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *network, const void *passphrase, size_t passphrase_size, <a class="el" href="structudsBindContext.html">udsBindContext</a> *context, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> data_channel, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> recv_buffer_size)</td></tr>
<tr class="memdesc:a1975ed5bb92b1a1c87de5bfb41588847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Starts hosting a new network. <a href="uds_8h.html#a1975ed5bb92b1a1c87de5bfb41588847">More...</a><br /></td></tr>
<tr class="separator:a1975ed5bb92b1a1c87de5bfb41588847"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a667dabaed66dd32770a6ede4fd818019"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a667dabaed66dd32770a6ede4fd818019">udsConnectNetwork</a> (const <a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *network, const void *passphrase, size_t passphrase_size, <a class="el" href="structudsBindContext.html">udsBindContext</a> *context, <a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> recv_NetworkNodeID, udsConnectionType connection_type, <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> data_channel, <a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a> recv_buffer_size)</td></tr>
<tr class="memdesc:a667dabaed66dd32770a6ede4fd818019"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect to a network. <a href="uds_8h.html#a667dabaed66dd32770a6ede4fd818019">More...</a><br /></td></tr>
<tr class="separator:a667dabaed66dd32770a6ede4fd818019"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44092fac3eec0cb9402fd903dc2fff81"><td class="memItemLeft" align="right" valign="top"><a id="a44092fac3eec0cb9402fd903dc2fff81"></a>
<a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a44092fac3eec0cb9402fd903dc2fff81">udsDestroyNetwork</a> (void)</td></tr>
<tr class="memdesc:a44092fac3eec0cb9402fd903dc2fff81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop hosting the network. <br /></td></tr>
<tr class="separator:a44092fac3eec0cb9402fd903dc2fff81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a300ee4358ee07e1b08dea6e1908e72a6"><td class="memItemLeft" align="right" valign="top"><a id="a300ee4358ee07e1b08dea6e1908e72a6"></a>
<a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a300ee4358ee07e1b08dea6e1908e72a6">udsDisconnectNetwork</a> (void)</td></tr>
<tr class="memdesc:a300ee4358ee07e1b08dea6e1908e72a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disconnect this client device from the network. <br /></td></tr>
<tr class="separator:a300ee4358ee07e1b08dea6e1908e72a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb11e1259a6f58938f61dc4109554b06"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#acb11e1259a6f58938f61dc4109554b06">udsEjectClient</a> (<a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> NetworkNodeID)</td></tr>
<tr class="memdesc:acb11e1259a6f58938f61dc4109554b06"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used by the host to force-disconnect client(s). <a href="uds_8h.html#acb11e1259a6f58938f61dc4109554b06">More...</a><br /></td></tr>
<tr class="separator:acb11e1259a6f58938f61dc4109554b06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59af3bb7c72312bd5d54ed1b03f9764f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a59af3bb7c72312bd5d54ed1b03f9764f">udsEjectSpectator</a> (void)</td></tr>
<tr class="memdesc:a59af3bb7c72312bd5d54ed1b03f9764f"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used by the host to force-disconnect the spectators. <a href="uds_8h.html#a59af3bb7c72312bd5d54ed1b03f9764f">More...</a><br /></td></tr>
<tr class="separator:a59af3bb7c72312bd5d54ed1b03f9764f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adffcca2461ecc16db6717442f0a74de4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#adffcca2461ecc16db6717442f0a74de4">udsUpdateNetworkAttribute</a> (<a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> bitmask, bool flag)</td></tr>
<tr class="memdesc:adffcca2461ecc16db6717442f0a74de4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This can be used by the host to update the network attributes. <a href="uds_8h.html#adffcca2461ecc16db6717442f0a74de4">More...</a><br /></td></tr>
<tr class="separator:adffcca2461ecc16db6717442f0a74de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a579487b86069a0a066bf6973f3d94dd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a579487b86069a0a066bf6973f3d94dd7">udsSetNewConnectionsBlocked</a> (bool block, bool clients, bool flag)</td></tr>
<tr class="memdesc:a579487b86069a0a066bf6973f3d94dd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">This uses <a class="el" href="uds_8h.html#adffcca2461ecc16db6717442f0a74de4" title="This can be used by the host to update the network attributes.">udsUpdateNetworkAttribute()</a> for (un)blocking new connections to this host. <a href="uds_8h.html#a579487b86069a0a066bf6973f3d94dd7">More...</a><br /></td></tr>
<tr class="separator:a579487b86069a0a066bf6973f3d94dd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a715815015bb8ddf709d3f85553e8ae4a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a715815015bb8ddf709d3f85553e8ae4a">udsAllowSpectators</a> (void)</td></tr>
<tr class="memdesc:a715815015bb8ddf709d3f85553e8ae4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">This uses <a class="el" href="uds_8h.html#adffcca2461ecc16db6717442f0a74de4" title="This can be used by the host to update the network attributes.">udsUpdateNetworkAttribute()</a> for unblocking new spectator connections to this host. <a href="uds_8h.html#a715815015bb8ddf709d3f85553e8ae4a">More...</a><br /></td></tr>
<tr class="separator:a715815015bb8ddf709d3f85553e8ae4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fdd55dbeca432e2ad83dccc203d6de4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a7fdd55dbeca432e2ad83dccc203d6de4">udsGetConnectionStatus</a> (<a class="el" href="structudsConnectionStatus.html">udsConnectionStatus</a> *output)</td></tr>
<tr class="memdesc:a7fdd55dbeca432e2ad83dccc203d6de4"><td class="mdescLeft">&#160;</td><td class="mdescRight">This loads the current ConnectionStatus struct. <a href="uds_8h.html#a7fdd55dbeca432e2ad83dccc203d6de4">More...</a><br /></td></tr>
<tr class="separator:a7fdd55dbeca432e2ad83dccc203d6de4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3e5c7256539d252195695c5503d64255"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a3e5c7256539d252195695c5503d64255">udsWaitConnectionStatusEvent</a> (bool nextEvent, bool wait)</td></tr>
<tr class="memdesc:a3e5c7256539d252195695c5503d64255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for the ConnectionStatus event to occur, or checks if the event was signaled. <a href="uds_8h.html#a3e5c7256539d252195695c5503d64255">More...</a><br /></td></tr>
<tr class="separator:a3e5c7256539d252195695c5503d64255"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96d9f0e9574e21527b4f258b4a0f54ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="uds_8h.html#a96d9f0e9574e21527b4f258b4a0f54ee">udsGetNodeInformation</a> (<a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> NetworkNodeID, <a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *output)</td></tr>
<tr class="memdesc:a96d9f0e9574e21527b4f258b4a0f54ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">This loads a NodeInfo struct for the specified NetworkNodeID. <a href="uds_8h.html#a96d9f0e9574e21527b4f258b4a0f54ee">More...</a><br /></td></tr>
<tr class="separator:a96d9f0e9574e21527b4f258b4a0f54ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>UDS(NWMUDS) local-WLAN service. </p>
<p><a href="https://3dbrew.org/wiki/NWM_Services">https://3dbrew.org/wiki/NWM_Services</a> </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a715815015bb8ddf709d3f85553e8ae4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a715815015bb8ddf709d3f85553e8ae4a">&#9670;&nbsp;</a></span>udsAllowSpectators()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsAllowSpectators </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This uses <a class="el" href="uds_8h.html#adffcca2461ecc16db6717442f0a74de4" title="This can be used by the host to update the network attributes.">udsUpdateNetworkAttribute()</a> for unblocking new spectator connections to this host. </p>
<p>See <a class="el" href="uds_8h.html#a59af3bb7c72312bd5d54ed1b03f9764f" title="This can be used by the host to force-disconnect the spectators.">udsEjectSpectator()</a> for blocking new spectators. </p>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a56">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a2ef6ef86df7e0bd4c13441559b376dd8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ef6ef86df7e0bd4c13441559b376dd8">&#9670;&nbsp;</a></span>udsBind()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsBind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structudsBindContext.html">udsBindContext</a> *&#160;</td>
<td class="paramname"><em>bindcontext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>&#160;</td>
<td class="paramname"><em>NetworkNodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>spectator</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>data_channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>recv_buffer_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a bind. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bindcontext</td><td>The output bind context. </td></tr>
<tr><td class="paramname">NetworkNodeID</td><td>This is the NetworkNodeID which this bind can receive data from. </td></tr>
<tr><td class="paramname">spectator</td><td>False for a regular bind, true for a spectator. </td></tr>
<tr><td class="paramname">data_channel</td><td>This is an arbitrary value to use for data-frame filtering. This bind will only receive data frames which contain a matching data_channel value, which was specified by <a class="el" href="uds_8h.html#a2609972c60a77f6cfbd85c4caab93c70" title="Sends data over the network.">udsSendTo()</a>. The data_channel must be non-zero. </td></tr>
<tr><td class="paramname">recv_buffer_size</td><td>Size of the buffer under sharedmem used for temporarily storing received data-frames which are then loaded by <a class="el" href="uds_8h.html#a15464b1fc2ce4897f352001b59b40597" title="Receives data over the network.">udsPullPacket()</a>. The system requires this to be &gt;=0x5F4. UDS_DEFAULT_RECVBUFSIZE can be used for this. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8d326aaf8ff13eb9041730bf86374fe0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d326aaf8ff13eb9041730bf86374fe0">&#9670;&nbsp;</a></span>udsCheckNodeInfoInitialized()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool udsCheckNodeInfoInitialized </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *&#160;</td>
<td class="paramname"><em>nodeinfo</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether a NodeInfo struct was initialized by NWM-module(not any output from <a class="el" href="uds_8h.html#adbd391642998a00ba323d2b1cf2c3987" title="Generates a NodeInfo struct with data loaded from system-config.">udsGenerateNodeInfo()</a>). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">nodeinfo</td><td>Input NodeInfo struct. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a19">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a667dabaed66dd32770a6ede4fd818019"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a667dabaed66dd32770a6ede4fd818019">&#9670;&nbsp;</a></span>udsConnectNetwork()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsConnectNetwork </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *&#160;</td>
<td class="paramname"><em>network</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>passphrase</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>passphrase_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structudsBindContext.html">udsBindContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>&#160;</td>
<td class="paramname"><em>recv_NetworkNodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">udsConnectionType&#160;</td>
<td class="paramname"><em>connection_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>data_channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>recv_buffer_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Connect to a network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">network</td><td>The NetworkStruct, you can use <a class="el" href="uds_8h.html#a2af058b5911c1755a1d0a486962048c2" title="Scans for networks via beacon-scanning.">udsScanBeacons()</a> for this. </td></tr>
<tr><td class="paramname">passphrase</td><td>Raw input passphrase buffer. </td></tr>
<tr><td class="paramname">passphrase_size</td><td>Size of the passphrase buffer. </td></tr>
<tr><td class="paramname">context</td><td>Optional output bind context which will be created for this host. </td></tr>
<tr><td class="paramname">recv_NetworkNodeID</td><td>This is the NetworkNodeID passed to <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a> internally. </td></tr>
<tr><td class="paramname">connection_type</td><td>Type of connection, see the udsConnectionType enum values. </td></tr>
<tr><td class="paramname">data_channel</td><td>This is the data_channel value which will be passed to <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a> internally. </td></tr>
<tr><td class="paramname">recv_buffer_size</td><td>This is the recv_buffer_size value which will be passed to <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a> internally. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a26">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a1975ed5bb92b1a1c87de5bfb41588847"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1975ed5bb92b1a1c87de5bfb41588847">&#9670;&nbsp;</a></span>udsCreateNetwork()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsCreateNetwork </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *&#160;</td>
<td class="paramname"><em>network</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>passphrase</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>passphrase_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structudsBindContext.html">udsBindContext</a> *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>data_channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>recv_buffer_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Starts hosting a new network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">network</td><td>The NetworkStruct, you can use <a class="el" href="uds_8h.html#ae2bc9475be5af0d5e1ee3a5f98855b89" title="Generates a default NetworkStruct for creating networks.">udsGenerateDefaultNetworkStruct()</a> for generating this. </td></tr>
<tr><td class="paramname">passphrase</td><td>Raw input passphrase buffer. </td></tr>
<tr><td class="paramname">passphrase_size</td><td>Size of the passphrase buffer. </td></tr>
<tr><td class="paramname">context</td><td>Optional output bind context which will be created for this host, with NetworkNodeID=UDS_BROADCAST_NETWORKNODEID. </td></tr>
<tr><td class="paramname">data_channel</td><td>This is the data_channel value which will be passed to <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a> internally. </td></tr>
<tr><td class="paramname">recv_buffer_size</td><td>This is the recv_buffer_size value which will be passed to <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a> internally. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a33">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="acb11e1259a6f58938f61dc4109554b06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb11e1259a6f58938f61dc4109554b06">&#9670;&nbsp;</a></span>udsEjectClient()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsEjectClient </td>
<td>(</td>
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>&#160;</td>
<td class="paramname"><em>NetworkNodeID</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This can be used by the host to force-disconnect client(s). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">NetworkNodeID</td><td>Target NetworkNodeID. UDS_BROADCAST_NETWORKNODEID can be used to disconnect all clients. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a59af3bb7c72312bd5d54ed1b03f9764f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59af3bb7c72312bd5d54ed1b03f9764f">&#9670;&nbsp;</a></span>udsEjectSpectator()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsEjectSpectator </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This can be used by the host to force-disconnect the spectators. </p>
<p>Afterwards new spectators will not be allowed to connect until <a class="el" href="uds_8h.html#a715815015bb8ddf709d3f85553e8ae4a" title="This uses udsUpdateNetworkAttribute() for unblocking new spectator connections to this host.">udsAllowSpectators()</a> is used. </p>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a55">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="ae2bc9475be5af0d5e1ee3a5f98855b89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2bc9475be5af0d5e1ee3a5f98855b89">&#9670;&nbsp;</a></span>udsGenerateDefaultNetworkStruct()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void udsGenerateDefaultNetworkStruct </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *&#160;</td>
<td class="paramname"><em>network</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>wlancommID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>id8</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>max_nodes</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates a default NetworkStruct for creating networks. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">network</td><td>The output struct. </td></tr>
<tr><td class="paramname">wlancommID</td><td>Unique local-WLAN communications ID for each application. </td></tr>
<tr><td class="paramname">id8</td><td>Additional ID that can be used by the application for different types of networks. </td></tr>
<tr><td class="paramname">max_nodes</td><td>Maximum number of nodes(devices) that can be connected to the network, including the host. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a32">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="adbd391642998a00ba323d2b1cf2c3987"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbd391642998a00ba323d2b1cf2c3987">&#9670;&nbsp;</a></span>udsGenerateNodeInfo()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsGenerateNodeInfo </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *&#160;</td>
<td class="paramname"><em>nodeinfo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>username</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Generates a NodeInfo struct with data loaded from system-config. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">nodeinfo</td><td>Output NodeInfo struct. </td></tr>
<tr><td class="paramname">username</td><td>If set, this is the UTF-8 string to convert for use in the struct. Max len is 10 characters without NUL-terminator. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="aa10484f4b741649b48633efafdfb8e55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa10484f4b741649b48633efafdfb8e55">&#9670;&nbsp;</a></span>udsGetApplicationData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsGetApplicationData </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>actual_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This can be used while on a network(host/client) to get the appdata from the current beacon. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>Appdata buffer. </td></tr>
<tr><td class="paramname">size</td><td>Max size of the output buffer. </td></tr>
<tr><td class="paramname">actual_size</td><td>If set, the actual size of the appdata written into the buffer is stored here. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a29">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a682ad1bee0b482a496d03a6d88ec5c0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a682ad1bee0b482a496d03a6d88ec5c0c">&#9670;&nbsp;</a></span>udsGetChannel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsGetChannel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> *&#160;</td>
<td class="paramname"><em>channel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the wifi channel currently being used. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">channel</td><td>Output channel. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a28">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a7fdd55dbeca432e2ad83dccc203d6de4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fdd55dbeca432e2ad83dccc203d6de4">&#9670;&nbsp;</a></span>udsGetConnectionStatus()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsGetConnectionStatus </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structudsConnectionStatus.html">udsConnectionStatus</a> *&#160;</td>
<td class="paramname"><em>output</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This loads the current ConnectionStatus struct. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">output</td><td>Output ConnectionStatus struct. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a1">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="ab3ffe31c0e34aba040548dc56abb001d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3ffe31c0e34aba040548dc56abb001d">&#9670;&nbsp;</a></span>udsGetNetworkStructApplicationData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsGetNetworkStructApplicationData </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structudsNetworkStruct.html">udsNetworkStruct</a> *&#160;</td>
<td class="paramname"><em>network</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>actual_size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This can be used with a NetworkStruct, from <a class="el" href="uds_8h.html#a2af058b5911c1755a1d0a486962048c2" title="Scans for networks via beacon-scanning.">udsScanBeacons()</a> mainly, for getting the appdata. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>Appdata buffer. </td></tr>
<tr><td class="paramname">size</td><td>Max size of the output buffer. </td></tr>
<tr><td class="paramname">actual_size</td><td>If set, the actual size of the appdata written into the buffer is stored here. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a22">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a96d9f0e9574e21527b4f258b4a0f54ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96d9f0e9574e21527b4f258b4a0f54ee">&#9670;&nbsp;</a></span>udsGetNodeInformation()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsGetNodeInformation </td>
<td>(</td>
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>&#160;</td>
<td class="paramname"><em>NetworkNodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *&#160;</td>
<td class="paramname"><em>output</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This loads a NodeInfo struct for the specified NetworkNodeID. </p>
<p>The broadcast alias can't be used with this. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">NetworkNodeID</td><td>Target NetworkNodeID. </td></tr>
<tr><td class="paramname">output</td><td>Output NodeInfo struct. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a45">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="aa1a1a204b83acf4615b1d2a870681272"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1a1a204b83acf4615b1d2a870681272">&#9670;&nbsp;</a></span>udsGetNodeInfoUsername()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsGetNodeInfoUsername </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structudsNodeInfo.html">udsNodeInfo</a> *&#160;</td>
<td class="paramname"><em>nodeinfo</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>username</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Loads the UTF-16 username stored in the input NodeInfo struct, converted to UTF-8. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">nodeinfo</td><td>Input NodeInfo struct. </td></tr>
<tr><td class="paramname">username</td><td>This is the output UTF-8 string. Max len is 10 characters without NUL-terminator. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a21">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a7b9dd66fad0387daa7cc1a0803093161"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b9dd66fad0387daa7cc1a0803093161">&#9670;&nbsp;</a></span>udsInit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsInit </td>
<td>(</td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>sharedmem_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>username</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes UDS. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">sharedmem_size</td><td>This must be 0x1000-byte aligned. </td></tr>
<tr><td class="paramname">username</td><td>Optional custom UTF-8 username(converted to UTF-16 internally) that other nodes on the UDS network can use. If not set the username from system-config is used. Max len is 10 characters without NUL-terminator. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a60">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a15464b1fc2ce4897f352001b59b40597"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15464b1fc2ce4897f352001b59b40597">&#9670;&nbsp;</a></span>udsPullPacket()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsPullPacket </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structudsBindContext.html">udsBindContext</a> *&#160;</td>
<td class="paramname"><em>bindcontext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>actual_size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a> *&#160;</td>
<td class="paramname"><em>src_NetworkNodeID</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Receives data over the network. </p>
<p>This data is loaded from the recv_buffer setup by <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a>. When a node disconnects, this will still return data from that node until there's no more frames from that node in the recv_buffer. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bindcontext</td><td>Bind context. </td></tr>
<tr><td class="paramname">buf</td><td>Output receive buffer. </td></tr>
<tr><td class="paramname">size</td><td>Size of the buffer. </td></tr>
<tr><td class="paramname">actual_size</td><td>If set, the actual size written into the output buffer is stored here. This is zero when no data was received. </td></tr>
<tr><td class="paramname">src_NetworkNodeID</td><td>If set, the source NetworkNodeID is written here. This is zero when no data was received. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a43">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a2af058b5911c1755a1d0a486962048c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2af058b5911c1755a1d0a486962048c2">&#9670;&nbsp;</a></span>udsScanBeacons()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsScanBeacons </td>
<td>(</td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>outbuf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>maxsize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structudsNetworkScanInfo.html">udsNetworkScanInfo</a> **&#160;</td>
<td class="paramname"><em>networks</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&#160;</td>
<td class="paramname"><em>total_networks</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#afaa62991928fb9fb18ff0db62a040aba">u32</a>&#160;</td>
<td class="paramname"><em>wlancommID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>id8</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a> *&#160;</td>
<td class="paramname"><em>host_macaddress</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>connected</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Scans for networks via beacon-scanning. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">outbuf</td><td>Buffer which will be used by the beacon-scanning command and for the data parsing afterwards. Normally there's no need to use the contents of this buffer once this function returns. </td></tr>
<tr><td class="paramname">maxsize</td><td>Max size of the buffer. @Param networks Ptr where the allocated <a class="el" href="structudsNetworkScanInfo.html" title="Output structure generated from host scanning output.">udsNetworkScanInfo</a> array buffer is written. The allocsize is sizeof(udsNetworkScanInfo)*total_networks. @Param total_networks Total number of networks stored under the networks buffer. </td></tr>
<tr><td class="paramname">wlancommID</td><td>Unique local-WLAN communications ID for each application. </td></tr>
<tr><td class="paramname">id8</td><td>Additional ID that can be used by the application for different types of networks. </td></tr>
<tr><td class="paramname">host_macaddress</td><td>When set, this code will only return network info from the specified host MAC address. @connected When not connected to a network this <em>must</em> be false. When connected to a network this <em>must</em> be true. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a15">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a2609972c60a77f6cfbd85c4caab93c70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2609972c60a77f6cfbd85c4caab93c70">&#9670;&nbsp;</a></span>udsSendTo()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsSendTo </td>
<td>(</td>
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>&#160;</td>
<td class="paramname"><em>dst_NetworkNodeID</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>data_channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="types_8h.html#a92c50087ca0e64fa93fc59402c55f8ca">u8</a>&#160;</td>
<td class="paramname"><em>flags</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends data over the network. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">dst_NetworkNodeID</td><td>Destination NetworkNodeID. </td></tr>
<tr><td class="paramname">data_channel</td><td>See <a class="el" href="uds_8h.html#a2ef6ef86df7e0bd4c13441559b376dd8" title="Create a bind.">udsBind()</a>. </td></tr>
<tr><td class="paramname">flags</td><td>Send flags, see the UDS_SENDFLAG enum values. </td></tr>
<tr><td class="paramname">buf</td><td>Input send buffer. </td></tr>
<tr><td class="paramname">size</td><td>Size of the buffer. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a41">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a6d31b5879de5cec14eff252093d1c88d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d31b5879de5cec14eff252093d1c88d">&#9670;&nbsp;</a></span>udsSetApplicationData()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsSetApplicationData </td>
<td>(</td>
<td class="paramtype">const void *&#160;</td>
<td class="paramname"><em>buf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>size</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This can be used by the host to set the appdata contained in the broadcasted beacons. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buf</td><td>Appdata buffer. </td></tr>
<tr><td class="paramname">size</td><td>Size of the input appdata. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a34">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a579487b86069a0a066bf6973f3d94dd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a579487b86069a0a066bf6973f3d94dd7">&#9670;&nbsp;</a></span>udsSetNewConnectionsBlocked()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsSetNewConnectionsBlocked </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>block</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>clients</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>flag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This uses <a class="el" href="uds_8h.html#adffcca2461ecc16db6717442f0a74de4" title="This can be used by the host to update the network attributes.">udsUpdateNetworkAttribute()</a> for (un)blocking new connections to this host. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">block</td><td>When true, block the specified connection types(bitmask set). Otherwise allow them(bitmask clear). </td></tr>
<tr><td class="paramname">clients</td><td>When true, (un)block regular clients. </td></tr>
<tr><td class="paramname">flag</td><td>When true, update UDSNETATTR_x4. Normally this should be false. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a52">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a0478019d97df6c5754cae576b2fecbbd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0478019d97df6c5754cae576b2fecbbd">&#9670;&nbsp;</a></span>udsUnbind()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsUnbind </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structudsBindContext.html">udsBindContext</a> *&#160;</td>
<td class="paramname"><em>bindcontext</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove a bind. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bindcontext</td><td>The bind context. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a31">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="adffcca2461ecc16db6717442f0a74de4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adffcca2461ecc16db6717442f0a74de4">&#9670;&nbsp;</a></span>udsUpdateNetworkAttribute()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="types_8h.html#ac830bf5a4f2cf8273f61ab99a46cf163">Result</a> udsUpdateNetworkAttribute </td>
<td>(</td>
<td class="paramtype"><a class="el" href="types_8h.html#ace9d960e74685e2cd84b36132dbbf8aa">u16</a>&#160;</td>
<td class="paramname"><em>bitmask</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>flag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This can be used by the host to update the network attributes. </p>
<p>If bitmask 0x4 is clear in the input bitmask, this clears that bit in the value before actually writing the value into state. Normally you should use the below wrapper functions. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bitmask</td><td>Bitmask to clear/set in the attributes. See the UDSNETATTR enum values. </td></tr>
<tr><td class="paramname">flag</td><td>When false, bit-clear, otherwise bit-set. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a3e5c7256539d252195695c5503d64255"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3e5c7256539d252195695c5503d64255">&#9670;&nbsp;</a></span>udsWaitConnectionStatusEvent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool udsWaitConnectionStatusEvent </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>nextEvent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wait</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Waits for the ConnectionStatus event to occur, or checks if the event was signaled. </p>
<p>This event is signaled when the data from <a class="el" href="uds_8h.html#a7fdd55dbeca432e2ad83dccc203d6de4" title="This loads the current ConnectionStatus struct.">udsGetConnectionStatus()</a> was updated internally. </p><dl class="section return"><dt>Returns</dt><dd>Always true. However if wait=false, this will return false if the event wasn't signaled. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">nextEvent</td><td>Whether to discard the current event and wait for the next event. </td></tr>
<tr><td class="paramname">wait</td><td>When true this will not return until the event is signaled. When false this checks if the event was signaled without waiting for it. </td></tr>
</table>
</dd>
</dl>
<dl class="section examples"><dt>Examples</dt><dd><a class="el" href="network_2uds_2source_2uds_8c-example.html#a36">network/uds/source/uds.c</a>.</dd>
</dl>
</div>
</div>
<a id="a705245e37134aba29af68c8e90b5df32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a705245e37134aba29af68c8e90b5df32">&#9670;&nbsp;</a></span>udsWaitDataAvailable()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool udsWaitDataAvailable </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structudsBindContext.html">udsBindContext</a> *&#160;</td>
<td class="paramname"><em>bindcontext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>nextEvent</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>wait</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Waits for the bind event to occur, or checks if the event was signaled. </p>
<p>This event is signaled every time new data is available via <a class="el" href="uds_8h.html#a15464b1fc2ce4897f352001b59b40597" title="Receives data over the network.">udsPullPacket()</a>. </p><dl class="section return"><dt>Returns</dt><dd>Always true. However if wait=false, this will return false if the event wasn't signaled. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">bindcontext</td><td>The bind context. </td></tr>
<tr><td class="paramname">nextEvent</td><td>Whether to discard the current event and wait for the next event. </td></tr>
<tr><td class="paramname">wait</td><td>When true this will not return until the event is signaled. When false this checks if the event was signaled without waiting for it. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>