PROTOCOLS
Host
Defined in fuchsia.bluetooth.host/host.fidl
Interface for interacting with a Bluetooth host device (bt-host)
Close
Shuts down the host, ending all active Bluetooth procedures:
- All FIDL interface handles associated with this host are closed and all connections initiated via FIDL clients are severed.
- All scan, discovery, and advertising procedures are stopped.
- Bonded devices are cleared and removed from the auto-connect lists.
- Auto-connected peripherals are disconnected.
This effectively resets the host to its initial state and the host remains available for future requests.
The Host will continue to send OnDeviceUpdated events as procedures get terminated.
Request
Name | Type |
---|
Connect
Establish a BR/EDR and/or LE connection to the peer with identifier id
:
-
If the peer is known to support the BR/EDR transport then a logical link over that transport will be established to the device. If the connection attempt is successful, local services registered using "RequestProfile()" will be available to the peer. Traditional services discovered on the peer will be notified to local services asynchronously.
-
If the peer is known to support the LE transport then a logical link over that transport will be established to the device. If the connection attempt is successful, GATT services in the local database (populated via RequestGattServer()) will become available to the peer. Similarly, remote GATT services that are discovered on the peer will become available to holders of a gatt.Client capability and to device drivers that can bind to the bt-gatt-svc class of devices.
The result of the procedure will be communicated via status
. If the remote device
supports both BR/EDR and LE transports and a link cannot be established over both, then an
error Status will be returned and neither transport will be connected.
Request
Name | Type |
---|---|
id |
fuchsia.bluetooth/PeerId
|
Response
Name | Type |
---|---|
result |
Host_Connect_Result
|
Disconnect
Terminate all connections (BR/EDR or LE) to the remote peer with identifier id
.
- request
id
The identifier of the peer to disconnect.
- response
status
Contains an error if either LE or BR/EDR transport fails to disconnect. Contains success when both transports are successfully disconnected or if the peer is already disconnected.
Request
Name | Type |
---|---|
id |
fuchsia.bluetooth/PeerId
|
Response
Name | Type |
---|---|
result |
Host_Disconnect_Result
|
EnableBackgroundScan
Enable or disable a passive LE background scan. When enabled, the bt-host device will continuously perform a passive LE scan in the background when no device discovery sessions are active and accept connection requests from bonded peripherals.
Request
Name | Type |
---|---|
enabled |
bool
|
EnablePrivacy
Enable or disable the LE privacy feature. When enabled, the bt-host device will use a private device address in all LE procedures. When disabled, the public identity address will be used instead (which is the default).
Request
Name | Type |
---|---|
enabled |
bool
|
Forget
Deletes a peer from the Bluetooth host. If the peer is connected, it will be disconnected.
device_id
will no longer refer to any peer, even if a device with the same address is
discovered again.
Returns success after no peer exists that's identified by device_id
(even if it didn't
exist before Forget), failure if the peer specified by device_id
could not be
disconnected or deleted and still exists.
Request
Name | Type |
---|---|
id |
fuchsia.bluetooth/PeerId
|
Response
Name | Type |
---|---|
result |
Host_Forget_Result
|
OnNewBondingData
Notifies when bonding data for a peer has been updated.
Response
Name | Type |
---|---|
data |
fuchsia.bluetooth.sys/BondingData
|
Pair
Initiates pairing to the peer with the supplied id
and options
. Returns an error if no
connected peer with id
is found or the pairing procedure fails.
If options
specifies a higher security level than the current pairing, this method
attempts to raise the security level. Otherwise this method has no effect and returns
success.
NOTE: This is intended to satisfy test scenarios that require pairing procedures to be initiated without relying on service access. In normal operation, Bluetooth security is enforced during service access.
Request
Name | Type |
---|---|
id |
fuchsia.bluetooth/PeerId
|
options |
fuchsia.bluetooth.sys/PairingOptions
|
Response
Name | Type |
---|---|
result |
Host_Pair_Result
|
RequestGattServer
Request
Name | Type |
---|---|
server |
request<fuchsia.bluetooth.gatt/Server>
|
RequestLowEnergyCentral
The following methods fulfill a given interface request. bt-host device will start processing FIDL messages. If the request cannot be fulfilled, the bt-host device will close its end of the given channel.
Request
Name | Type |
---|---|
central |
request<fuchsia.bluetooth.le/Central>
|
RequestLowEnergyPeripheral
Request
Name | Type |
---|---|
peripheral |
request<fuchsia.bluetooth.le/Peripheral>
|
RequestProfile
Request
Name | Type |
---|---|
profile |
request<fuchsia.bluetooth.bredr/Profile>
|
RestoreBonds
Restores existing bonded devices to the host. An authenticated session will be established for future connections using the provided bonding data.
If bonding data for the LE transport is available, then the host will automatically establish a connection when the peer is in range and connectable.
If any of the entries in bonds
could not be restored, then they will be returned in
errors
. This can happen for entries that are malformed and for peers that are already
known to the bt-host. An empty errors
list indicates that all bonds were successfully
restored.
Request
Name | Type |
---|---|
bonds |
vector<fuchsia.bluetooth.sys/BondingData>
|
Response
Name | Type |
---|---|
errors |
vector<fuchsia.bluetooth.sys/BondingData>
|
SetConnectable
Sets whether this host should be connectable.
Request
Name | Type |
---|---|
enabled |
bool
|
Response
Name | Type |
---|---|
result |
Host_SetConnectable_Result
|
SetDeviceClass
Sets the device class for this host device.
Request
Name | Type |
---|---|
device_class |
fuchsia.bluetooth/DeviceClass
|
Response
Name | Type |
---|---|
result |
Host_SetDeviceClass_Result
|
SetDiscoverable
Sets whether this host should be discoverable.
Request
Name | Type |
---|---|
enabled |
bool
|
Response
Name | Type |
---|---|
result |
Host_SetDiscoverable_Result
|
SetLeSecurityMode
Set the GAP LE Security Mode of the host. bt-host only supports encrypted, connection-based security modes, i.e. Mode 1 and Secure Connections Only mode. If the security mode is set to Secure Connections Only, any existing encrypted connections which do not meet the security requirements of Secure Connections Only mode will be disconnected.
Request
Name | Type |
---|---|
le_security_mode |
fuchsia.bluetooth.sys/LeSecurityMode
|
SetLocalData
Assigns local data to this host.
Request
Name | Type |
---|---|
host_data |
fuchsia.bluetooth.sys/HostData
|
SetLocalName
Sets the local name for this host device.
Request
Name | Type |
---|---|
local_name |
fuchsia.bluetooth/DeviceName
|
Response
Name | Type |
---|---|
result |
Host_SetLocalName_Result
|
SetPairingDelegate
Assigns the pairing delegate that will respond to authentication challenges using the given I/O capabilities. Calling this method cancels any on-going pairing procedure started using a previous delegate. Pairing requests will be rejected if no PairingDelegate has been assigned.
Request
Name | Type |
---|---|
input |
fuchsia.bluetooth.sys/InputCapability
|
output |
fuchsia.bluetooth.sys/OutputCapability
|
delegate |
fuchsia.bluetooth.sys/PairingDelegate
|
StartDiscovery
Initiates a general discovery procedure for BR/EDR and LE devices. On success, discovered peers can be monitored using the Host.WatchPeers method.
On the LE transport, only general-discoverable and connectable peripherals will be reported.
Discovery will continue until it is terminated via StopDiscovery() or if the Host protocol channel gets closed. If the device does not support BR/EDR, only LE discovery will be performed.
Request
Name | Type |
---|
Response
Name | Type |
---|---|
result |
Host_StartDiscovery_Result
|
StopDiscovery
Terminates discovery if one was started via StartDiscovery().
NOTE: If another client is performing discovery (e.g. via its own le.Central interface handle), then the system will continue performing device discovery even if this method results in success.
Request
Name | Type |
---|
WatchPeers
Monitors updates for connectable peers known to the system. Replies only when peers have been added, modified, or removed since the most recent call to WatchPeers().
Peers are added and updated as new information is obtained during discovery, connection establishment, and bonding procedures.
Peers are removed either: a. explicitly via fuchsia.bluetooth.host.Host/Forget, or b. no transmission has been received from the peer for an internally determined duration of time and the peer is neither connected nor bonded.
- response
updated
Peers that were added or updated since the last call to WatchPeers(). - response
removed
Ids of peers that were removed since the last call to WatchPeers().
Request
Name | Type |
---|
Response
Name | Type |
---|---|
updated |
vector<fuchsia.bluetooth.sys/Peer>
|
removed |
vector<fuchsia.bluetooth/PeerId>
|
WatchState
Returns information about the Bluetooth host subsystem and controller managed by this Host instance. If there has been no change to the state since the last call to this method, the response will be deferred until there is a change.
The returned info
structure will be populated with the current state of the bt-host
device. However the active
parameter will never be populated. This field is managed
by a higher layer.
Request
Name | Type |
---|
Response
Name | Type |
---|---|
info |
fuchsia.bluetooth.sys/HostInfo
|
STRUCTS
Host_Connect_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_Disconnect_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_Forget_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_Pair_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_SetConnectable_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_SetDeviceClass_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_SetDiscoverable_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_SetLocalName_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
Host_StartDiscovery_Response
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description | Default |
---|
UNIONS
Host_Connect_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_Connect_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_Disconnect_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_Disconnect_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_Forget_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_Forget_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_Pair_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_Pair_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_SetConnectable_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_SetConnectable_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_SetDeviceClass_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_SetDeviceClass_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_SetDiscoverable_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_SetDiscoverable_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_SetLocalName_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_SetLocalName_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|
Host_StartDiscovery_Result
Defined in fuchsia.bluetooth.host/host.fidl
Name | Type | Description |
---|---|---|
response |
Host_StartDiscovery_Response
|
|
err |
fuchsia.bluetooth.sys/Error
|