Deployed 7ae3a1d with MkDocs version: 1.3.1

This commit is contained in:
Gilles Boccon-Gibod
2022-12-18 20:55:03 -08:00
parent 3581c8d710
commit 5f0477bd28
53 changed files with 4623 additions and 561 deletions

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1222,21 +1250,22 @@
<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>
<h2 id="moniker">Moniker<a class="headerlink" href="#moniker" title="Permanent link">&para;</a></h2>
<p>The moniker syntax for an Android Emulator transport is: <code>android-emulator:[mode=&lt;host|controller&gt;][mode=&lt;host|controller&gt;]</code>.
Both the <code>mode=&lt;host|controller&gt;</code> and <code>mode=&lt;host|controller&gt;</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 transport is: <code>android-emulator:[mode=&lt;host|controller&gt;][&lt;hostname&gt;:&lt;port&gt;]</code>, where
the <code>mode</code> parameter can specify running as a host or a controller, and <code>&lt;hostname&gt;:&lt;port&gt;</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=&lt;host|controller&gt;</code> and <code>&lt;hostname&gt;:&lt;port&gt;</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>
<div class="admonition example example">
<p class="admonition-title">Example</p>
<p><code>android-emulator</code><br />
<p><code>android-emulator</code>
connect as a host to the emulator on localhost:8554</p>
</div>
<div class="admonition example example">
<p class="admonition-title">Example</p>
<p><code>android-emulator:mode=controller</code><br />
<p><code>android-emulator:mode=controller</code>
connect as a controller to the emulator on localhost:8554</p>
</div>
<div class="admonition example example">
<p class="admonition-title">Example</p>
<p><code>android-emulator:localhost:8555</code><br />
<p><code>android-emulator:localhost:8555</code>
connect as a host to the emulator on localhost:8555</p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1225,7 +1253,7 @@ This is typically used to open a PTY, or unix driver, not for real files.</p>
<p>The moniker for a File transport is <code>file:&lt;path&gt;</code></p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>file:/dev/ttys001</code><br />
<p><code>file:/dev/ttys001</code>
Opens the pseudo terminal <code>/dev/ttys001</code> as a transport</p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1228,7 +1256,7 @@
<p>The moniker for an HCI Socket transport is either just <code>hci-socket</code> (to use the default/first Bluetooth controller), or <code>hci-socket:&lt;index&gt;</code> where <code>&lt;index&gt;</code> is the 0-based index of a Bluetooth controller device.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>hci-socket</code><br />
<p><code>hci-socket</code>
Use an HCI socket to the first Bluetooth controller (<code>hci0 on Linux</code>)</p>
</div>
<div class="admonition tip">

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1225,7 +1253,7 @@
Where <code>path</code>, is used, is the path name where a symbolic link to the PTY will be created for convenience (the link will be removed when the transport is closed or when the process exits).</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>pty:virtual_hci</code><br />
<p><code>pty:virtual_hci</code>
Creates a PTY entry and a symbolic link, named <code>virtual_hci</code>, linking to the PTY</p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1225,7 +1253,7 @@
When <code>&lt;speed&gt;</code> is omitted, the default value of 1000000 is used</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>serial:/dev/tty.usbmodem0006839912172,1000000</code><br />
<p><code>serial:/dev/tty.usbmodem0006839912172,1000000</code>
Opens the serial port <code>/dev/tty.usbmodem0006839912172</code> at <code>1000000</code>bps</p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1224,7 +1252,7 @@
<p>The moniker syntax for a TCP client transport is: <code>tcp-client:&lt;remote-host&gt;:&lt;remote-port&gt;</code></p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>tcp-client:127.0.0.1:9001</code><br />
<p><code>tcp-client:127.0.0.1:9001</code>
Connects to port 9001 on the local host</p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1222,11 +1250,11 @@
<p>The TCP Client transport uses an incoming TCP connection to a host:port address.</p>
<h2 id="moniker">Moniker<a class="headerlink" href="#moniker" title="Permanent link">&para;</a></h2>
<p>The moniker syntax for a TCP server transport is: <code>tcp-server:&lt;local-host&gt;:&lt;local-port&gt;</code>
where <code>&lt;local-host&gt;</code> may be the address of a local network interface, or <code>_</code> to accept
where <code>&lt;local-host&gt;</code> may be the address of a local network interface, or <code>_</code> to accept
connections on all local network interfaces.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>tcp-server:_:9001</code><br />
<p><code>tcp-server:_:9001</code>
Waits for and accepts connections on port <code>9001</code></p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1224,7 +1252,7 @@
<p>The moniker syntax for a UDP transport is: <code>udp:&lt;local-host&gt;:&lt;local-port&gt;,&lt;remote-host&gt;:&lt;remote-port&gt;</code>.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>udp:0.0.0.0:9000,127.0.0.1:9001</code><br />
<p><code>udp:0.0.0.0:9000,127.0.0.1:9001</code>
UDP transport where packets are received on port <code>9000</code> and sent to <code>127.0.0.1</code> on port <code>9001</code></p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -571,6 +599,13 @@
Alternative
</a>
</li>
<li class="md-nav__item">
<a href="#libusb" class="md-nav__link">
Libusb
</a>
</li>
<li class="md-nav__item">
@@ -1263,6 +1298,13 @@
Alternative
</a>
</li>
<li class="md-nav__item">
<a href="#libusb" class="md-nav__link">
Libusb
</a>
</li>
<li class="md-nav__item">
@@ -1345,9 +1387,9 @@ the first USB interface of the device will be used, regardless of the interface
This may be useful for some devices that use a custom class/subclass but may nonetheless work as-is.</p>
<div class="admonition examples">
<p class="admonition-title">Examples</p>
<p><code>usb:04b4:f901</code><br />
<p><code>usb:04b4:f901</code>
The USB dongle with <code>&lt;vendor&gt;</code> equal to <code>04b4</code> and <code>&lt;product&gt;</code> equal to <code>f901</code></p>
<p><code>usb:0</code><br />
<p><code>usb:0</code>
The first Bluetooth HCI dongle that's declared as such by Class/Subclass/Protocol</p>
<p><code>usb:04b4:f901/0016A45B05D8</code>
The USB dongle with <code>&lt;vendor&gt;</code> equal to <code>04b4</code>, <code>&lt;product&gt;</code> equal to <code>f901</code> and <code>&lt;serial&gt;</code> equal to <code>0016A45B05D8</code></p>
@@ -1359,6 +1401,9 @@ The BT USB dongle vendor=0B05 and product=17CB, in "forced" mode.</p>
<h2 id="alternative">Alternative<a class="headerlink" href="#alternative" title="Permanent link">&para;</a></h2>
<p>The library includes two different implementations of the USB transport, implemented using different python bindings for <code>libusb</code>.
Using the transport prefix <code>pyusb:</code> instead of <code>usb:</code> selects the implementation based on <a href="https://pypi.org/project/pyusb/">PyUSB</a>, using the synchronous API of <code>libusb</code>, whereas the default implementation is based on <a href="https://pypi.org/project/libusb1/">libusb1</a>, using the asynchronous API of <code>libusb</code>. In order to use the alternative PyUSB-based implementation, you need to ensure that you have installed that python module, as it isn't installed by default as a dependency of Bumble.</p>
<h2 id="libusb">Libusb<a class="headerlink" href="#libusb" title="Permanent link">&para;</a></h2>
<p>The <code>libusb-1.0</code> shared library is required to use both <code>usb</code> and <code>pyusb</code> transports. This library should be installed automatically with Bumble, as part of the <code>libusb_package</code> Python package.
If your OS or architecture is not supported by <code>libusb_package</code>, you can install a system-wide library with <code>brew install libusb</code> for Mac or <code>apt install libusb-1.0-0</code> for Linux.</p>
<h2 id="listing-available-usb-devices">Listing Available USB Devices<a class="headerlink" href="#listing-available-usb-devices" title="Permanent link">&para;</a></h2>
<h3 id="with-usb_probe">With <code>usb_probe</code><a class="headerlink" href="#with-usb_probe" title="Permanent link">&para;</a></h3>
<p>You can use the <a href="../apps_and_tools/usb_probe.html"><code>usb_probe</code></a> tool to list all the USB devices attached to your host computer.

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1228,7 +1256,7 @@
<p>The moniker for a VHCI transport is either just <code>vhci</code> (to use the default VHCI device path at <code>/dev/vhci</code>), or <code>vhci:&lt;path&gt;</code> where <code>&lt;path&gt;</code> is the path of a VHCI device.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>vhci</code><br />
<p><code>vhci</code>
Attaches a virtual controller transport to <code>/dev/vhci</code></p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1224,7 +1252,7 @@
<p>The moniker syntax for a UDP transport is: <code>udp:&lt;local-host&gt;:&lt;local-port&gt;,&lt;remote-host&gt;:&lt;remote-port&gt;</code>.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>udp:0.0.0.0:9000,127.0.0.1:9001</code><br />
<p><code>udp:0.0.0.0:9000,127.0.0.1:9001</code>
UDP transport where packets are received on port <code>9000</code> and sent to <code>127.0.0.1</code> on port <code>9001</code></p>
</div>

View File

@@ -234,6 +234,34 @@
<li class="md-nav__item">
<a href="../development/contributing.html" class="md-nav__link">
Contributing
</a>
</li>
<li class="md-nav__item">
<a href="../development/code_style.html" class="md-nav__link">
Code Style
</a>
</li>
</ul>
</nav>
</li>
@@ -1224,7 +1252,7 @@
<p>The moniker syntax for a UDP transport is: <code>udp:&lt;local-host&gt;:&lt;local-port&gt;,&lt;remote-host&gt;:&lt;remote-port&gt;</code>.</p>
<div class="admonition example">
<p class="admonition-title">Example</p>
<p><code>udp:0.0.0.0:9000,127.0.0.1:9001</code><br />
<p><code>udp:0.0.0.0:9000,127.0.0.1:9001</code>
UDP transport where packets are received on port <code>9000</code> and sent to <code>127.0.0.1</code> on port <code>9001</code></p>
</div>