blob: 782818977831f4a926921106e7a79b546325d456 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>GAP API for btshell &mdash; Apache Mynewt latest documentation</title>
<link rel="shortcut icon" href="../../_static/mynewt-logo-only-newt32x32.png"/>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/sphinx_theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/v2.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/restructuredtext.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/overrides.css" type="text/css" />
<link rel="index" title="Index"
href="../../genindex.html"/>
<link rel="search" title="Search" href="../../search.html"/>
<link rel="top" title="Apache Mynewt latest documentation" href="../../index.html"/>
<link rel="up" title="API for btshell app" href="btshell_api.html"/>
<link rel="next" title="GATT feature API for btshell" href="btshell_GATT.html"/>
<link rel="prev" title="API for btshell app" href="btshell_api.html"/>
<script src="../../_static/js/modernizr.min.js"></script>
<script>
(function(i, s, o, g, r, a, m) {
i["GoogleAnalyticsObject"] = r;
(i[r] =
i[r] ||
function() {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
</head>
<body class="not-front page-documentation" role="document" >
<div id="wrapper">
<div class="container">
<div id="banner" class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="../../_static/img/logo.png">
</a>
<div class="tagline-cell">
<h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
</div>
<div class="news-cell">
<div class="well">
<h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.11.0, Apache NimBLE 1.6.0 </a> released September 7, 2023)
</div>
</div>
</div>
</div>
<header>
<nav id="navbar" class="navbar navbar-inverse" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav navbar-right">
<li>
<a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
</li>
<li class="important">
<a href="/quick-start/">Quick Start</a>
</li>
<li>
<a href="/about/">About</a>
</li>
<li>
<a href="/talks/">Talks</a>
</li>
<li class="active">
<a href="/documentation/">Documentation</a>
</li>
<li>
<a href="/download/">Download</a>
</li>
<li>
<a href="/community/">Community</a>
</li>
<li>
<a href="/events/">Events</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
<ul class="nav navbar-nav navbar-right">
</ul>
</div>
</div>
</nav>
</header>
<!-- STARTS MAIN CONTENT -->
<div id="main-content">
<div id="breadcrumb">
<div class="container">
<a href="/documentation/">Docs</a> /
<a href="../index.html">BLE User Guide</a> /
<a href="btshell_api.html">API for btshell app</a> /
GAP API for btshell
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-nimble/edit/master/docs/btshell/btshell_GAP.rst" class="icon icon-github"
rel="nofollow"> Edit on GitHub</a>
</div>
</div>
</div>
<!-- STARTS CONTAINER -->
<div class="container">
<!-- STARTS .content -->
<div id="content" class="row">
<!-- STARTS .container-sidebar -->
<div class="container-sidebar col-xs-12 col-sm-3">
<div id="docSidebar" class="sticky-container">
<div role="search" class="sphinx-search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<!-- Note: only works when deployed -->
<select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest" selected>
Version: latest
</option>
<option value="/v1_11_0" >
Version: 1.11.0
</option>
<option value="/v1_10_0" >
Version: 1.10.0
</option>
<option value="/v1_9_0" >
Version: 1.9.0
</option>
<option value="/v1_8_0" selected="selected" >
Version: 1.8.0
</option>
<option value="/v1_7_0" >
Version: 1.7.0
</option>
<option value="/v1_6_0" >
Version: 1.6.0
</option>
<option value="/v1_5_0" >
Version: 1.5.0
</option>
<option value="/v1_4_0" >
Version: 1.4.0
</option>
<option value="/v1_3_0/os/introduction" >
Version: 1.3.0
</option>
<option value="/v1_2_0/os/introduction" >
Version: 1.2.0
</option>
<option value="/v1_1_0/os/introduction" >
Version: 1.1.0
</option>
<option value="/v1_0_0/os/introduction" >
Version: 1.0.0
</option>
<option value="/v0_9_0/os/introduction" >
Version: 0.9.0
</option>
</select>
<div class="region region-sidebar">
<div class="docs-menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../get_started/index.html">Setup &amp; Get Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tutorials/tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../external_links.html">Third-party Resources</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../os/os_user_guide.html">OS User Guide</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">BLE User Guide</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../ble_sec.html">NimBLE Security</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ble_setup/ble_setup_intro.html">NimBLE Setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ble_hs/ble_hs.html">NimBLE Host</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="btshell_api.html">btshell Usage API</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">GAP</a></li>
<li class="toctree-l3"><a class="reference internal" href="btshell_GATT.html">GATT</a></li>
<li class="toctree-l3"><a class="reference internal" href="btshell_advdata.html">Advertisement Data Fields</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../mesh/index.html">Bluetooth Mesh</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../newt/index.html">Newt Tool Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../newtmgr/index.html">Newt Manager Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mynewt_faq/index.html">Mynewt FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../misc/index.html">Appendix</a></li>
</ul>
</div>
</div>
</div>
<!-- ENDS STICKY CONTAINER -->
</div>
<!-- ENDS .container-sidebar -->
<div class="col-xs-12 col-sm-9">
<div class="alert alert-warning">
<p>
Version 1.8.0 is not the most recent version of the
Apache Mynewt documentation. Click <a href="/latest">here</a> to
read the latest version.
</p>
</div>
<div class="">
<div class="rst-content">
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="gap-api-for-btshell">
<h1>GAP API for btshell<a class="headerlink" href="#gap-api-for-btshell" title="Permalink to this headline"></a></h1>
<p>Generic Access Profile (GAP) defines the generic procedures related to discovery of Bluetooth devices (idle mode
procedures) and link management aspects of connecting to Bluetooth devices (connecting mode procedures). It also defines
procedures related to use of different security levels.</p>
<p>Several different modes and procedures may be performed simultaneously over an LE physical transport. The following
modes and procedures are defined for use over an LE physical transport:</p>
<ol class="arabic simple">
<li><p><strong>Broadcast mode and observation procedure</strong></p>
<ul class="simple">
<li><p>These allow two devices to communicate in a unidirectional connectionless manner using the advertising events.</p></li>
</ul>
</li>
<li><p><strong>Discovery modes and procedures</strong></p>
<ul class="simple">
<li><p>All devices shall be in either non-discoverable mode or one of the discoverable modes.</p></li>
<li><p>A device in the discoverable mode shall be in either the general discoverable mode or the limited discoverable mode.</p></li>
<li><p>A device in non-discoverable mode will not be discovered by any device that is performing either the general
discovery procedure or the limited discovery procedure.</p></li>
</ul>
</li>
<li><p><strong>Connection modes and procedures</strong></p>
<ul class="simple">
<li><p>allow a device to establish a connection to another device.</p></li>
<li><p>allow updating of parameters of the connection</p></li>
<li><p>allow termination of the connection</p></li>
</ul>
</li>
<li><p><strong>Bonding modes and procedures</strong></p>
<ul class="simple">
<li><p>Bonding allows two connected devices to exchange and store security and identity information to create a trusted
relationship.</p></li>
<li><p>Bonding can occur only between two devices in bondable mode.</p></li>
</ul>
</li>
</ol>
<div class="section" id="available-commands">
<h2>Available commands<a class="headerlink" href="#available-commands" title="Permalink to this headline"></a></h2>
<p>Parameters default values are marked red.</p>
<div class="section" id="configuration">
<h3>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline"></a></h3>
<table class="docutils align-default">
<colgroup>
<col style="width: 12%" />
<col style="width: 10%" />
<col style="width: 16%" />
<col style="width: 61%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><strong>Command</strong></p></th>
<th class="head"><p><strong>Parmeters</strong></p></th>
<th class="head"><p>** Possible values**</p></th>
<th class="head"><p><strong>Description</strong></p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>set</strong></p></td>
<td></td>
<td></td>
<td><p>Set configuration options</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Local device address</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Local device address type</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Use random address for scan requests</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>mtu</p></td>
<td><p>[23-UINT16_MAX]</p></td>
<td><p>GATT Maximum Transmission Unit (MTU)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>irk</p></td>
<td><p>XX:XX:XX…</p></td>
<td><p>Local Identity Resolving Key (16 byte</p></td>
</tr>
<tr class="row-even"><td><p><strong>set-priv-mode</strong></p></td>
<td></td>
<td></td>
<td><p>Set privacy mode for device</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Remote device address</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Remote device public address type</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Remote device random address type</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>mode</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>0 - use network privacy, 1 - use device privacy</p></td>
</tr>
<tr class="row-odd"><td><p><strong>white-list</strong></p></td>
<td></td>
<td></td>
<td><p>Add devices to white list (this command accepts multiple instances of addr and addr_type parameters)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Remote device address</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Remote device public address type</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Remote device random address type</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="device-discovery-and-connection">
<h3>Device discovery and connection<a class="headerlink" href="#device-discovery-and-connection" title="Permalink to this headline"></a></h3>
<table class="docutils align-default">
<colgroup>
<col style="width: 13%" />
<col style="width: 16%" />
<col style="width: 14%" />
<col style="width: 56%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><strong>Command</strong></p></th>
<th class="head"><p><strong>Parmeters</strong></p></th>
<th class="head"><p>** Possible values**</p></th>
<th class="head"><p><strong>Description</strong></p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>scan</strong></p></td>
<td></td>
<td></td>
<td><p>Discover remote devices</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>cancel</p></td>
<td></td>
<td><p>cancel ongoing scan procedure</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>extended</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">none</span></code></p></td>
<td><p>Start legacy scan</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>1M</p></td>
<td><p>Start extended scan on 1M PHY</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>coded</p></td>
<td><p>Start extended scan on Coded PHY</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>both</p></td>
<td><p>Start extended scan on both PHYs</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>duration</p></td>
<td><p>[1-<code class="docutils literal notranslate"><span class="pre">INT32_MAX</span></code>],</p></td>
<td><p>Duration of scan in milliseconds</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>limited</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use limited discovery procedure</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>passive</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use passive scan</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>interval</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT16_MAX]</p></td>
<td><p>Scan interval, if 0 use stack’s default</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>window</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT16_MAX]</p></td>
<td><p>Scan window, if 0 use stack’s default</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>filter</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">no_wl</span></code></p></td>
<td><p>Scan filter policy - Accept all advertising packets</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>use_wl</p></td>
<td><p>Accept only advertising packets from devices on White List</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>no_wl_inita</p></td>
<td><p>Accept all advertising packets (including directed RPA)</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>use_wl_inita</p></td>
<td><p>Accept only advertising packets from devices on White List (including directed RPA)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>nodups</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Disable duplicates filtering</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>own_addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Use public address for scan requests</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Use random address for scan requests</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>rpa_pub</p></td>
<td><p>Use RPA address for scan requests (fallback to public if no IRK)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>rpa_rnd</p></td>
<td><p>Use RPA address for scan requests (fallback to random if no IRK)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>extended_duration</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT16_MAX]</p></td>
<td><p>Duration of extended scan in 10 milliseconds</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>extended_period</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT16_MAX]</p></td>
<td><p>Periodic scan interval in 1.28 seconds (0 disabled)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>longrange_interval</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT16_MAX]</p></td>
<td><p>Scan interval for Coded Scan , if 0 use stack’s default</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>longrange_window</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT16_MAX]</p></td>
<td><p>Scan window for Coded Scan , if 0 use stack’s default</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>longrange_passive</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use passive scan for Coded Scan</p></td>
</tr>
<tr class="row-odd"><td><p><strong>connect</strong></p></td>
<td></td>
<td></td>
<td><p>Initiate connection to remote device</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>cancel</p></td>
<td></td>
<td><p>Cancel ongoing connection procedure</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>extended</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">none</span></code></p></td>
<td><p>Use legacy connection procedure</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>1M</p></td>
<td><p>Extended connect using 1M PHY scan parameters</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>coded</p></td>
<td><p>Extended connect using Coded PHY scan parameters</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>both</p></td>
<td><p>Extended connect using 1M and Coded PHYs scan parameters</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>all</p></td>
<td><p>Extended connect using 1M and Coded PHYs scan parameters (Provide also connection parameters for 2M PHY)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>peer_addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Remote device public address type</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Remote device random address type</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>public_id</p></td>
<td><p>Remote device public address type (Identity)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random_id</p></td>
<td><p>Remote device random address type (Identity)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>peer_addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Remote device address</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>own_addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Use public address for scan requests</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Use random address for scan requests</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>rpa_pub</p></td>
<td><p>Use RPA address for scan requests (fallback to public if no IRK)</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>rpa_rnd</p></td>
<td><p>Use RPA address for scan requests (fallback to random if no IRK)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>duration</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-INT32_MAX]</p></td>
<td><p>Connection attempt duration, if 0 use stack’s default</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>scan_interval</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Scan interval, default: 0x0010</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>scan_window</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Scan window, default: 0x0010</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>interval_min</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Minimum connection interval, default: 30</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>interval_max</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Maximum connection interval, default: 50</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>latency</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection latency, default: 0</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>timeout</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection timeout, default: 0x0100</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>min_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>Minimum length of connection event, default: 0x0010</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>max_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>Maximum length of connection event, default: 0x0300</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>coded_scan_interval</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Coded PHY Scan interval, default: 0x0010</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>coded_scan_window</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Coded PHY Scan window, default: 0x0010</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>coded_interval_min</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Coded PHY Minimum connection interval, default: 30</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>coded_interval_max</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Coded PHY Maximum connection interval, default: 50</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>coded_latency</p></td>
<td><p>[UINT16]</p></td>
<td><p>Coded PHY Connection latency, default: 0</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>coded_timeout</p></td>
<td><p>[UINT16]</p></td>
<td><p>Coded PHY Connection timeout, default: 0x0100</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>coded_min_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>Coded PHY Minimum length of connection event, default: 0x0010</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>coded_max_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>Coded PHY Maximum length of connection event, default: 0x0300</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>2M_scan_interval</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>2M PHY Scan interval, default: 0x0010</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>2M_scan_window</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>2M PHY Scan window, default: 0x0010</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>2M_interval_min</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>2M PHY Minimum connection interval, default: 30</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>2M_interval_max</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>2M PHY Maximum connection interval, default: 50</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>2M_latency</p></td>
<td><p>[UINT16]</p></td>
<td><p>2M PHY Connection latency, default: 0</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>2M_timeout</p></td>
<td><p>[UINT16]</p></td>
<td><p>2M PHY Connection timeout, default: 0x0100</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>2M_min_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>2M PHY Minimum length of connection event, default: 0x0010</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>2M_max_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>2M PHY Maximum length of connection event, default: 0x0300</p></td>
</tr>
<tr class="row-even"><td><p><strong>disconnect</strong></p></td>
<td></td>
<td></td>
<td><p>Disconnect exisiting connection</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>reason</p></td>
<td><p>[UINT8]</p></td>
<td><p>Disconnect reason</p></td>
</tr>
<tr class="row-odd"><td><p><strong>show-addr</strong></p></td>
<td></td>
<td></td>
<td><p>Show local public and random identity addresses</p></td>
</tr>
<tr class="row-even"><td><p><strong>show-conn</strong></p></td>
<td></td>
<td></td>
<td><p>Show current connections</p></td>
</tr>
<tr class="row-odd"><td><p><strong>conn-rssi</strong></p></td>
<td></td>
<td></td>
<td><p>Obtain RSSI of specified connection</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td><p><strong>conn-update-params</strong></p></td>
<td></td>
<td></td>
<td><p>Update parameters of specified connection</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>interval_min</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Minimum connection interval, default: 30</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>interval_max</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Maximum connection interval, default: 50</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>latency</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection latency, default: 0</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>timeout</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection timeout, default: 0x0100</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>min_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>Minimum length of connection event, default: 0x0010</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>max_conn_event_len</p></td>
<td><p>[UINT16]</p></td>
<td><p>Maximum length of connection event, default: 0x0300</p></td>
</tr>
<tr class="row-odd"><td><p><strong>conn-datalen</strong></p></td>
<td></td>
<td></td>
<td><p>Set DLE parmaeters for connection</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>octets</p></td>
<td><p>[UINT16]</p></td>
<td><p>Maximum transmission packet size</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>time</p></td>
<td><p>[UINT16]</p></td>
<td><p>Maximum transmission packet time</p></td>
</tr>
<tr class="row-odd"><td><p><strong>phy-set</strong></p></td>
<td></td>
<td></td>
<td><p>Set prefered PHYs used for connection</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>tx_phys_mask</p></td>
<td><p>[UINT8]</p></td>
<td><p>Prefered PHYs on TX is mask of following bits0x00 - no preference0x01 - 1M, 0x02 - 2M, 0x04 - Coded</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>rx_phys_mask</p></td>
<td><p>[UINT8]</p></td>
<td><p>Prefered PHYs on RX is mask of following bits0x00 - no preference0x01 - 1M, 0x02 - 2M, 0x04 - Coded</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>phy_opts</p></td>
<td><p>[UINT16]</p></td>
<td><p>Options for Coded PHY 0 - any coding, 1 - prefer S2, 2 - prefer S8</p></td>
</tr>
<tr class="row-even"><td><p><strong>phy-set-default</strong></p></td>
<td></td>
<td></td>
<td><p>Set default prefered PHYs used for new connection</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>tx_phys_mask</p></td>
<td><p>[UINT8]</p></td>
<td><p>Prefered PHYs on TX is mask of following bits0x00 - no preference0x01 - 1M, 0x02 - 2M, 0x04 - Coded</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>rx_phys_mask</p></td>
<td><p>[UINT8]</p></td>
<td><p>Prefered PHYs on RX is mask of following bits0x00 - no preference0x01 - 1M, 0x02 - 2M, 0x04 - Coded</p></td>
</tr>
<tr class="row-odd"><td><p><strong>phy-read</strong></p></td>
<td></td>
<td></td>
<td><p>Read connection current PHY</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td><p><strong>l2cap-update</strong></p></td>
<td></td>
<td></td>
<td><p>Update connection parameters</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>interval_min</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Minimum connection interval, default: 30</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>interval_max</p></td>
<td><p>[0-UINT16_MAX]</p></td>
<td><p>Maximum connection interval, default: 50</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>latency</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection latency, default: 0</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>timeout</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection timeout, default: 0x0100</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="security">
<h3>Security<a class="headerlink" href="#security" title="Permalink to this headline"></a></h3>
<table class="docutils align-default">
<colgroup>
<col style="width: 14%" />
<col style="width: 10%" />
<col style="width: 14%" />
<col style="width: 62%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><strong>Command</strong></p></th>
<th class="head"><p><strong>Parmeters</strong></p></th>
<th class="head"><p>** Possible values**</p></th>
<th class="head"><p><strong>Description</strong></p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>security-set-data</strong></p></td>
<td></td>
<td></td>
<td><p>Set security configuration</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>oob-flag</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Set Out-Of-Band (OOB) flag in Security Manager</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>mitm-flag</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Set Man-In-The-Middle (MITM) flag in Security Manager</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>io_capabilities</p></td>
<td><p>0</p></td>
<td><p>Set Input-Output Capabilities to “DisplayOnly”</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>1</p></td>
<td><p>Set Input-Output Capabilities to “DisplayYesNo”</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>2</p></td>
<td><p>Set Input-Output Capabilities to “KeyboardOnly”</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>3</p></td>
<td><p>Set Input-Output Capabilities to “NoInputNoOutput”</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>4</p></td>
<td><p>Set Input-Output Capabilities to “KeyboardDisplay”</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>our_key_dist</p></td>
<td><p>[UINT8]</p></td>
<td><p>Set Local Keys Distribution, this is a bit field of possible values: LTK (0x01), IRK (0x02), CSRK (0x04), LTK_SC(0x08)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>their_key_dist</p></td>
<td><p>[UINT8]</p></td>
<td><p>Set Remote Keys Distribution, this is a bit field of possible values: LTK (0x01), IRK (0x02), CSRK (0x04), LTK_SC(0x08)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>bonding-flag</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Set Bonding flag in Security Manager</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>sc-flag</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Set Secure Connections flag in Security Manager</p></td>
</tr>
<tr class="row-even"><td><p><strong>security-pair</strong></p></td>
<td></td>
<td></td>
<td><p>Start pairing procedure</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-even"><td><p><strong>security-encryption</strong></p></td>
<td></td>
<td></td>
<td><p>Start encryption procedure</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>ediv</p></td>
<td><p>[UINT16]</p></td>
<td><p>EDIV for LTK to use (use storage if not provided)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>rand</p></td>
<td><p>[UINT64]</p></td>
<td><p>Rand for LTK</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>ltk</p></td>
<td><p>XX:XX:XX…</p></td>
<td><p>LTK (16 bytes)</p></td>
</tr>
<tr class="row-odd"><td><p><strong>security-start</strong></p></td>
<td></td>
<td></td>
<td><p>Start security procedure (This starts either pairing or encryption depending if keys are stored)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td><p><strong>auth-passkey</strong></p></td>
<td></td>
<td></td>
<td><p>Reply to Passkey request</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>action</p></td>
<td><p>[UINT16]</p></td>
<td><p>Action to reply (as received in event)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>key</p></td>
<td><p>[0-999999]</p></td>
<td><p>Passkey to reply (Input or Display action)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>oob</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>Out-Of-Band secret (16 bytes) (OOB action)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>yesno</p></td>
<td><p>Yy-Ny</p></td>
<td><p>Confirm passkey (for Passkey Confirm action)</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="advertising-with-extended-advertising-enabled">
<h3>Advertising with Extended Advertising enabled<a class="headerlink" href="#advertising-with-extended-advertising-enabled" title="Permalink to this headline"></a></h3>
<table class="docutils align-default">
<colgroup>
<col style="width: 18%" />
<col style="width: 15%" />
<col style="width: 17%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><strong>Command</strong></p></th>
<th class="head"><p><strong>Parmeters</strong></p></th>
<th class="head"><p>** Possible values**</p></th>
<th class="head"><p><strong>Description</strong></p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>advertise-configure</strong></p></td>
<td></td>
<td></td>
<td><p>Configure new advertising instance</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>instance</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Advertising instance</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>connectable</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use connectable advertising</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>scannable</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use scannable advertising</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>peer_addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Remote device public address type</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Remote device random address type</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>public_id</p></td>
<td><p>Remote device public address type (Identity)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random_id</p></td>
<td><p>Remote device random address type (Identity)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>peer_addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Remote device address - if provided perform directed advertising</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>own_addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Use public address for scan requests</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Use random address for scan requests</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>rpa_pub</p></td>
<td><p>Use RPA address for scan requests (fallback to public if no IRK)</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>rpa_rnd</p></td>
<td><p>Use RPA address for scan requests (fallback to random if no IRK)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>channel_map</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX}</p></td>
<td><p>Primary advertising channels map. If 0 use all channels.</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>filter</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">none</span></code></p></td>
<td><p>Advertising filter policy - no filtering, no whitelist used</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>scan</p></td>
<td><p>process all connection requests but only scans from white list</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>conn</p></td>
<td><p>process all scan request but only connection requests from white list</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>both</p></td>
<td><p>ignore all scan and connection requests unless in white list</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>interval_min</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT32_MAX]</p></td>
<td><p>Minimum advertising interval in 0.625 miliseconds If 0 use stack default.</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>interval_max</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT32_MAX]</p></td>
<td><p>Maximum advertising interval in 0.625 miliseconds If 0 use stack default.</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>rx_power</p></td>
<td><p>[-127 - <code class="docutils literal notranslate"><span class="pre">127</span></code>]</p></td>
<td><p>Advertising TX power in dBm</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>primary_phy</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">1M</span></code></p></td>
<td><p>Use 1M PHY on primary advertising channels</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p><code class="docutils literal notranslate"><span class="pre">coded</span></code></p></td>
<td><p>Use Coded PHY on primary advertising channels</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>secondary_phy</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">1M</span></code></p></td>
<td><p>Use 1M PHY on secondary advertising channels</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p><code class="docutils literal notranslate"><span class="pre">coded</span></code></p></td>
<td><p>Use coded PHY on primary advertising channels</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p><code class="docutils literal notranslate"><span class="pre">2M</span></code></p></td>
<td><p>Use 2M PHY on primary advertising channels</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>sid</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-16]</p></td>
<td><p>Adsertising instance SID</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>high_duty</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use high_duty advertising</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>anonymous</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use anonymous advertising</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>legacy</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use legacy PDUs for advertising</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>include_tx_power</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Include TX power information in advertising PDUs</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>scan_req_notif</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Enable SCAN_REQ notifications</p></td>
</tr>
<tr class="row-even"><td><p><strong>advertise-set-addr</strong></p></td>
<td></td>
<td></td>
<td><p>Configure <em>random</em> adress for instance</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>instance</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Advertising instance</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Random address</p></td>
</tr>
<tr class="row-odd"><td><p><strong>advertise-set-adv-data</strong></p></td>
<td></td>
<td></td>
<td><p>Configure advertising instance ADV_DATA. This allow to configure following TLVs:</p></td>
</tr>
<tr class="row-even"><td><p><strong>advertise-set-scan-rsp</strong></p></td>
<td></td>
<td></td>
<td><p>Configure advertising instance SCAN_RSP. This allow to configure following TLVs:</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>instance</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Advertising instance</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>flags</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Flags value</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>uuid16</p></td>
<td><p>[UINT16]</p></td>
<td><p>16-bit UUID value (can be passed multiple times)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>uuid16_is_complete</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>I 16-bit UUID list is complete</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>uuid32</p></td>
<td><p>[UINT32]</p></td>
<td><p>32-bit UUID value (can be passed multiple times)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>uuid32_is_complete</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>I 32-bit UUID list is complete</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>uuid128</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>128-bit UUID value (16 bytes) (can be passed multiple times)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>uuid128_is_complete</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>I 128-bit UUID list is complete</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>tx_power_level</p></td>
<td><p>[-127 - 127]</p></td>
<td><p>TX Power level to include</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>appearance</p></td>
<td><p>[UINT16]</p></td>
<td><p>Appearance</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>name</p></td>
<td><p>string</p></td>
<td><p>Name</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>advertising_interval</p></td>
<td><p>[UINT16]</p></td>
<td><p>Advertising interval</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>service_data_uuid32</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>32-bit UUID service data</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>service_data_uuid128</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>128-bit UUID service data</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>uri</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>URI</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>msg_data</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>Manufacturer data</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>eddystone_url</p></td>
<td><p>string</p></td>
<td><p>Eddystone with specified URL</p></td>
</tr>
<tr class="row-even"><td><p><strong>advertise-start</strong></p></td>
<td></td>
<td></td>
<td><p>Start advertising with configured instance</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>instance</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Advertising instance</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>duration</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT16_MAX]</p></td>
<td><p>Advertising duration in 10ms units. 0 - forver</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>max_events</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Maximum number of advertising events. 0 - no limit</p></td>
</tr>
<tr class="row-even"><td><p><strong>advertise-stop</strong></p></td>
<td></td>
<td></td>
<td><p>Stop advertising</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>instance</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Advertising instance</p></td>
</tr>
<tr class="row-even"><td><p><strong>advertise-remove</strong></p></td>
<td></td>
<td></td>
<td><p>Remove configured advertising instance</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>instance</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Advertising instance</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="legacy-advertising-with-extended-advertising-disabled">
<h3>Legacy Advertising with Extended Advertising disabled<a class="headerlink" href="#legacy-advertising-with-extended-advertising-disabled" title="Permalink to this headline"></a></h3>
<table class="docutils align-default">
<colgroup>
<col style="width: 13%" />
<col style="width: 16%" />
<col style="width: 18%" />
<col style="width: 53%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><strong>Command</strong></p></th>
<th class="head"><p><strong>Parmeters</strong></p></th>
<th class="head"><p>** Possible values**</p></th>
<th class="head"><p><strong>Description</strong></p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>advertise</strong></p></td>
<td></td>
<td></td>
<td><p>Enable advertising</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>stop</p></td>
<td></td>
<td><p>Stop enabled advertising</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">und</span></code></p></td>
<td><p>Connectable mode: undirected</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>non</p></td>
<td><p>non-connectable</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>dir</p></td>
<td><p>directed</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>discov</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">gen</span></code></p></td>
<td><p>Discoverable mode: general discoverable</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>ltd</p></td>
<td><p>limited discoverable</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>non</p></td>
<td><p>non-discoverable</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>scannable</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use scannable advertising</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>peer_addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Remote device public address type</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Remote device random address type</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>public_id</p></td>
<td><p>Remote device public address type (Identity)</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>random_id</p></td>
<td><p>Remote device random address type (Identity)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>peer_addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Remote device address - if provided perform directed advertising</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>own_addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Use public address for scan requests</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Use random address for scan requests</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>rpa_pub</p></td>
<td><p>Use RPA address for scan requests (fallback to public if no IRK)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>rpa_rnd</p></td>
<td><p>Use RPA address for scan requests (fallback to random if no IRK)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>channel_map</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX}</p></td>
<td><p>Primary advertising channels map. If 0 use all channels.</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>filter</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">none</span></code></p></td>
<td><p>Advertising filter policy - no filtering, no whitelist used</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>scan</p></td>
<td><p>process all connection requests but only scans from white list</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>conn</p></td>
<td><p>process all scan request but only connection requests from white list</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>both</p></td>
<td><p>ignore all scan and connection requests unless in white list</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>interval_min</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT32_MAX]</p></td>
<td><p>Minimum advertising interval in 0.625 miliseconds If 0 use stack default.</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>interval_max</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT32_MAX]</p></td>
<td><p>Maximum advertising interval in 0.625 miliseconds If 0 use stack default.</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>high_duty</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>Use high_duty advertising</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>duration</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">1</span></code>-INT32_MAX]</p></td>
<td><p>Advertising duration in ms</p></td>
</tr>
<tr class="row-odd"><td><p><strong>set-adv-data</strong></p></td>
<td></td>
<td></td>
<td><p>Configure advertising instance ADV_DATA. This allow to configure following TLVs:</p></td>
</tr>
<tr class="row-even"><td><p><strong>set-scan-rsp</strong></p></td>
<td></td>
<td></td>
<td><p>Configure advertising instance SCAN_RSP. This allow to configure following TLVs:</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>flags</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-UINT8_MAX]</p></td>
<td><p>Flags value</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>uuid16</p></td>
<td><p>[UINT16]</p></td>
<td><p>16-bit UUID value (can be passed multiple times)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>uuid16_is_complete</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>I 16-bit UUID list is complete</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>uuid32</p></td>
<td><p>[UINT32]</p></td>
<td><p>32-bit UUID value (can be passed multiple times)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>uuid32_is_complete</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>I 32-bit UUID list is complete</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>uuid128</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>128-bit UUID value (16 bytes) (can be passed multiple times)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>uuid128_is_complete</p></td>
<td><p>[<code class="docutils literal notranslate"><span class="pre">0</span></code>-1]</p></td>
<td><p>I 128-bit UUID list is complete</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>tx_power_level</p></td>
<td><p>[-127 - 127]</p></td>
<td><p>TX Power level to include</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>appearance</p></td>
<td><p>[UINT16]</p></td>
<td><p>Appearance</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>name</p></td>
<td><p>string</p></td>
<td><p>Name</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>advertising_interval</p></td>
<td><p>[UINT16]</p></td>
<td><p>Advertising interval</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>service_data_uuid32</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>32-bit UUID service data</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>service_data_uuid128</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>128-bit UUID service data</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>uri</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>URI</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>msg_data</p></td>
<td><p>XX:XX:XX:…</p></td>
<td><p>Manufacturer data</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>eddystone_url</p></td>
<td><p>string</p></td>
<td><p>Eddystone with specified URL</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="l2cap-connection-oriented-channels">
<h3>L2CAP Connection Oriented Channels<a class="headerlink" href="#l2cap-connection-oriented-channels" title="Permalink to this headline"></a></h3>
<table class="docutils align-default">
<colgroup>
<col style="width: 22%" />
<col style="width: 14%" />
<col style="width: 23%" />
<col style="width: 42%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><strong>Command</strong></p></th>
<th class="head"><p><strong>Parmeters</strong></p></th>
<th class="head"><p>** Possible values**</p></th>
<th class="head"><p><strong>Description</strong></p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>l2cap-create-server</strong></p></td>
<td></td>
<td></td>
<td><p>Create L2CAP server</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>psm</p></td>
<td><p>[UINT16]</p></td>
<td><p>PSM</p></td>
</tr>
<tr class="row-even"><td><p><strong>l2cap-connect</strong></p></td>
<td></td>
<td></td>
<td><p>Connect to remote L2CAP server</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>psm</p></td>
<td><p>[UINT16]</p></td>
<td><p>PSM</p></td>
</tr>
<tr class="row-odd"><td><p><strong>l2cap-disconnect</strong></p></td>
<td></td>
<td></td>
<td><p>Disconnec from L2CAP server</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>idx</p></td>
<td><p>[UINT16]</p></td>
<td><p>L2CAP connection oriented channel identifier</p></td>
</tr>
<tr class="row-even"><td><p><strong>l2cap-send</strong></p></td>
<td></td>
<td></td>
<td><p>Send data over connected L2CAP channel</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>conn</p></td>
<td><p>[UINT16]</p></td>
<td><p>Connection handle</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>idx</p></td>
<td><p>[UINT16]</p></td>
<td><p>L2CAP connection oriented channel identifier</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>bytes</p></td>
<td><p>[UINT16]</p></td>
<td><p>Number of bytes to send (hardcoded data pattern)</p></td>
</tr>
<tr class="row-even"><td><p><strong>l2cap-show-coc</strong></p></td>
<td></td>
<td></td>
<td><p>Show connected L2CAP channels</p></td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="keys-storage">
<h3>Keys storage<a class="headerlink" href="#keys-storage" title="Permalink to this headline"></a></h3>
<table class="docutils align-default">
<colgroup>
<col style="width: 18%" />
<col style="width: 14%" />
<col style="width: 24%" />
<col style="width: 44%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p><strong>Command</strong></p></th>
<th class="head"><p><strong>Parmeters</strong></p></th>
<th class="head"><p>** Possible values**</p></th>
<th class="head"><p><strong>Description</strong></p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><strong>keystore-add</strong></p></td>
<td></td>
<td></td>
<td><p>Add keys to storage</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>type</p></td>
<td><p>msec</p></td>
<td><p>Master Key</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>ssec</p></td>
<td><p>Slave Key</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>cccd</p></td>
<td><p>Client Characteristic Configuration Descriptor</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Device address</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Device address type</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Use random address for scan requests</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>ediv</p></td>
<td><p>[UINT16]</p></td>
<td><p>EDIV for LTK to add</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>rand</p></td>
<td><p>[UINT64]</p></td>
<td><p>Rand for LTK</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>ltk</p></td>
<td><p>XX:XX:XX…</p></td>
<td><p>LTK (16 bytes)</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>irk</p></td>
<td><p>XX:XX:XX…</p></td>
<td><p>Identity Resolving Key (16 bytes)</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>csrk</p></td>
<td><p>XX:XX:XX…</p></td>
<td><p>Connection Signature Resolving Key (16 bytes)</p></td>
</tr>
<tr class="row-even"><td><p><strong>keystore-del</strong></p></td>
<td></td>
<td></td>
<td><p>Delete keys from storage</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>type</p></td>
<td><p>msec</p></td>
<td><p>Master Key</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>ssec</p></td>
<td><p>Slave Key</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>cccd</p></td>
<td><p>Client Characteristic Configuration Descriptor</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>addr</p></td>
<td><p>XX:XX:XX:XX:XX:XX</p></td>
<td><p>Device address</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>addr_type</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">public</span></code></p></td>
<td><p>Device address type</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>random</p></td>
<td><p>Use random address for scan requests</p></td>
</tr>
<tr class="row-odd"><td></td>
<td><p>ediv</p></td>
<td><p>[UINT16]</p></td>
<td><p>EDIV for LTK to remove</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>rand</p></td>
<td><p>[UINT64]</p></td>
<td><p>Rand for LTK</p></td>
</tr>
<tr class="row-odd"><td><p><strong>keystore-show</strong></p></td>
<td></td>
<td></td>
<td><p>Show stored keys</p></td>
</tr>
<tr class="row-even"><td></td>
<td><p>type</p></td>
<td><p>msec</p></td>
<td><p>Master Keys</p></td>
</tr>
<tr class="row-odd"><td></td>
<td></td>
<td><p>ssec</p></td>
<td><p>Slave Keys</p></td>
</tr>
<tr class="row-even"><td></td>
<td></td>
<td><p>cccd</p></td>
<td><p>Client Characteristic Configuration Descriptor s</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="btshell_GATT.html" class="btn btn-neutral float-right" title="GATT feature API for btshell" accesskey="n">Next: GATT feature API for btshell <span class="fa fa-arrow-circle-right"></span></a>
<a href="btshell_api.html" class="btn btn-neutral" title="API for btshell app" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: API for btshell app</a>
</div>
</div>
</div>
</div>
<!-- ENDS CONTENT SECTION -->
</div>
<!-- ENDS .content -->
</div>
</div>
<footer>
<div class="container">
<div class="row">
<div class="col-xs-12">
<p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
</div>
<div class="col-xs-12">
<div class="logos">
<img src="../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
<small class="footnote">
Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
</small>
<a href="">
<img src="../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
</div>
</div>
</footer>
</div>
<!-- ENDS #wrapper -->
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../../',
VERSION:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
LINK_SUFFIX: '.html'
};
</script>
<script type="text/javascript" src="../../_static/jquery.js"></script>
<script type="text/javascript" src="../../_static/underscore.js"></script>
<script type="text/javascript" src="../../_static/doctools.js"></script>
<script type="text/javascript" src="../../_static/js/bootstrap-3.0.3.min.js"></script>
<script type="text/javascript" src="../../_static/js/affix.js"></script>
<script type="text/javascript" src="../../_static/js/main.js"></script>
</body>
</html>