cleanup doc (+6 squashed commits)

Squashed commits:
[6b97b93] add gRPC publish support for netsim
[439717b] fix doc
[5f679d7] fix linting and type errors
[ca7b734] merge 2
[f29c909] update docs
[7800ef9] cleanup (+5 squashed commits)
Squashed commits:
[c501eac] update to latest protos
[e51a3fb] wip
[d6a58fc] wip
[eaa9fa6] wip
[68d9490] wip

wip

wip

wip

update to latest protos

cleanup
This commit is contained in:
Gilles Boccon-Gibod
2023-01-18 23:27:06 +00:00
committed by Gilles Boccon-Gibod
parent 9af426db45
commit 5f86cddc85
46 changed files with 1752 additions and 597 deletions
+30 -11
View File
@@ -1,22 +1,41 @@
ANDROID EMULATOR TRANSPORT
==========================
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).
!!! warning
Bluetooth support in the Android emulator has recently changed. The older mode, using
the `android-emulator` transport name with Bumble, while still implemented, is now
obsolete, and may not be supported by recent versions of the emulator.
Use the `android-netsim` transport name instead.
The Android "netsim" transport either connects, as a host, to a **Netsim** virtual controller
("host" mode), or acts as a virtual controller itself ("controller" mode) accepting host
connections.
## Moniker
The moniker syntax for an Android Emulator transport is: `android-emulator:[mode=<host|controller>][<hostname>:<port>]`, where
the `mode` parameter can specify running as a host or a controller, and `<hostname>:<port>` can specify a host name (or IP address) and TCP port number on which to reach the gRPC server for the emulator.
Both the `mode=<host|controller>` and `<hostname>:<port>` parameters are optional (so the moniker `android-emulator` by itself is a valid moniker, which will create a transport in `host` mode, connected to `localhost` on the default gRPC port for the emulator).
The moniker syntax for an Android Emulator "netsim" transport is: `android-netsim:[<host>:<port>][<options>]`,
where `<options>` is a ','-separated list of `<name>=<value>` pairs`.
The `mode` parameter name can specify running as a host or a controller, and `<hostname>:<port>` 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 `mode=<host|controller>` and `<hostname>:<port>` parameters are optional (so the moniker `android-netsim` by itself is a valid moniker, which will create a transport in `host` mode, connected to `localhost` on the default gRPC port for the Netsim background process).
!!! example Example
`android-emulator`
connect as a host to the emulator on localhost:8554
`android-netsim`
connect as a host to Netsim on the gRPC port discovered automatically.
!!! example Example
`android-emulator:mode=controller`
connect as a controller to the emulator on localhost:8554
`android-netsim:_:8555,mode=controller`
Run as a controller, accepting gRPC connection on port 8555.
!!! example Example
`android-emulator:localhost:8555`
connect as a host to the emulator on localhost:8555
`android-netsim:localhost:8555`
connect as a host to Netsim on localhost:8555
!!! example Example
`android-netsim:localhost:8555`
connect as a host to Netsim on localhost:8555
!!! example Example
`android-netsim:name=bumble1234`
connect as a host to Netsim on the discovered gRPC port, using `bumble1234` as the
controller instance name.
+2 -1
View File
@@ -16,5 +16,6 @@ Several types of transports are supported:
* [PTY](pty.md): 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
* [VHCI](vhci.md): used to attach a virtual controller to a Bluetooth stack on platforms that support it.
* [HCI Socket](hci_socket.md): an HCI socket, on platforms that support it, to send/receive HCI packets to/from an HCI controller managed by the OS.
* [Android Emulator](android_emulator.md): 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.
* [Android Emulator](android_emulator.md): 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.
* [File](file.md): HCI packets are read/written to a file-like node in the filesystem.