mirror of
https://github.com/google/bumble.git
synced 2026-04-17 00:35:31 +00:00
Deployed dad7957 with MkDocs version: 1.3.1
This commit is contained in:
20
404.html
20
404.html
@@ -839,8 +839,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="/apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -945,6 +945,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="/apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1195,7 +1209,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1219,13 +1233,7 @@ address[0] is the LSB of the address, address[5] is the MSB.</p>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>bumble/hci.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1674</span>
|
||||
<span class="normal">1675</span>
|
||||
<span class="normal">1676</span>
|
||||
<span class="normal">1677</span>
|
||||
<span class="normal">1678</span>
|
||||
<span class="normal">1679</span>
|
||||
<span class="normal">1680</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1680</span>
|
||||
<span class="normal">1681</span>
|
||||
<span class="normal">1682</span>
|
||||
<span class="normal">1683</span>
|
||||
@@ -1349,7 +1357,20 @@ address[0] is the LSB of the address, address[5] is the MSB.</p>
|
||||
<span class="normal">1801</span>
|
||||
<span class="normal">1802</span>
|
||||
<span class="normal">1803</span>
|
||||
<span class="normal">1804</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Address</span><span class="p">:</span>
|
||||
<span class="normal">1804</span>
|
||||
<span class="normal">1805</span>
|
||||
<span class="normal">1806</span>
|
||||
<span class="normal">1807</span>
|
||||
<span class="normal">1808</span>
|
||||
<span class="normal">1809</span>
|
||||
<span class="normal">1810</span>
|
||||
<span class="normal">1811</span>
|
||||
<span class="normal">1812</span>
|
||||
<span class="normal">1813</span>
|
||||
<span class="normal">1814</span>
|
||||
<span class="normal">1815</span>
|
||||
<span class="normal">1816</span>
|
||||
<span class="normal">1817</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">Address</span><span class="p">:</span>
|
||||
<span class="sd">'''</span>
|
||||
<span class="sd"> Bluetooth Address (see Bluetooth spec Vol 6, Part B - 1.3 DEVICE ADDRESS)</span>
|
||||
<span class="sd"> NOTE: the address bytes are stored in little-endian byte order here, so</span>
|
||||
@@ -1368,6 +1389,11 @@ address[0] is the LSB of the address, address[5] is the MSB.</p>
|
||||
<span class="n">RANDOM_IDENTITY_ADDRESS</span><span class="p">:</span> <span class="s1">'RANDOM_IDENTITY_ADDRESS'</span><span class="p">,</span>
|
||||
<span class="p">}</span>
|
||||
|
||||
<span class="c1"># Type declarations</span>
|
||||
<span class="n">NIL</span><span class="p">:</span> <span class="n">Address</span>
|
||||
<span class="n">ANY</span><span class="p">:</span> <span class="n">Address</span>
|
||||
<span class="n">ANY_RANDOM</span><span class="p">:</span> <span class="n">Address</span>
|
||||
|
||||
<span class="c1"># pylint: disable-next=unnecessary-lambda</span>
|
||||
<span class="n">ADDRESS_TYPE_SPEC</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'size'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'mapper'</span><span class="p">:</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">Address</span><span class="o">.</span><span class="n">address_type_name</span><span class="p">(</span><span class="n">x</span><span class="p">)}</span>
|
||||
|
||||
@@ -1400,7 +1426,9 @@ address[0] is the LSB of the address, address[5] is the MSB.</p>
|
||||
<span class="n">address_type</span> <span class="o">=</span> <span class="n">data</span><span class="p">[</span><span class="n">offset</span> <span class="o">-</span> <span class="mi">1</span><span class="p">]</span>
|
||||
<span class="k">return</span> <span class="n">Address</span><span class="o">.</span><span class="n">parse_address_with_type</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">offset</span><span class="p">,</span> <span class="n">address_type</span><span class="p">)</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">address</span><span class="p">,</span> <span class="n">address_type</span><span class="o">=</span><span class="n">RANDOM_DEVICE_ADDRESS</span><span class="p">):</span>
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
|
||||
<span class="bp">self</span><span class="p">,</span> <span class="n">address</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bytes</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">address_type</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">RANDOM_DEVICE_ADDRESS</span>
|
||||
<span class="p">):</span>
|
||||
<span class="sd">'''</span>
|
||||
<span class="sd"> Initialize an instance. `address` may be a byte array in little-endian</span>
|
||||
<span class="sd"> format, or a hex string in big-endian format (with optional ':'</span>
|
||||
@@ -1515,18 +1543,7 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>bumble/hci.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1725</span>
|
||||
<span class="normal">1726</span>
|
||||
<span class="normal">1727</span>
|
||||
<span class="normal">1728</span>
|
||||
<span class="normal">1729</span>
|
||||
<span class="normal">1730</span>
|
||||
<span class="normal">1731</span>
|
||||
<span class="normal">1732</span>
|
||||
<span class="normal">1733</span>
|
||||
<span class="normal">1734</span>
|
||||
<span class="normal">1735</span>
|
||||
<span class="normal">1736</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1736</span>
|
||||
<span class="normal">1737</span>
|
||||
<span class="normal">1738</span>
|
||||
<span class="normal">1739</span>
|
||||
@@ -1539,7 +1556,22 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
<span class="normal">1746</span>
|
||||
<span class="normal">1747</span>
|
||||
<span class="normal">1748</span>
|
||||
<span class="normal">1749</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">address</span><span class="p">,</span> <span class="n">address_type</span><span class="o">=</span><span class="n">RANDOM_DEVICE_ADDRESS</span><span class="p">):</span>
|
||||
<span class="normal">1749</span>
|
||||
<span class="normal">1750</span>
|
||||
<span class="normal">1751</span>
|
||||
<span class="normal">1752</span>
|
||||
<span class="normal">1753</span>
|
||||
<span class="normal">1754</span>
|
||||
<span class="normal">1755</span>
|
||||
<span class="normal">1756</span>
|
||||
<span class="normal">1757</span>
|
||||
<span class="normal">1758</span>
|
||||
<span class="normal">1759</span>
|
||||
<span class="normal">1760</span>
|
||||
<span class="normal">1761</span>
|
||||
<span class="normal">1762</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
|
||||
<span class="bp">self</span><span class="p">,</span> <span class="n">address</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">bytes</span><span class="p">,</span> <span class="nb">str</span><span class="p">],</span> <span class="n">address_type</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="n">RANDOM_DEVICE_ADDRESS</span>
|
||||
<span class="p">):</span>
|
||||
<span class="sd">'''</span>
|
||||
<span class="sd"> Initialize an instance. `address` may be a byte array in little-endian</span>
|
||||
<span class="sd"> format, or a hex string in big-endian format (with optional ':'</span>
|
||||
@@ -1586,14 +1618,14 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>bumble/hci.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1797</span>
|
||||
<span class="normal">1798</span>
|
||||
<span class="normal">1799</span>
|
||||
<span class="normal">1800</span>
|
||||
<span class="normal">1801</span>
|
||||
<span class="normal">1802</span>
|
||||
<span class="normal">1803</span>
|
||||
<span class="normal">1804</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1810</span>
|
||||
<span class="normal">1811</span>
|
||||
<span class="normal">1812</span>
|
||||
<span class="normal">1813</span>
|
||||
<span class="normal">1814</span>
|
||||
<span class="normal">1815</span>
|
||||
<span class="normal">1816</span>
|
||||
<span class="normal">1817</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
||||
<span class="sd">'''</span>
|
||||
<span class="sd"> String representation of the address, MSB first</span>
|
||||
<span class="sd"> '''</span>
|
||||
@@ -1628,21 +1660,7 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>bumble/hci.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1834</span>
|
||||
<span class="normal">1835</span>
|
||||
<span class="normal">1836</span>
|
||||
<span class="normal">1837</span>
|
||||
<span class="normal">1838</span>
|
||||
<span class="normal">1839</span>
|
||||
<span class="normal">1840</span>
|
||||
<span class="normal">1841</span>
|
||||
<span class="normal">1842</span>
|
||||
<span class="normal">1843</span>
|
||||
<span class="normal">1844</span>
|
||||
<span class="normal">1845</span>
|
||||
<span class="normal">1846</span>
|
||||
<span class="normal">1847</span>
|
||||
<span class="normal">1848</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1848</span>
|
||||
<span class="normal">1849</span>
|
||||
<span class="normal">1850</span>
|
||||
<span class="normal">1851</span>
|
||||
@@ -1652,11 +1670,32 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
<span class="normal">1855</span>
|
||||
<span class="normal">1856</span>
|
||||
<span class="normal">1857</span>
|
||||
<span class="normal">1858</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">HCI_Packet</span><span class="p">:</span>
|
||||
<span class="normal">1858</span>
|
||||
<span class="normal">1859</span>
|
||||
<span class="normal">1860</span>
|
||||
<span class="normal">1861</span>
|
||||
<span class="normal">1862</span>
|
||||
<span class="normal">1863</span>
|
||||
<span class="normal">1864</span>
|
||||
<span class="normal">1865</span>
|
||||
<span class="normal">1866</span>
|
||||
<span class="normal">1867</span>
|
||||
<span class="normal">1868</span>
|
||||
<span class="normal">1869</span>
|
||||
<span class="normal">1870</span>
|
||||
<span class="normal">1871</span>
|
||||
<span class="normal">1872</span>
|
||||
<span class="normal">1873</span>
|
||||
<span class="normal">1874</span>
|
||||
<span class="normal">1875</span>
|
||||
<span class="normal">1876</span>
|
||||
<span class="normal">1877</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">HCI_Packet</span><span class="p">:</span>
|
||||
<span class="sd">'''</span>
|
||||
<span class="sd"> Abstract Base class for HCI packets</span>
|
||||
<span class="sd"> '''</span>
|
||||
|
||||
<span class="n">hci_packet_type</span><span class="p">:</span> <span class="nb">int</span>
|
||||
|
||||
<span class="nd">@staticmethod</span>
|
||||
<span class="k">def</span> <span class="nf">from_bytes</span><span class="p">(</span><span class="n">packet</span><span class="p">):</span>
|
||||
<span class="n">packet_type</span> <span class="o">=</span> <span class="n">packet</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
|
||||
@@ -1675,6 +1714,9 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">):</span>
|
||||
<span class="bp">self</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__bytes__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">bytes</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">NotImplementedError</span>
|
||||
|
||||
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="nb">str</span><span class="p">:</span>
|
||||
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">name</span>
|
||||
</code></pre></div></td></tr></table></div>
|
||||
@@ -1716,29 +1758,7 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>bumble/hci.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1870</span>
|
||||
<span class="normal">1871</span>
|
||||
<span class="normal">1872</span>
|
||||
<span class="normal">1873</span>
|
||||
<span class="normal">1874</span>
|
||||
<span class="normal">1875</span>
|
||||
<span class="normal">1876</span>
|
||||
<span class="normal">1877</span>
|
||||
<span class="normal">1878</span>
|
||||
<span class="normal">1879</span>
|
||||
<span class="normal">1880</span>
|
||||
<span class="normal">1881</span>
|
||||
<span class="normal">1882</span>
|
||||
<span class="normal">1883</span>
|
||||
<span class="normal">1884</span>
|
||||
<span class="normal">1885</span>
|
||||
<span class="normal">1886</span>
|
||||
<span class="normal">1887</span>
|
||||
<span class="normal">1888</span>
|
||||
<span class="normal">1889</span>
|
||||
<span class="normal">1890</span>
|
||||
<span class="normal">1891</span>
|
||||
<span class="normal">1892</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1892</span>
|
||||
<span class="normal">1893</span>
|
||||
<span class="normal">1894</span>
|
||||
<span class="normal">1895</span>
|
||||
@@ -1812,13 +1832,35 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
<span class="normal">1963</span>
|
||||
<span class="normal">1964</span>
|
||||
<span class="normal">1965</span>
|
||||
<span class="normal">1966</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">HCI_Command</span><span class="p">(</span><span class="n">HCI_Packet</span><span class="p">):</span>
|
||||
<span class="normal">1966</span>
|
||||
<span class="normal">1967</span>
|
||||
<span class="normal">1968</span>
|
||||
<span class="normal">1969</span>
|
||||
<span class="normal">1970</span>
|
||||
<span class="normal">1971</span>
|
||||
<span class="normal">1972</span>
|
||||
<span class="normal">1973</span>
|
||||
<span class="normal">1974</span>
|
||||
<span class="normal">1975</span>
|
||||
<span class="normal">1976</span>
|
||||
<span class="normal">1977</span>
|
||||
<span class="normal">1978</span>
|
||||
<span class="normal">1979</span>
|
||||
<span class="normal">1980</span>
|
||||
<span class="normal">1981</span>
|
||||
<span class="normal">1982</span>
|
||||
<span class="normal">1983</span>
|
||||
<span class="normal">1984</span>
|
||||
<span class="normal">1985</span>
|
||||
<span class="normal">1986</span>
|
||||
<span class="normal">1987</span>
|
||||
<span class="normal">1988</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span> <span class="nc">HCI_Command</span><span class="p">(</span><span class="n">HCI_Packet</span><span class="p">):</span>
|
||||
<span class="sd">'''</span>
|
||||
<span class="sd"> See Bluetooth spec @ Vol 2, Part E - 5.4.1 HCI Command Packet</span>
|
||||
<span class="sd"> '''</span>
|
||||
|
||||
<span class="n">hci_packet_type</span> <span class="o">=</span> <span class="n">HCI_COMMAND_PACKET</span>
|
||||
<span class="n">command_classes</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
<span class="n">command_classes</span><span class="p">:</span> <span class="n">Dict</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="n">Type</span><span class="p">[</span><span class="n">HCI_Command</span><span class="p">]]</span> <span class="o">=</span> <span class="p">{}</span>
|
||||
|
||||
<span class="nd">@staticmethod</span>
|
||||
<span class="k">def</span> <span class="nf">command</span><span class="p">(</span><span class="n">fields</span><span class="o">=</span><span class="p">(),</span> <span class="n">return_parameters_fields</span><span class="o">=</span><span class="p">()):</span>
|
||||
@@ -1944,34 +1986,34 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>bumble/hci.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1878</span>
|
||||
<span class="normal">1879</span>
|
||||
<span class="normal">1880</span>
|
||||
<span class="normal">1881</span>
|
||||
<span class="normal">1882</span>
|
||||
<span class="normal">1883</span>
|
||||
<span class="normal">1884</span>
|
||||
<span class="normal">1885</span>
|
||||
<span class="normal">1886</span>
|
||||
<span class="normal">1887</span>
|
||||
<span class="normal">1888</span>
|
||||
<span class="normal">1889</span>
|
||||
<span class="normal">1890</span>
|
||||
<span class="normal">1891</span>
|
||||
<span class="normal">1892</span>
|
||||
<span class="normal">1893</span>
|
||||
<span class="normal">1894</span>
|
||||
<span class="normal">1895</span>
|
||||
<span class="normal">1896</span>
|
||||
<span class="normal">1897</span>
|
||||
<span class="normal">1898</span>
|
||||
<span class="normal">1899</span>
|
||||
<span class="normal">1900</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1900</span>
|
||||
<span class="normal">1901</span>
|
||||
<span class="normal">1902</span>
|
||||
<span class="normal">1903</span>
|
||||
<span class="normal">1904</span>
|
||||
<span class="normal">1905</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@staticmethod</span>
|
||||
<span class="normal">1905</span>
|
||||
<span class="normal">1906</span>
|
||||
<span class="normal">1907</span>
|
||||
<span class="normal">1908</span>
|
||||
<span class="normal">1909</span>
|
||||
<span class="normal">1910</span>
|
||||
<span class="normal">1911</span>
|
||||
<span class="normal">1912</span>
|
||||
<span class="normal">1913</span>
|
||||
<span class="normal">1914</span>
|
||||
<span class="normal">1915</span>
|
||||
<span class="normal">1916</span>
|
||||
<span class="normal">1917</span>
|
||||
<span class="normal">1918</span>
|
||||
<span class="normal">1919</span>
|
||||
<span class="normal">1920</span>
|
||||
<span class="normal">1921</span>
|
||||
<span class="normal">1922</span>
|
||||
<span class="normal">1923</span>
|
||||
<span class="normal">1924</span>
|
||||
<span class="normal">1925</span>
|
||||
<span class="normal">1926</span>
|
||||
<span class="normal">1927</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@staticmethod</span>
|
||||
<span class="k">def</span> <span class="nf">command</span><span class="p">(</span><span class="n">fields</span><span class="o">=</span><span class="p">(),</span> <span class="n">return_parameters_fields</span><span class="o">=</span><span class="p">()):</span>
|
||||
<span class="sd">'''</span>
|
||||
<span class="sd"> Decorator used to declare and register subclasses</span>
|
||||
@@ -2028,16 +2070,16 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
|
||||
<details class="quote">
|
||||
<summary>Source code in <code>bumble/hci.py</code></summary>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2009</span>
|
||||
<span class="normal">2010</span>
|
||||
<span class="normal">2011</span>
|
||||
<span class="normal">2012</span>
|
||||
<span class="normal">2013</span>
|
||||
<span class="normal">2014</span>
|
||||
<span class="normal">2015</span>
|
||||
<span class="normal">2016</span>
|
||||
<span class="normal">2017</span>
|
||||
<span class="normal">2018</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@HCI_Command</span><span class="o">.</span><span class="n">command</span><span class="p">(</span>
|
||||
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">2031</span>
|
||||
<span class="normal">2032</span>
|
||||
<span class="normal">2033</span>
|
||||
<span class="normal">2034</span>
|
||||
<span class="normal">2035</span>
|
||||
<span class="normal">2036</span>
|
||||
<span class="normal">2037</span>
|
||||
<span class="normal">2038</span>
|
||||
<span class="normal">2039</span>
|
||||
<span class="normal">2040</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="nd">@HCI_Command</span><span class="o">.</span><span class="n">command</span><span class="p">(</span>
|
||||
<span class="p">[</span>
|
||||
<span class="p">(</span><span class="s1">'connection_handle'</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span>
|
||||
<span class="p">(</span><span class="s1">'reason'</span><span class="p">,</span> <span class="p">{</span><span class="s1">'size'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'mapper'</span><span class="p">:</span> <span class="n">HCI_Constant</span><span class="o">.</span><span class="n">error_name</span><span class="p">}),</span>
|
||||
@@ -2108,7 +2150,7 @@ the type is set to PUBLIC_DEVICE_ADDRESS.</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
1451
apps_and_tools/bench.html
Normal file
1451
apps_and_tools/bench.html
Normal file
File diff suppressed because it is too large
Load Diff
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1261,13 +1275,13 @@
|
||||
</a>
|
||||
|
||||
|
||||
<a href="link_relay.html" title="Link Relay" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
|
||||
<a href="bench.html" title="Bench" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
|
||||
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
|
||||
<span class="md-flex__ellipsis">
|
||||
<span class="md-footer-nav__direction">
|
||||
Next
|
||||
</span>
|
||||
Link Relay
|
||||
Bench
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
@@ -1283,7 +1297,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -846,8 +846,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -846,8 +846,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -846,8 +846,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1243,7 +1257,7 @@ a Bluetooth host, and we are connecting it to a virtual controller attached to a
|
||||
<div class="md-footer-nav">
|
||||
<nav class="md-footer-nav__inner md-grid">
|
||||
|
||||
<a href="link_relay.html" title="Link Relay" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
||||
<a href="bench.html" title="Bench" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
|
||||
</div>
|
||||
@@ -1252,7 +1266,7 @@ a Bluetooth host, and we are connecting it to a virtual controller attached to a
|
||||
<span class="md-footer-nav__direction">
|
||||
Previous
|
||||
</span>
|
||||
Link Relay
|
||||
Bench
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
@@ -1280,7 +1294,7 @@ a Bluetooth host, and we are connecting it to a virtual controller attached to a
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1205,6 +1219,7 @@
|
||||
These include:</p>
|
||||
<ul>
|
||||
<li><a href="console.html">Console</a> - an interactive text-based console</li>
|
||||
<li><a href="bench.html">Bench</a> - Speed and Latency benchmarking between two devices (LE and Classic)</li>
|
||||
<li><a href="pair.html">Pair</a> - Pair/bond two devices (LE and Classic)</li>
|
||||
<li><a href="unbond.html">Unbond</a> - Remove a previously established bond</li>
|
||||
<li><a href="hci_bridge.html">HCI Bridge</a> - a HCI transport bridge to connect two HCI transports and filter/snoop the HCI packets</li>
|
||||
@@ -1267,7 +1282,7 @@ These include:</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,21 +844,11 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--active">
|
||||
|
||||
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="link_relay.html" class="md-nav__link md-nav__link--active">
|
||||
Link Relay
|
||||
<li class="md-nav__item">
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
@@ -962,6 +952,30 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item md-nav__item--active">
|
||||
|
||||
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<a href="link_relay.html" class="md-nav__link md-nav__link--active">
|
||||
Link Relay
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1244,7 +1258,7 @@ The moniker syntax is: <code>link-relay:ws://<hostname>/<room></code
|
||||
<div class="md-footer-nav">
|
||||
<nav class="md-footer-nav__inner md-grid">
|
||||
|
||||
<a href="console.html" title="Console" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
||||
<a href="usb_probe.html" title="USB Probe" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
|
||||
</div>
|
||||
@@ -1253,19 +1267,19 @@ The moniker syntax is: <code>link-relay:ws://<hostname>/<room></code
|
||||
<span class="md-footer-nav__direction">
|
||||
Previous
|
||||
</span>
|
||||
Console
|
||||
USB Probe
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
<a href="hci_bridge.html" title="HCI Bridge" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
|
||||
<a href="../hardware/index.html" title="Overview" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
|
||||
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
|
||||
<span class="md-flex__ellipsis">
|
||||
<span class="md-footer-nav__direction">
|
||||
Next
|
||||
</span>
|
||||
HCI Bridge
|
||||
Overview
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
@@ -1281,7 +1295,7 @@ The moniker syntax is: <code>link-relay:ws://<hostname>/<room></code
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -846,8 +846,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -846,8 +846,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -846,8 +846,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -846,8 +846,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1317,13 +1331,13 @@ Product: USB2.0-BT
|
||||
</a>
|
||||
|
||||
|
||||
<a href="../hardware/index.html" title="Overview" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
|
||||
<a href="link_relay.html" title="Link Relay" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
|
||||
<div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
|
||||
<span class="md-flex__ellipsis">
|
||||
<span class="md-footer-nav__direction">
|
||||
Next
|
||||
</span>
|
||||
Overview
|
||||
Link Relay
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
@@ -1339,7 +1353,7 @@ Product: USB2.0-BT
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1256,7 +1270,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1286,7 +1300,7 @@ You may want to configure your own environment to "format on save" with <code>bl
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1261,7 +1275,7 @@ To run the basic checks (essentially: running the tests, the linter, and the for
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -921,8 +921,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1027,6 +1027,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1399,7 +1413,7 @@ This will create a new environment, named <code>bumble</code>, which you can the
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,8 +844,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -950,6 +950,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1629,7 +1643,7 @@ for those characteristics at regular intervals.</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -854,8 +854,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -960,6 +960,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1328,7 +1342,7 @@ details on interfacing with either hardware modules or virtual controllers over
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,8 +844,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -950,6 +950,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1232,7 +1246,7 @@ On Linux, the <a href="../transports/vhci.html">VHCI Transport</a> can be used t
|
||||
<div class="md-footer-nav">
|
||||
<nav class="md-footer-nav__inner md-grid">
|
||||
|
||||
<a href="../apps_and_tools/usb_probe.html" title="USB Probe" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
||||
<a href="../apps_and_tools/link_relay.html" title="Link Relay" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
|
||||
<div class="md-flex__cell md-flex__cell--shrink">
|
||||
<i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
|
||||
</div>
|
||||
@@ -1241,7 +1255,7 @@ On Linux, the <a href="../transports/vhci.html">VHCI Transport</a> can be used t
|
||||
<span class="md-footer-nav__direction">
|
||||
Previous
|
||||
</span>
|
||||
USB Probe
|
||||
Link Relay
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
@@ -1269,7 +1283,7 @@ On Linux, the <a href="../transports/vhci.html">VHCI Transport</a> can be used t
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
23
index.html
23
index.html
@@ -1064,8 +1064,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1170,6 +1170,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1609,8 +1623,7 @@ The project initially only supported BLE (Bluetooth Low Energy), but support for
|
||||
eventually added. Support for BLE is therefore currently somewhat more advanced than for Classic.</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>This project is still very much experimental and in an alpha state where a lot of things are still missing or broken, and what's there changes frequently.
|
||||
Also, there are still a few hardcoded values/parameters in some of the examples and apps which need to be changed (those will eventually be command line arguments, as appropriate)</p>
|
||||
<p>This project is still in an early state of development where some things are still missing or broken, and what's implemented may change and evolve frequently.</p>
|
||||
</div>
|
||||
<h2 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">¶</a></h2>
|
||||
<p>The goal of this project is to offer a suite of components that can be put together to implement a number of tasks related to Bluetooth. That's fairly open-ended, but at the very least, it should be possible to:</p>
|
||||
@@ -1765,7 +1778,7 @@ Some platforms support features that not all platforms support</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,8 +844,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -950,6 +950,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1137,10 +1151,23 @@
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#connecting-to-root-canal" class="md-nav__link">
|
||||
Connecting to Root Canal
|
||||
<a href="#connecting-to-netsim" class="md-nav__link">
|
||||
Connecting to Netsim
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="Connecting to Netsim">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#multiple-instances" class="md-nav__link">
|
||||
Multiple Instances
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -1254,10 +1281,23 @@
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#connecting-to-root-canal" class="md-nav__link">
|
||||
Connecting to Root Canal
|
||||
<a href="#connecting-to-netsim" class="md-nav__link">
|
||||
Connecting to Netsim
|
||||
</a>
|
||||
|
||||
<nav class="md-nav" aria-label="Connecting to Netsim">
|
||||
<ul class="md-nav__list">
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#multiple-instances" class="md-nav__link">
|
||||
Multiple Instances
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -1296,20 +1336,21 @@ emulator.</p>
|
||||
<ul>
|
||||
<li>Connecting the Bumble host stack to the Android emulator's virtual controller.</li>
|
||||
<li>Using Bumble as an HCI bridge to connect the Android emulator to a physical
|
||||
Bluetooth controller, such as a USB dongle</li>
|
||||
Bluetooth controller, such as a USB dongle, or other HCI transport.</li>
|
||||
</ul>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>Bluetooth support in the Android emulator is a recent feature that may still
|
||||
be evolving. The information contained here be somewhat out of sync with the
|
||||
version of the emulator you are using.
|
||||
You will need version 31.3.8.0 or later.</p>
|
||||
You will need version 33.1.4.0 or later.</p>
|
||||
</div>
|
||||
<p>The Android emulator supports Bluetooth in two ways: either by exposing virtual
|
||||
Bluetooth controllers to which you can connect a virtual Bluetooth host stack, or
|
||||
by exposing an way to connect your own virtual controller to the Android Bluetooth
|
||||
by exposing a way to connect your own virtual controller to the Android Bluetooth
|
||||
stack via a virtual HCI interface.
|
||||
Both ways are controlled via gRPC requests to the Android emulator.</p>
|
||||
Both ways are controlled via gRPC requests to the Android emulator controller and/or
|
||||
from the Android emulator.</p>
|
||||
<h2 id="launching-the-emulator">Launching the Emulator<a class="headerlink" href="#launching-the-emulator" title="Permanent link">¶</a></h2>
|
||||
<p>If the version of the emulator you are running does not yet support enabling
|
||||
Bluetooth support by default or automatically, you must launch the emulator from
|
||||
@@ -1319,43 +1360,69 @@ the command line.</p>
|
||||
<p>For details on how to launch the Android emulator from the command line,
|
||||
visit <a href="https://developer.android.com/studio/run/emulator-commandline">this Android Studio user guide page</a></p>
|
||||
</div>
|
||||
<p>The <code>-grpc <port></code> command line option may be used to select a gRPC port other than the default.</p>
|
||||
<h2 id="connecting-to-root-canal">Connecting to Root Canal<a class="headerlink" href="#connecting-to-root-canal" title="Permanent link">¶</a></h2>
|
||||
<p>The Android emulator's virtual Bluetooth controller is called <strong>Root Canal</strong>.
|
||||
Multiple instances of Root Canal virtual controllers can be instantiated, they
|
||||
communicate link layer packets between them, thus creating a virtual radio network.
|
||||
Configuring a Bumble Device instance to use Root Canal as a virtual controller
|
||||
<p>The <code>-packet-streamer-endpoint <endpoint></code> command line option may be used to enable
|
||||
Bluetooth emulation and tell the emulator which virtual controller to connect to. </p>
|
||||
<h2 id="connecting-to-netsim">Connecting to Netsim<a class="headerlink" href="#connecting-to-netsim" title="Permanent link">¶</a></h2>
|
||||
<p>If the emulator doesn't have Bluetooth emulation enabled by default, use the
|
||||
<code>-packet-streamer-endpoint default</code> option to tell it to connect to Netsim.
|
||||
If Netsim is not running, the emulator will start it automatically.</p>
|
||||
<p>The Android emulator's virtual Bluetooth controller is called <strong>Netsim</strong>.
|
||||
Netsim runs as a background process and allows multiple clients to connect to it,
|
||||
each connecting to its own virtual controller instance hosted by Netsim. All the
|
||||
clients connected to the same Netsim process can then "talk" to each other over a
|
||||
virtual radio link layer.
|
||||
Netsim supports other wireless protocols than Bluetooth, but the relevant part here
|
||||
is Bluetooth. The virtual Bluetooth controller used by Netsim is sometimes referred to
|
||||
as <strong>Root Canal</strong>.</p>
|
||||
<p>Configuring a Bumble Device instance to use netsim as a virtual controller
|
||||
allows that virtual device to communicate with the Android Bluetooth stack, and
|
||||
through it with Android applications as well as system-managed profiles.
|
||||
To connect a Bumble host stack to a Root Canal virtual controller instance, use
|
||||
the bumble <code>android-emulator</code> transport in <code>host</code> mode (the default).</p>
|
||||
To connect a Bumble host stack to a netsim virtual controller instance, use
|
||||
the Bumble <code>android-netsim</code> transport in <code>host</code> mode (the default).</p>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Run the example GATT server connected to the emulator</p>
|
||||
<div class="highlight"><pre><span></span><code>$ python run_gatt_server.py device1.json android-emulator
|
||||
<p class="admonition-title">Run the example GATT server connected to the emulator via Netsim</p>
|
||||
<div class="highlight"><pre><span></span><code>$ python run_gatt_server.py device1.json android-netsim
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<p>By default, the Bumble <code>android-netsim</code> transport will try to automatically discover
|
||||
the port number on which the netsim process is exposing its gRPC server interface. If
|
||||
that discovery process fails, or if you want to specify the interface manually, you
|
||||
can pass a <code>hostname</code> and <code>port</code> as parameters to the transport, as: <code>android-netsim:<host>:<port></code>.</p>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Run the example GATT server connected to the emulator via Netsim on a localhost, port 8877</p>
|
||||
<div class="highlight"><pre><span></span><code>$ python run_gatt_server.py device1.json android-netsim:localhost:8877
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<h3 id="multiple-instances">Multiple Instances<a class="headerlink" href="#multiple-instances" title="Permanent link">¶</a></h3>
|
||||
<p>If you want to connect multiple Bumble devices to netsim, it may be useful to give each one
|
||||
a netsim controller with a specific name. This can be done using the <code>name=<name></code> transport option.
|
||||
For example: <code>android-netsim:localhost:8877,name=bumble1</code></p>
|
||||
<h2 id="connecting-a-custom-virtual-controller">Connecting a Custom Virtual Controller<a class="headerlink" href="#connecting-a-custom-virtual-controller" title="Permanent link">¶</a></h2>
|
||||
<p>This is an advanced use case, which may not be officially supported, but should work in recent
|
||||
versions of the emulator.
|
||||
You will likely need to start the emulator from the command line, in order to specify the <code>-forward-vhci</code> option (unless the emulator offers a way to control that feature from a user/ui menu).</p>
|
||||
versions of the emulator.</p>
|
||||
<p>The first step is to run the Bumble HCI bridge, specifying netsim as the "host" end of the
|
||||
bridge, and another controller (typically a USB Bluetooth dongle, but any other supported
|
||||
transport can work as well) as the "controller" end of the bridge.</p>
|
||||
<p>To connect a virtual controller to the Android Bluetooth stack, use the bumble <code>android-netsim</code> transport in <code>controller</code> mode. For example, with port number 8877, the transport name would be: <code>android-netsim:_:8877,mode=controller</code>.</p>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Launch the emulator with VHCI forwarding</p>
|
||||
<p>In this example, we launch an emulator AVD named "Tiramisu"
|
||||
<div class="highlight"><pre><span></span><code>$ emulator -forward-vhci -avd Tiramisu
|
||||
<p class="admonition-title">Connect the Android emulator to the first USB Bluetooth dongle, using the <code>hci_bridge</code> application</p>
|
||||
<div class="highlight"><pre><span></span><code>$ bumble-hci-bridge android-netsim:_:8877,mode<span class="o">=</span>controller usb:0
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<p>Then, you can start the emulator and tell it to connect to this bridge, instead of netsim.
|
||||
You will likely need to start the emulator from the command line, in order to specify the <code>-packet-streamer-endpoint <hostname>:<port></code> option (unless the emulator offers a way to control that feature from a user/ui menu).</p>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Launch the emulator with a netsim replacement</p>
|
||||
<p>In this example, we launch an emulator AVD named "Tiramisu", with a Bumble HCI bridge running
|
||||
on port 8877.
|
||||
<div class="highlight"><pre><span></span><code>$ emulator -packet-streamer-endpoint localhost:8877 -avd Tiramisu
|
||||
</code></pre></div></p>
|
||||
</div>
|
||||
<div class="admonition tip">
|
||||
<p class="admonition-title">Tip</p>
|
||||
<p>Attaching a virtual controller use the VHCI forwarder while the Android Bluetooth stack
|
||||
is running isn't supported. So you need to disable Bluetooth in your running Android guest
|
||||
<p>Attaching a virtual controller while the Android Bluetooth stack is running may not be well supported. So you may need to disable Bluetooth in your running Android guest
|
||||
before attaching the virtual controller, then re-enable it once attached.</p>
|
||||
</div>
|
||||
<p>To connect a virtual controller to the Android Bluetooth stack, use the bumble <code>android-emulator</code> transport in <code>controller</code> mode. For example, using the default gRPC port, the transport name would be: <code>android-emulator:mode=controller</code>.</p>
|
||||
<div class="admonition example">
|
||||
<p class="admonition-title">Connect the Android emulator to the first USB Bluetooth dongle, using the <code>hci_bridge</code> application</p>
|
||||
<div class="highlight"><pre><span></span><code>$ bumble-hci-bridge android-emulator:mode<span class="o">=</span>controller usb:0
|
||||
</code></pre></div>
|
||||
</div>
|
||||
<h2 id="other-tools">Other Tools<a class="headerlink" href="#other-tools" title="Permanent link">¶</a></h2>
|
||||
<p>The <code>show</code> application that's included with Bumble can be used to parse and pretty-print the HCI packets
|
||||
from an Android HCI "snoop log" (see <a href="https://source.android.com/devices/bluetooth/verifying_debugging">this page</a>
|
||||
@@ -1421,7 +1488,7 @@ Use the <code>--format snoop</code> option to specify that the file is in that s
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,8 +844,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -950,6 +950,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1264,7 +1278,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,8 +844,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -950,6 +950,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1660,7 +1674,7 @@ F0:F1:F2:F3:F4:F5 Bumble
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,8 +844,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -950,6 +950,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1309,7 +1323,7 @@ A reboot shouldn't be necessary after that. See <a href="https://developer.apple
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -844,8 +844,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -950,6 +950,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1308,7 +1322,7 @@ Once the WinUSB driver is correctly assigned to your device, you can confirm tha
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
103
sitemap.xml
103
sitemap.xml
@@ -2,247 +2,252 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2022-12-19</lastmod>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
<url>
|
||||
<loc>None</loc>
|
||||
<lastmod>2023-05-03</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
</urlset>
|
||||
BIN
sitemap.xml.gz
BIN
sitemap.xml.gz
Binary file not shown.
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1247,26 +1261,46 @@
|
||||
|
||||
|
||||
<h1 id="android-emulator-transport">ANDROID EMULATOR TRANSPORT<a class="headerlink" href="#android-emulator-transport" title="Permanent link">¶</a></h1>
|
||||
<p>The Android emulator transport either connects, as a host, to a "Root Canal" virtual controller
|
||||
("host" mode), or attaches a virtual controller to the Android Bluetooth host stack ("controller" mode).</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>Bluetooth support in the Android emulator has recently changed. The older mode, using
|
||||
the <code>android-emulator</code> transport name with Bumble, while still implemented, is now
|
||||
obsolete, and may not be supported by recent versions of the emulator.
|
||||
Use the <code>android-netsim</code> transport name instead.</p>
|
||||
</div>
|
||||
<p>The Android "netsim" transport either connects, as a host, to a <strong>Netsim</strong> virtual controller
|
||||
("host" mode), or acts as a virtual controller itself ("controller" mode) accepting host
|
||||
connections.</p>
|
||||
<h2 id="moniker">Moniker<a class="headerlink" href="#moniker" title="Permanent link">¶</a></h2>
|
||||
<p>The moniker syntax for an Android Emulator transport is: <code>android-emulator:[mode=<host|controller>][<hostname>:<port>]</code>, where
|
||||
the <code>mode</code> parameter can specify running as a host or a controller, and <code><hostname>:<port></code> can specify a host name (or IP address) and TCP port number on which to reach the gRPC server for the emulator.
|
||||
Both the <code>mode=<host|controller></code> and <code><hostname>:<port></code> parameters are optional (so the moniker <code>android-emulator</code> by itself is a valid moniker, which will create a transport in <code>host</code> mode, connected to <code>localhost</code> on the default gRPC port for the emulator).</p>
|
||||
<p>The moniker syntax for an Android Emulator "netsim" transport is: <code>android-netsim:[<host>:<port>][<options>]</code>,
|
||||
where <code><options></code> is a ','-separated list of <code><name>=<value></code> pairs<code>.
|
||||
The</code>mode<code>parameter name can specify running as a host or a controller, and</code><hostname>:<port><code>can specify a host name (or IP address) and TCP port number on which to reach the gRPC server for the emulator (in "host" mode), or to accept gRPC connections (in "controller" mode).
|
||||
Both the</code>mode=<host|controller><code>and</code><hostname>:<port><code>parameters are optional (so the moniker</code>android-netsim<code>by itself is a valid moniker, which will create a transport in</code>host<code>mode, connected to</code>localhost` on the default gRPC port for the Netsim background process).</p>
|
||||
<div class="admonition example example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<p><code>android-emulator</code>
|
||||
connect as a host to the emulator on localhost:8554</p>
|
||||
<p><code>android-netsim</code>
|
||||
connect as a host to Netsim on the gRPC port discovered automatically.</p>
|
||||
</div>
|
||||
<div class="admonition example example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<p><code>android-emulator:mode=controller</code>
|
||||
connect as a controller to the emulator on localhost:8554</p>
|
||||
<p><code>android-netsim:_:8555,mode=controller</code>
|
||||
Run as a controller, accepting gRPC connection on port 8555.</p>
|
||||
</div>
|
||||
<div class="admonition example example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<p><code>android-emulator:localhost:8555</code>
|
||||
connect as a host to the emulator on localhost:8555</p>
|
||||
<p><code>android-netsim:localhost:8555</code>
|
||||
connect as a host to Netsim on localhost:8555</p>
|
||||
</div>
|
||||
<div class="admonition example example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<p><code>android-netsim:localhost:8555</code>
|
||||
connect as a host to Netsim on localhost:8555</p>
|
||||
</div>
|
||||
<div class="admonition example example">
|
||||
<p class="admonition-title">Example</p>
|
||||
<p><code>android-netsim:name=bumble1234</code>
|
||||
connect as a host to Netsim on the discovered gRPC port, using <code>bumble1234</code> as the
|
||||
controller instance name.</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1323,7 +1357,7 @@ connect as a host to the emulator on localhost:8555</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1311,7 +1325,7 @@ Opens the pseudo terminal <code>/dev/ttys001</code> as a transport</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1318,7 +1332,7 @@ Use an HCI socket to the first Bluetooth controller (<code>hci0 on Linux</code>)
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1216,7 +1230,8 @@ Several types of transports are supported:</p>
|
||||
<li><a href="pty.html">PTY</a>: a PTY (pseudo terminal) is used to send/receive HCI packets. This is convenient to expose a virtual controller as if it were an HCI UART</li>
|
||||
<li><a href="vhci.html">VHCI</a>: used to attach a virtual controller to a Bluetooth stack on platforms that support it.</li>
|
||||
<li><a href="hci_socket.html">HCI Socket</a>: an HCI socket, on platforms that support it, to send/receive HCI packets to/from an HCI controller managed by the OS.</li>
|
||||
<li><a href="android_emulator.html">Android Emulator</a>: a gRPC connection to an Android emulator is used to setup either an HCI interface to the emulator's "Root Canal" virtual controller, or attach a virtual controller to the Android Bluetooth host stack.</li>
|
||||
<li><a href="android_emulator.html">Android Emulator</a>: a gRPC connection to the Android emulator's "netsim"
|
||||
virtual controller, or from the Android emulator, is used to setup either an HCI interface to the emulator's "netsim" virtual controller, or serve as a virtual controller for the Android Bluetooth host stack.</li>
|
||||
<li><a href="file.html">File</a>: HCI packets are read/written to a file-like node in the filesystem.</li>
|
||||
</ul>
|
||||
|
||||
@@ -1274,7 +1289,7 @@ Several types of transports are supported:</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1311,7 +1325,7 @@ Creates a PTY entry and a symbolic link, named <code>virtual_hci</code>, linking
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1311,7 +1325,7 @@ Opens the serial port <code>/dev/tty.usbmodem0006839912172</code> at <code>10000
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1310,7 +1324,7 @@ Connects to port 9001 on the local host</p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1312,7 +1326,7 @@ Waits for and accepts connections on port <code>9001</code></p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1310,7 +1324,7 @@ UDP transport where packets are received on port <code>9000</code> and sent to <
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -948,8 +948,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1054,6 +1054,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1474,7 +1488,7 @@ Bus 003 Device 014: ID 0b05:17cb ASUSTek Computer, Inc. Broadcom BCM20702A0 Blue
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1314,7 +1328,7 @@ Attaches a virtual controller transport to <code>/dev/vhci</code></p>
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1310,7 +1324,7 @@ UDP transport where packets are received on port <code>9000</code> and sent to <
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -887,8 +887,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -993,6 +993,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1310,7 +1324,7 @@ UDP transport where packets are received on port <code>9000</code> and sent to <
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1265,7 +1279,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1264,7 +1278,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1264,7 +1278,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1264,7 +1278,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1264,7 +1278,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1270,7 +1284,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -856,8 +856,8 @@
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
<a href="../apps_and_tools/bench.html" class="md-nav__link">
|
||||
Bench
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -962,6 +962,20 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="../apps_and_tools/link_relay.html" class="md-nav__link">
|
||||
Link Relay
|
||||
</a>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</li>
|
||||
@@ -1264,7 +1278,7 @@
|
||||
<div class="md-footer-copyright">
|
||||
|
||||
<div class="md-footer-copyright__highlight">
|
||||
Copyright 2021-2022 Google LLC
|
||||
Copyright 2021-2023 Google LLC
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user