This commit is contained in:
Gilles Boccon-Gibod
2023-10-29 09:36:17 -07:00
parent d8517ce407
commit a63b335149
5 changed files with 25 additions and 7 deletions

View File

@@ -47,6 +47,7 @@
"protobuf",
"psms",
"pyee",
"Pyodide",
"pyusb",
"rfcomm",
"ROHC",

View File

@@ -3,18 +3,33 @@ HIVE
Welcome to the Bumble Hive.
This is a collection of apps and virtual devices that can run entirely in a browser page.
The code for the apps and devices, as well as the Bumble runtime code, runs via [Pyiodide](https://pyodide.org/).
The code for the apps and devices, as well as the Bumble runtime code, runs via [Pyodide](https://pyodide.org/).
Pyodide is a Python distribution for the browser and Node.js based on WebAssembly.
The Bumble stack uses a WebSocket to exchange HCI packets with a virtual or physical
Bluetooth controller.
The apps and devices in the hive can be accessed by following the links below. Each
The apps and devices in the hive can be accessed by following the links below. Each
page has a settings button that may be used to configure the WebSocket URL to use for
the virutal HCI connection. This will typically be the WebSocket URL for a `netsim`
the virtual HCI connection. This will typically be the WebSocket URL for a `netsim`
daemon.
There is also a [TOML index](index.toml) that can be used by tools to know at which URL to access
each of the apps and devices, as well as their names and short desciptions.
There is also a [TOML index](index.toml) that can be used by tools to know at which URL to access
each of the apps and devices, as well as their names and short descriptions.
!!! tip "Using `netsim`"
When the `netsimd` daemon is running (for example when using the Android Emulator that
is included in Android Studio), the daemon listens for connections on a TCP port.
To find out what this TCP port is, you can read the `netsim.ini` file that `netsimd`
creates, it includes a line with `web.port=<tcp-port>` (for example `web.port=7681`)
!!! tip "Using a local radio"
You can connect the hive virtual apps and devices to a local Bluetooth radio, like,
for example, a USB dongle.
For that, you need to run a local HCI bridge to bridge a local HCI device to a WebSocket
that a web page can connect to.
Use the `bumble-hci-bridge` app, with the host transport set to a WebSocket server on an
available port (ex: `ws-server:_:7682`) and the controller transport set to the transport
name for the radio you want to use (ex: `usb:0` for the first USB dongle)
Applications

View File

@@ -0,0 +1 @@
../../../../../../web/scanner/scanner.css

View File

@@ -0,0 +1 @@
../../../../../../web/scanner/scanner.js

View File

@@ -59,8 +59,8 @@ class BumbleControls extends LitElement {
if (hciUrl) {
this.settingsHciUrlInput.value = hciUrl;
} else {
// Start with a template.
this.settingsHciUrlInput.value = "ws://localhost:XYZW/v1/websocket/bt"
// Start with default, assuming port 7681.
this.settingsHciUrlInput.value = "ws://localhost:7681/v1/websocket/bt"
}
this.settingsDialog.showModal();
}