initial import

This commit is contained in:
Gilles Boccon-Gibod
2022-05-16 19:42:31 -07:00
commit 6ac91f7dec
185 changed files with 32064 additions and 0 deletions
+11
View File
@@ -0,0 +1,11 @@
USE CASES
=========
While the Bumble project aims to be a general purpose set of libraries and tools for any purpose, there are some typical use case patterns that are typical and representative of what can be done.
* [Use case 1](use_case_1.md) - Bumble python application connected to a "real" Bluetooth device with a physical controller
* [Use case 2](use_case_2.md) - Native Bluetooth application connected to a Bumble python application with virtual controller
* [Use case 3](use_case_3.md) - Emulated Bluetooth device connected to a Bumble python application with virtual controller
* [Use case 4](use_case_4.md) - Connecting two emulated Bluetooth devices
* [Use case 5](use_case_5.md) - Connecting multiple Bumble python applications
* [Use case 6](use_case_6.md) - Connecting an emulated Bluetooth device to a physical controller
+14
View File
@@ -0,0 +1,14 @@
USE CASE 1
==========
# Bumble python application connected to a device with a "real" Bluetooth controller
Write a python application (ex: a GATT client that will connect to a hear rate sensor, or a GATT server exposing a battery level) that can connect to or receive connections from a "real" Bluetooth device (like a sensor, or a mobile phone) using a Bluetooth controller (a USB dongle, or HCI-UART controller)
```
+--------++--------+ +------------+ +-----------+
| Bumble || Bumble | | Physical | | Bluetooth |
| Python || Host |<-- HCI -->| Controller |{...radio...}| Device |
| App || | Transport | | | |
+--------++--------+ +------------+ +-----------+
```
+14
View File
@@ -0,0 +1,14 @@
USE CASE 2
==========
# Native Bluetooth application connected to a Bumble python application with virtual controller
Connect a native Bluetooth application, running on a host with Bluetooth stack to which we can attach a virtual controller (Linux for example), to a Bumble python application (ex: a GATT server or client).
```
+-----------+ +------------+ +------------++--------++--------+
| Native | | Bumble | Bumble | Bumble || Bumble || Bumble |
| Bluetooth |<-- HCI -->| Virtual |<== Local or ==>| Virtual || Host || Python |
| App | Transport | Controller | Remote | Controller || || App |
+-----------+ +------------+ Link +------------++--------++--------+
```
+14
View File
@@ -0,0 +1,14 @@
USE CASE 3
==========
# Emulated Bluetooth device connected to a Bumble python application with virtual controller
Connect an emulated Bluetooth device (ex: an Android emulator, or an embedded device emulator) to a Bumble python application (ex: a GATT server or client).
```
+-----------+ +------------+ +------------++--------++--------+
| Emulated | | Bumble | Bumble | Bumble || Bumble || Bumble |
| Bluetooth |<-- HCI -->| Virtual |<== Local or ==>| Virtual || Host || Python |
| Device | Transport | Controller | Remote | Controller || || App |
+-----------+ +------------+ Link +------------++--------++--------+
```
+14
View File
@@ -0,0 +1,14 @@
USE CASE 4
==========
# Connecting two emulated Bluetooth devices
Connect two emulated Bluetooth device (ex: an Android emulator, or an embedded device emulator) to each other
```
+-----------+ +------------+ +------------+ +-----------+
| Emulated | | Bumble | Bumble | Bumble | | Emulated |
| Bluetooth |<-- HCI -->| Virtual |<== Local or ==>| Virtual |<-- HCI -->| Bluetooth |
| Device | Transport | Controller | Remote | Controller | Transport | Device |
+-----------+ +------------+ Link +------------+ +-----------+
```
+20
View File
@@ -0,0 +1,20 @@
USE CASE 5
==========
# Connecting multiple Bumble python applications
Write several python applications (ex: a GATT client that will connect to a hear rate sensor, or a GATT server exposing a battery level) and connect them together
```
+--------++--------++------------+ +------------++--------++--------+
| Bumble || Bumble || Bumble | | Bumble || Bumble || Bumble |
| Python || Host || Controller |<--+ +-->| Controller || Host || Python |
| App || || | | +--------+ | | || || App |
+--------++--------++------------+ +-->| Bumble |<--+ +------------++--------++--------+
| Link |
+--------++--------++------------+ +-->| Relay |<--+ +------------++--------++--------+
| Bumble || Bumble || Bumble | | +--------+ | | Bumble || Bumble || Bumble |
| Python || Host || Controller |<--+ +-->| Controller || Host || Python |
| App || || | | || || App |
+--------++--------++------------+ +------------++--------++--------+
```
+14
View File
@@ -0,0 +1,14 @@
USE CASE 6
==========
# Connecting an emulated Bluetooth device to a physical controller
It can be useful to connect an emulated device (like a phone simulator, or an emulated embedded device) to a physical controller in order to connect to other Bluetooth devices. By doing this via a Bumble HCI bridge, it becomes easy to inspect the HCI packets exchanged with the controller, and possibly filter/change them if needed (for example to support vendor-specific HCI extensions).
```
+-----------+ +--------+ +------------+ +-----------+
| Emulated | | Bumble | | Physical | | Bluetooth |
| Bluetooth |<-- HCI -->| HCI |<-- HCI -->| Controller |{...radio...}| Device |
| Device | Transport | Bridge | Transport | | | |
+-----------+ +--------+ +------------+ +-----------+
```