blob: ed22f700c2e337745f66b17b313ce740b5c2c713 [file] [log] [blame]
<!--
Documentation/_templates/layout.html
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership. The
ASF licenses this file to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance with the
License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html class="writer-html5" lang="en">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>btsak Bluetooth Swiss Army Knife &mdash; NuttX latest documentation</title>
<link rel="stylesheet" type="text/css" href="../../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../../_static/custom.css" />
<link rel="shortcut icon" href="../../../_static/favicon.ico"/>
<script src="../../../_static/jquery.js"></script>
<script src="../../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script>
<script src="../../../_static/doctools.js"></script>
<script src="../../../_static/sphinx_highlight.js"></script>
<script src="../../../_static/clipboard.min.js"></script>
<script src="../../../_static/copybutton.js"></script>
<script src="../../../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../../../genindex.html" />
<link rel="search" title="Search" href="../../../search.html" />
<link rel="next" title="gs2200m Telit GS2200M usrsock daemon" href="../gs2200m/index.html" />
<link rel="prev" title="Wireless Libraries and NSH Add-Ons" href="../index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../../index.html" class="icon icon-home"> NuttX
</a>
<!-- this version selector is quite ugly, should be probably replaced by something
more modern -->
<div class="version-selector">
<select onchange="javascript:location.href = this.value;">
<option value="../../../../latest" selected="selected">latest</option>
<option value="../../../../10.0.0" >10.0.0</option>
<option value="../../../../10.0.1" >10.0.1</option>
<option value="../../../../10.1.0" >10.1.0</option>
<option value="../../../../10.2.0" >10.2.0</option>
<option value="../../../../10.3.0" >10.3.0</option>
<option value="../../../../11.0.0" >11.0.0</option>
<option value="../../../../12.0.0" >12.0.0</option>
<option value="../../../../12.1.0" >12.1.0</option>
<option value="../../../../12.2.0" >12.2.0</option>
<option value="../../../../12.2.1" >12.2.1</option>
<option value="../../../../12.3.0" >12.3.0</option>
<option value="../../../../12.4.0" >12.4.0</option>
<option value="../../../../12.5.0" >12.5.0</option>
<option value="../../../../12.5.1" >12.5.1</option>
<option value="../../../../12.6.0" >12.6.0</option>
<option value="../../../../12.7.0" >12.7.0</option>
<option value="../../../../12.8.0" >12.8.0</option>
<option value="../../../../12.9.0" >12.9.0</option>
<option value="../../../../12.10.0" >12.10.0</option>
<option value="../../../../12.11.0" >12.11.0</option>
</select>
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../index.html">Home</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../introduction/index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../quickstart/index.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../contributing/index.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../platforms/index.html">Supported Platforms</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../components/index.html">OS Components</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../index.html">Applications</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../audioutils/index.html">Audio Utility libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../boot/index.html">Bootloader Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../benchmarks/index.html">Benchmark Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../canutils/index.html">CAN Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../crypto/index.html">Cryptography Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../fsutils/index.html">File System Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../games/index.html">Games</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../graphics/index.html">Graphics Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../industry/index.html">Industrial Applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../inertial/index.html">Inertial Libraries Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../interpreters/index.html">Interpreters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../logging/index.html">Logging Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../lte/index.html">LTE Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../math/index.html">Math Library Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../mlearing/index.html">Machine Learning Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../netutils/index.html">Network Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../nsh/index.html">NuttShell (NSH)</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../sdr/index.html">Software Define Radio Libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../system/index.html">System Libraries and NSH Add-Ons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../testing/index.html">Testing</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../tools/index.html">Host Side Tools</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../index.html">Wireless Libraries and NSH Add-Ons</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#"><code class="docutils literal notranslate"><span class="pre">btsak</span></code> Bluetooth Swiss Army Knife</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#commands">Commands</a></li>
<li class="toctree-l4"><a class="reference internal" href="#gatt-commands">GATT Commands</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../gs2200m/index.html"><code class="docutils literal notranslate"><span class="pre">gs2200m</span></code> Telit GS2200M usrsock daemon</a></li>
<li class="toctree-l3"><a class="reference internal" href="../i8sak/index.html"><code class="docutils literal notranslate"><span class="pre">i8sak</span></code> or <code class="docutils literal notranslate"><span class="pre">i8</span></code> IEEE 802.15.4 Swiss Army Knife</a></li>
<li class="toctree-l3"><a class="reference internal" href="../i8shark/index.html"><code class="docutils literal notranslate"><span class="pre">i8shark</span></code> IEEE 802.15.4 Wireshark adapter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ipwan/index.html"><code class="docutils literal notranslate"><span class="pre">ipwan</span></code> IEEE 802.15.4 Command Line Tool</a></li>
<li class="toctree-l3"><a class="reference internal" href="../libmac/index.html"><code class="docutils literal notranslate"><span class="pre">libmac</span></code> IEEE 802.15.4 MAC library routines</a></li>
<li class="toctree-l3"><a class="reference internal" href="../nimble/index.html"><code class="docutils literal notranslate"><span class="pre">nimble</span></code> Apache NimBLE (BLE host-layer) for NuttX</a></li>
<li class="toctree-l3"><a class="reference internal" href="../wapi/index.html"><code class="docutils literal notranslate"><span class="pre">wapi</span></code> WAPI (Wireless API)</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../examples/index.html">Examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../implementation/index.html">Implementation Details</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../reference/index.html">API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../guides/index.html">Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../logos/index.html">NuttX Logos</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../../index.html">NuttX</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="../../index.html">Applications</a></li>
<li class="breadcrumb-item"><a href="../index.html">Wireless Libraries and NSH Add-Ons</a></li>
<li class="breadcrumb-item active"><code class="docutils literal notranslate"><span class="pre">btsak</span></code> Bluetooth Swiss Army Knife</li>
<li class="wy-breadcrumbs-aside">
<a href="../../../_sources/applications/wireless/btsak/index.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="btsak-bluetooth-swiss-army-knife">
<h1><code class="docutils literal notranslate"><span class="pre">btsak</span></code> Bluetooth Swiss Army Knife<a class="headerlink" href="#btsak-bluetooth-swiss-army-knife" title="Permalink to this heading"></a></h1>
<section id="commands">
<h2>Commands<a class="headerlink" href="#commands" title="Permalink to this heading"></a></h2>
<p>help:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: help
Description: Should overall command help
Usage: bt &lt;ifname&gt; help
</pre></div>
</div>
<p>info:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: info
Description: Show Bluetooth driver information
Usage: bt &lt;ifname&gt; info [-h]
</pre></div>
</div>
<p>features:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: features
Description: Show Bluetooth driver information
Usage: bt &lt;ifname&gt; features [-h] [le]
Where: le - Selects LE features vs BR/EDR features
</pre></div>
</div>
<p>scan:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: scan
Description: Bluetooth scan commands
Usage: bt &lt;ifname&gt; scan [-h] &lt;start [-d]|get|stop&gt;
Where: start - Starts scanning. The -d option enables duplicate
filtering.
get - Shows new accumulated scan results
stop - Stops scanning
</pre></div>
</div>
<p>advertise:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: advertise
Description: Bluetooth advertise commands
Usage: bt &lt;ifname&gt; advertise [-h] &lt;start|stop&gt;
Where: start - Starts advertising
stop - Stops advertising
</pre></div>
</div>
<p>security:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: security
Description: Enable security (encryption) for a connection:
If device is paired, key encryption will be enabled. If
the link is already encrypted with sufficiently strong
key this command does nothing.
If the device is not paired pairing will be initiated. If
the device is paired and keys are too weak but input output
capabilities allow for strong enough keys pairing will be
initiated.
This command may return error if required level of security
is not possible to achieve due to local or remote device
limitation (eg input output capabilities).
</pre></div>
</div>
<p>bt:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Usage: bt &lt;ifname&gt; security [-h] &lt;addr&gt; public|random &lt;level&gt;
Where: &lt;addr&gt; - The 6-byte address of the connected peer
&lt;level&gt; - Security level, on of:
low - No encryption and no authentication
medium - Encryption and no authentication (no MITM)
high - Encryption and authentication (MITM)
fips - Authenticated LE secure connections and encryption
</pre></div>
</div>
<p>gatt:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: gatt
Description: Generic Attribute (GATT) commands
Usage: bt &lt;ifname&gt; gatt [-h] &lt;cmd&gt; [option [option [option...]]]
Where: See &quot;GATT Commands&quot; below
</pre></div>
</div>
</section>
<section id="gatt-commands">
<h2>GATT Commands<a class="headerlink" href="#gatt-commands" title="Permalink to this heading"></a></h2>
<p>exchange-mtu:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: exchange-mtu
Description: Set MTU to out maximum and negotiate MTU with peer
Usage: bt &lt;ifname&gt; gatt exchange-mtu [-h] &lt;addr&gt; public|random
</pre></div>
</div>
<p>mget:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: mget
Description: Get the pass/fail result of the last GATT &#39;exchange-mtu&#39; command
Usage: bt &lt;ifname&gt; gatt mget [-h]
</pre></div>
</div>
<p>discover:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: discover
Description: Initiate discovery
Usage: bt &lt;ifname&gt; gatt discover [-h] &lt;addr&gt; public|random &lt;uuid16&gt; [&lt;start&gt; [&lt;end&gt;]]
</pre></div>
</div>
<p>characteristic:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: characteristic
Description: Initiate characteristics discovery
Usage: bt &lt;ifname&gt; gatt characteristic [-h] &lt;addr&gt; public|random [&lt;start&gt; [&lt;end&gt;]]
</pre></div>
</div>
<p>descriptor:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: descriptor
Description: Initiate characteristics discovery
Usage: bt &lt;ifname&gt; gatt descriptor [-h] &lt;addr&gt; public|random [&lt;start&gt; [&lt;end&gt;]]
</pre></div>
</div>
<p>dget:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: dget
Description: Get the result of the last discovery action
Usage: bt &lt;ifname&gt; gatt dget [-h]
</pre></div>
</div>
<p>read:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: read
Description: Initiate a GATT read operation.
Usage: bt &lt;ifname&gt; gatt read [-h] &lt;addr&gt; public|random &lt;handle&gt; [&lt;offset&gt;]
</pre></div>
</div>
<p>read-multiple:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: read-multiple
Description: Initiate a GATT read-multiple operation.
Usage: bt &lt;ifname&gt; gatt read-multiple [-h] &lt;addr&gt; public|random &lt;handle&gt; [&lt;handle&gt; [&lt;handle&gt;]..]
</pre></div>
</div>
<p>rget:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: rget
Description: Get the data resulting from the last read operation
Usage: bt &lt;ifname&gt; gatt rget [-h]
</pre></div>
</div>
<p>write:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: write
Description: Initiate a GATT write operation.
Usage: bt &lt;ifname&gt; gatt write [-h] &lt;addr&gt; public|random &lt;handle&gt; &lt;byte&gt; [&lt;byte&gt; [&lt;byte&gt;]..]
</pre></div>
</div>
<p>wget:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>Command: wget
Description: Get the pass/fail result of the last GATT &#39;write&#39; command
Usage: bt &lt;ifname&gt; gatt wget [-h]
</pre></div>
</div>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="../index.html" class="btn btn-neutral float-left" title="Wireless Libraries and NSH Add-Ons" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="../gs2200m/index.html" class="btn btn-neutral float-right" title="gs2200m Telit GS2200M usrsock daemon" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2023, The Apache Software Foundation.</p>
</div>
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>