Files
hpw421/doc/网页版文档/xc__gatt__client__api_8c.html
2026-06-06 16:49:48 +08:00

1031 lines
53 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" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.7"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>BLE5.2: TEST2/api/xc_gatt_client_api.c 文件参考</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>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
extensions: ["tex2jax.js"],
jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.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 id="projectrow">
<td id="projectlogo"><img alt="Logo" src="xinchip.png"/></td>
<td id="projectalign">
<div id="projectname">BLE5.2<span id="projectnumber">&#160;1.0</span>
</div>
<div id="projectbrief">开发文档说明</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.7 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>首页</span></a></li>
<li><a href="pages.html"><span>相关页面</span></a></li>
<li><a href="annotated.html"><span></span></a></li>
<li class="current"><a href="files.html"><span>文件</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>文件列表</span></a></li>
<li><a href="globals.html"><span>文件成员</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_e551eb05443008c96ab2f08dbb3250a6.html">TEST2</a></li><li class="navelem"><a class="el" href="dir_a213a656435eb838f44f965c240ae24d.html">api</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">函数</a> </div>
<div class="headertitle"><div class="title">xc_gatt_client_api.c 文件参考</div></div>
</div><!--header-->
<div class="contents">
<p>GATT client APIs source code Copyright (c) 2022 - 2025, XinChip All rights reserved.
<a href="#details">更多...</a></p>
<p><a href="xc__gatt__client__api_8c_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:aa7a996ce909f2ed4d80d8eabf6f3a071"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#aa7a996ce909f2ed4d80d8eabf6f3a071">xc_ble_gatt_user_cli_register</a> (uint16_t pref_mtu, uint8_t prio_level, const gatt_cli_cb_t *p_cb, uint8_t *p_user_lid)</td></tr>
<tr class="memdesc:aa7a996ce909f2ed4d80d8eabf6f3a071"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used to register a GATT user. This must be done prior to any GATT procedure execution. <br /></td></tr>
<tr class="separator:aa7a996ce909f2ed4d80d8eabf6f3a071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4aa4b1043f7a1cf9c8a7be4c890f5dc"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#ad4aa4b1043f7a1cf9c8a7be4c890f5dc">xc_ble_gatt_user_unregister</a> (uint8_t user_lid)</td></tr>
<tr class="memdesc:ad4aa4b1043f7a1cf9c8a7be4c890f5dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used to unregister a GATT user (client or server). <br /></td></tr>
<tr class="separator:ad4aa4b1043f7a1cf9c8a7be4c890f5dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74cc834949cf0f8f6138a2c92e13af0c"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#a74cc834949cf0f8f6138a2c92e13af0c">xc_ble_gatt_cli_discover_svc</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy, uint8_t disc_type, bool full, uint16_t start_hdl, uint16_t end_hdl, uint8_t uuid_type, const uint8_t *p_uuid)</td></tr>
<tr class="memdesc:a74cc834949cf0f8f6138a2c92e13af0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to discover primary or secondary services, exposed by peer device in its attribute database. <br /></td></tr>
<tr class="separator:a74cc834949cf0f8f6138a2c92e13af0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b53c3d77476921e8aa7de8e6ccf63b4"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#a1b53c3d77476921e8aa7de8e6ccf63b4">xc_ble_gatt_cli_discover_inc_svc</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy, uint16_t start_hdl, uint16_t end_hdl)</td></tr>
<tr class="memdesc:a1b53c3d77476921e8aa7de8e6ccf63b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to discover included services, exposed by peer device in its attribute database. <br /></td></tr>
<tr class="separator:a1b53c3d77476921e8aa7de8e6ccf63b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0fdd832e831611ee57aef9e5a93ddb1"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#aa0fdd832e831611ee57aef9e5a93ddb1">xc_ble_gatt_cli_discover_char</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy, uint8_t disc_type, uint16_t start_hdl, uint16_t end_hdl, uint8_t uuid_type, const uint8_t *p_uuid)</td></tr>
<tr class="memdesc:aa0fdd832e831611ee57aef9e5a93ddb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to discover all or according to a specific UUID characteristics exposed by peer device in its attribute database. <br /></td></tr>
<tr class="separator:aa0fdd832e831611ee57aef9e5a93ddb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13338ee47dfdeb86c8347f1180036c9e"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#a13338ee47dfdeb86c8347f1180036c9e">xc_ble_gatt_cli_discover_desc</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy, uint16_t start_hdl, uint16_t end_hdl)</td></tr>
<tr class="memdesc:a13338ee47dfdeb86c8347f1180036c9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to discover characteristic descriptor exposed by peer device in its attribute database. <br /></td></tr>
<tr class="separator:a13338ee47dfdeb86c8347f1180036c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a414f2e13cb126a72fcc1ce6941a11767"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#a414f2e13cb126a72fcc1ce6941a11767">xc_ble_gatt_cli_discover_cancel</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy)</td></tr>
<tr class="memdesc:a414f2e13cb126a72fcc1ce6941a11767"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to cancel an on-going discovery procedure. The dummy parameter in the request must be equals to dummy parameter used for service discovery command. <br /></td></tr>
<tr class="separator:a414f2e13cb126a72fcc1ce6941a11767"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1dae5d1ecebe172252b2e180dd2b450"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#ad1dae5d1ecebe172252b2e180dd2b450">xc_ble_gatt_cli_read</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy, uint16_t hdl, uint16_t offset, uint16_t length)</td></tr>
<tr class="memdesc:ad1dae5d1ecebe172252b2e180dd2b450"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to read value of an attribute (identified by its handle) present in peer database. <br /></td></tr>
<tr class="separator:ad1dae5d1ecebe172252b2e180dd2b450"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af92611d9ded19d22a42617aae9fb7f7b"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#af92611d9ded19d22a42617aae9fb7f7b">xc_ble_gatt_cli_read_by_uuid</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy, uint16_t start_hdl, uint16_t end_hdl, uint8_t uuid_type, const uint8_t *p_uuid)</td></tr>
<tr class="memdesc:af92611d9ded19d22a42617aae9fb7f7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to read value of an attribute with a given UUID in peer database. <br /></td></tr>
<tr class="separator:af92611d9ded19d22a42617aae9fb7f7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc54bab10dfe3a08b3980f01a9c6fd55"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#abc54bab10dfe3a08b3980f01a9c6fd55">xc_ble_gatt_cli_write</a> (uint8_t conidx, uint8_t user_lid, uint16_t dummy, uint8_t write_type, uint16_t hdl, uint16_t length, const uint8_t *p_data)</td></tr>
<tr class="memdesc:abc54bab10dfe3a08b3980f01a9c6fd55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to request to write value of an attribute in peer database. <br /></td></tr>
<tr class="separator:abc54bab10dfe3a08b3980f01a9c6fd55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ba2ef3e93796b5cdceb7b8d4bf65e1e"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#a1ba2ef3e93796b5cdceb7b8d4bf65e1e">xc_ble_gatt_cli_event_register</a> (uint8_t conidx, uint8_t user_lid, uint16_t start_hdl, uint16_t end_hdl)</td></tr>
<tr class="memdesc:a1ba2ef3e93796b5cdceb7b8d4bf65e1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to register for reception of events (notification / indication) for a given handle range. <br /></td></tr>
<tr class="separator:a1ba2ef3e93796b5cdceb7b8d4bf65e1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66c7f9c7cd76407d5e0e6467605bbad3"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#a66c7f9c7cd76407d5e0e6467605bbad3">xc_ble_gatt_cli_event_unregister</a> (uint8_t conidx, uint8_t user_lid, uint16_t start_hdl, uint16_t end_hdl)</td></tr>
<tr class="memdesc:a66c7f9c7cd76407d5e0e6467605bbad3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Command used by a GATT client user to stop reception of events (notification / indication) onto a specific handle range. <br /></td></tr>
<tr class="separator:a66c7f9c7cd76407d5e0e6467605bbad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b3326abe0243c1e495ef31d0972645d"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#a7b3326abe0243c1e495ef31d0972645d">xc_ble_gatt_cli_mtu_exch</a> (uint8_t conidx, uint8_t user_lid)</td></tr>
<tr class="memdesc:a7b3326abe0243c1e495ef31d0972645d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request a MTU exchange on legacy attribute bearer. There is no callback executed when the procedure is over. <br /></td></tr>
<tr class="separator:a7b3326abe0243c1e495ef31d0972645d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee2a093ffcd8d8f0898ccabcacd3834b"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xc__gatt__client__api_8c.html#aee2a093ffcd8d8f0898ccabcacd3834b">xc_ble_gatt_cli_indicate_cfm</a> (uint8_t conidx, uint8_t user_lid, uint16_t token)</td></tr>
<tr class="memdesc:aee2a093ffcd8d8f0898ccabcacd3834b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Upper layer provide status of attribute event handled by GATT client user. confirmation of indicate by GATT client. <br /></td></tr>
<tr class="separator:aee2a093ffcd8d8f0898ccabcacd3834b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>GATT client APIs source code Copyright (c) 2022 - 2025, XinChip All rights reserved. </p>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a> 中定义.</p>
</div><h2 class="groupheader">函数说明</h2>
<a id="a414f2e13cb126a72fcc1ce6941a11767" name="a414f2e13cb126a72fcc1ce6941a11767"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a414f2e13cb126a72fcc1ce6941a11767">&#9670;&#160;</a></span>xc_ble_gatt_cli_discover_cancel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_discover_cancel </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to cancel an on-going discovery procedure. The dummy parameter in the request must be equals to dummy parameter used for service discovery command. </p>
<p>The discovery is aborted as soon as on-going discovery attribute transaction is over.</p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_discover_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete.</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00058">58</a> 行定义.</p>
</div>
</div>
<a id="aa0fdd832e831611ee57aef9e5a93ddb1" name="aa0fdd832e831611ee57aef9e5a93ddb1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0fdd832e831611ee57aef9e5a93ddb1">&#9670;&#160;</a></span>xc_ble_gatt_cli_discover_char()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_discover_char </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>disc_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>start_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>end_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>uuid_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>p_uuid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to discover all or according to a specific UUID characteristics exposed by peer device in its attribute database. </p>
<p>The discovery is done between start handle and end handle range. For a complete discovery start handle must be set to 0x0001 and end handle to 0xFFFF.</p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_discover_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">disc_type</td><td>GATT characteristic discovery type (</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>参见</dt><dd>enum gatt_char_discovery_type) </dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">start_hdl</td><td>Search start handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_hdl</td><td>Search end handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">uuid_type</td><td>UUID Type (</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>参见</dt><dd>enum gatt_uuid_type) </dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p_uuid</td><td>Pointer to searched Attribute Value UUID (meaningful only for discovery by UUID)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00042">42</a> 行定义.</p>
</div>
</div>
<a id="a13338ee47dfdeb86c8347f1180036c9e" name="a13338ee47dfdeb86c8347f1180036c9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13338ee47dfdeb86c8347f1180036c9e">&#9670;&#160;</a></span>xc_ble_gatt_cli_discover_desc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_discover_desc </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>start_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>end_hdl</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to discover characteristic descriptor exposed by peer device in its attribute database. </p>
<p>The discovery is done between start handle and end handle range. For a complete discovery start handle must be set to 0x0001 and end handle to 0xFFFF.</p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_discover_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">start_hdl</td><td>Search start handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_hdl</td><td>Search end handle</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00051">51</a> 行定义.</p>
</div>
</div>
<a id="a1b53c3d77476921e8aa7de8e6ccf63b4" name="a1b53c3d77476921e8aa7de8e6ccf63b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b53c3d77476921e8aa7de8e6ccf63b4">&#9670;&#160;</a></span>xc_ble_gatt_cli_discover_inc_svc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_discover_inc_svc </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>start_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>end_hdl</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to discover included services, exposed by peer device in its attribute database. </p>
<p>The discovery is done between start handle and end handle range. For a complete discovery start handle must be set to 0x0001 and end handle to 0xFFFF.</p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_discover_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">start_hdl</td><td>Search start handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_hdl</td><td>Search end handle</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00034">34</a> 行定义.</p>
</div>
</div>
<a id="a74cc834949cf0f8f6138a2c92e13af0c" name="a74cc834949cf0f8f6138a2c92e13af0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74cc834949cf0f8f6138a2c92e13af0c">&#9670;&#160;</a></span>xc_ble_gatt_cli_discover_svc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_discover_svc </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>disc_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>full</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>start_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>end_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>uuid_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>p_uuid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to discover primary or secondary services, exposed by peer device in its attribute database. </p>
<p>All services can be discovered or filtering services having a specific UUID. The discovery is done between start handle and end handle range. For a complete discovery start handle must be set to 0x0001 and end handle to 0xFFFF.</p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_discover_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">disc_type</td><td>GATT Service discovery type (</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>参见</dt><dd>enum gatt_svc_discovery_type) </dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">full</td><td>Perform discovery of all information present in the service (True: enable, False: disable) </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">start_hdl</td><td>Search start handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_hdl</td><td>Search end handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">uuid_type</td><td>UUID Type (</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>参见</dt><dd>enum gatt_uuid_type) </dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p_uuid</td><td>Pointer to searched Service UUID (meaningful only for discovery by UUID)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00025">25</a> 行定义.</p>
</div>
</div>
<a id="a1ba2ef3e93796b5cdceb7b8d4bf65e1e" name="a1ba2ef3e93796b5cdceb7b8d4bf65e1e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ba2ef3e93796b5cdceb7b8d4bf65e1e">&#9670;&#160;</a></span>xc_ble_gatt_cli_event_register()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_event_register </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>start_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>end_hdl</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to register for reception of events (notification / indication) for a given handle range. </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">start_hdl</td><td>Attribute start handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_hdl</td><td>Attribute end handle</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00099">99</a> 行定义.</p>
</div>
</div>
<a id="a66c7f9c7cd76407d5e0e6467605bbad3" name="a66c7f9c7cd76407d5e0e6467605bbad3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66c7f9c7cd76407d5e0e6467605bbad3">&#9670;&#160;</a></span>xc_ble_gatt_cli_event_unregister()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_event_unregister </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>start_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>end_hdl</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to stop reception of events (notification / indication) onto a specific handle range. </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">start_hdl</td><td>Attribute start handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_hdl</td><td>Attribute end handle</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00105">105</a> 行定义.</p>
</div>
</div>
<a id="aee2a093ffcd8d8f0898ccabcacd3834b" name="aee2a093ffcd8d8f0898ccabcacd3834b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee2a093ffcd8d8f0898ccabcacd3834b">&#9670;&#160;</a></span>xc_ble_gatt_cli_indicate_cfm()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_indicate_cfm </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>token</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Upper layer provide status of attribute event handled by GATT client user. confirmation of indicate by GATT client. </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">token</td><td>Procedure token provided in corresponding callback</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00116">116</a> 行定义.</p>
</div>
</div>
<a id="a7b3326abe0243c1e495ef31d0972645d" name="a7b3326abe0243c1e495ef31d0972645d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b3326abe0243c1e495ef31d0972645d">&#9670;&#160;</a></span>xc_ble_gatt_cli_mtu_exch()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_mtu_exch </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Request a MTU exchange on legacy attribute bearer. There is no callback executed when the procedure is over. </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00111">111</a> 行定义.</p>
</div>
</div>
<a id="ad1dae5d1ecebe172252b2e180dd2b450" name="ad1dae5d1ecebe172252b2e180dd2b450"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1dae5d1ecebe172252b2e180dd2b450">&#9670;&#160;</a></span>xc_ble_gatt_cli_read()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_read </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>offset</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>length</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to read value of an attribute (identified by its handle) present in peer database. </p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_read_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">hdl</td><td>Attribute handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Value offset </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Value length to read (0 = read all)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00064">64</a> 行定义.</p>
</div>
</div>
<a id="af92611d9ded19d22a42617aae9fb7f7b" name="af92611d9ded19d22a42617aae9fb7f7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af92611d9ded19d22a42617aae9fb7f7b">&#9670;&#160;</a></span>xc_ble_gatt_cli_read_by_uuid()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_read_by_uuid </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>start_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>end_hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>uuid_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>p_uuid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to read value of an attribute with a given UUID in peer database. </p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_read_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">start_hdl</td><td>Search start handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">end_hdl</td><td>Search end handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">uuid_type</td><td>UUID Type (</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>参见</dt><dd>enum gatt_uuid_type) </dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">p_uuid</td><td>Pointer to searched attribute UUID (LSB First)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00070">70</a> 行定义.</p>
</div>
</div>
<a id="abc54bab10dfe3a08b3980f01a9c6fd55" name="abc54bab10dfe3a08b3980f01a9c6fd55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc54bab10dfe3a08b3980f01a9c6fd55">&#9670;&#160;</a></span>xc_ble_gatt_cli_write()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_cli_write </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>conidx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>dummy</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>write_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>hdl</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>length</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const uint8_t *&#160;</td>
<td class="paramname"><em>p_data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used by a GATT client user to request to write value of an attribute in peer database. </p>
<p>Since user is not aware of MTU size of the bearer used for attribute transmission it cannot be considered reliable.</p>
<p>For a GATT_WRITE_NO_RESP if attribute bearer max transmission size isn't sufficient, a GATT_WRITE (with response) procedure will be used.</p>
<p>For a GATT_WRITE_SIGNED, if attribute bearer max transmission size isn't sufficient, the procedure is aborted with L2CAP_ERR_INVALID_MTU error code.</p>
<p>Wait for </p><dl class="section see"><dt>参见</dt><dd>cb_write_cmp execution before starting a new procedure</dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">conidx</td><td>Connection index </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">dummy</td><td>Dummy parameter whose meaning is upper layer dependent and which is returned in command complete. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">write_type</td><td>GATT write type (</td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>参见</dt><dd>enum gatt_write_type) </dd></dl>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">hdl</td><td>Attribute handle </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">length</td><td>Value length </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p_data</td><td>Pointer to data value</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) Consider status only if an error occurs; else wait for execution completion </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00079">79</a> 行定义.</p>
</div>
</div>
<a id="aa7a996ce909f2ed4d80d8eabf6f3a071" name="aa7a996ce909f2ed4d80d8eabf6f3a071"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7a996ce909f2ed4d80d8eabf6f3a071">&#9670;&#160;</a></span>xc_ble_gatt_user_cli_register()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_user_cli_register </td>
<td>(</td>
<td class="paramtype">uint16_t&#160;</td>
<td class="paramname"><em>pref_mtu</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>prio_level</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const gatt_cli_cb_t *&#160;</td>
<td class="paramname"><em>p_cb</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">uint8_t *&#160;</td>
<td class="paramname"><em>p_user_lid</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used to register a GATT user. This must be done prior to any GATT procedure execution. </p>
<p>A GATT client user can initiate any client procedure, and shall be able to handle all client initiated message events</p>
<p>Same module can register multiple GATT users.</p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">pref_mtu</td><td>Preferred MTU for attribute exchange. </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">prio_level</td><td>User attribute priority level </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">p_cb</td><td>Pointer to set of callback functions to be used for communication with the GATT server user </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">p_user_lid</td><td>Pointer where GATT user local identifier will be set</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00013">13</a> 行定义.</p>
</div>
</div>
<a id="ad4aa4b1043f7a1cf9c8a7be4c890f5dc" name="ad4aa4b1043f7a1cf9c8a7be4c890f5dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4aa4b1043f7a1cf9c8a7be4c890f5dc">&#9670;&#160;</a></span>xc_ble_gatt_user_unregister()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t xc_ble_gatt_user_unregister </td>
<td>(</td>
<td class="paramtype">uint8_t&#160;</td>
<td class="paramname"><em>user_lid</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Command used to unregister a GATT user (client or server). </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">user_lid</td><td>GATT User Local identifier</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Status of the function execution (</dd></dl>
<dl class="section see"><dt>参见</dt><dd>enum hl_err) </dd></dl>
<p class="definition">在文件 <a class="el" href="xc__gatt__client__api_8c_source.html">xc_gatt_client_api.c</a><a class="el" href="xc__gatt__client__api_8c_source.html#l00020">20</a> 行定义.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.7
</small></address>
</body>
</html>