PROTOCOLS
AdvertisedPeripheral
Defined in fuchsia.bluetooth.le/peripheral.fidl
Protocol that is valid for the duration of advertising. The caller can close the protocol to stop advertising. If the system internally stops advertising for any reason, the protocol will be closed to communicate this to the client.
OnConnected
Called when a remote LE central connects to this peripheral when connectable advertising is enabled via fuchsia.bluetooth.le/Peripheral.Advertise. When this call is made, the system has paused advertising, and will not continue until it receives a response.
The returned fuchsia.bluetooth.le/Connection protocol can be used to interact with the peer. It also represents a peripheral's ownership over the connection: the client can drop the protocol to request a disconnection. Similarly, the protocol is closed by the system to indicate that the connection to the peer has been lost.
- request
peer
Information about the central that initiated the connection. - request
connection
Represents the connection.
- response An empty response should be sent to acknowledge the connection and resume advertising (for flow control).
Request
Name | Type |
---|---|
peer |
Peer
|
connection |
client_end:Connection
|
Response
<EMPTY>
AdvertisingHandle
Defined in fuchsia.bluetooth.le/peripheral.fidl
Capability that is valid for the duration of advertising. The caller can close the handle to stop advertising. If the system internally stops advertising for any reason, the handle will be closed to communicate this to the client.
Central
Defined in fuchsia.bluetooth.le/central.fidl
Connect
Connect to the peer with the given identifier.
The requested fuchsia.bluetooth.le/Connection represents the client's interest on the LE connection to the peer. Closing the channel removes interest, but may not result in disconnection if another client holds a valid fuchsia.bluetooth.le/Connection to the same peer.
The fuchsia.bluetooth.le/Connection handle
will be closed by the
system if the connection to the peer is lost or an error occurs.
The following epitaphs may be sent by the server on error:
-
INVALID_ARGS
: Some of the parameters are invalid. -
ALREADY_BOUND
: A Connection to the peer already exists for this Central. The existing Connection should be used. -
NOT_CONNECTED
: A connection could not be established. -
CONNECTION_RESET
: The peer disconnected. -
request
id
Identifier of the peer to initiate a connection to. -
request
options
Options used to configure the connection. -
request
handle
Handle that remains valid for the duration of this connection.
Request
Name | Type |
---|---|
id |
fuchsia.bluetooth/PeerId
|
options |
ConnectionOptions
|
handle |
server_end:Connection
|
ConnectPeripheral
Creates a connection to the peripheral device with the given identifier.
Returns the status of the operation in status
.
On success, gatt_client
will be bound and can be used for GATT client
role procedures. On failure, gatt_client
will be closed and status
will
indicate an error.
DEPRECATED - Use Connect instead
Request
Name | Type |
---|---|
identifier |
fuchsia.bluetooth/PeerIdString
|
options |
ConnectionOptions
|
gatt_client |
server_end:fuchsia.bluetooth.gatt/Client
|
Response
Name | Type |
---|---|
status |
fuchsia.bluetooth/Status
|
DisconnectPeripheral
Disconnects this Central's connection to the peripheral with the given identifier.
DEPRECATED
Request
Name | Type |
---|---|
identifier |
fuchsia.bluetooth/PeerIdString
|
Response
Name | Type |
---|---|
status |
fuchsia.bluetooth/Status
|
GetPeripheral
This method is not implemented by the Fuchsia core stack- TODO(https://fxbug.dev/42087303)
Returns information about a single peripheral that is known to the system from previous scan,
connection, and/or bonding procedures based on its unique identifier. Returns null if
identifier
is not recognized.
DEPRECATED
Request
Name | Type |
---|---|
identifier |
fuchsia.bluetooth/PeerIdString
|
Response
Name | Type |
---|---|
peripheral |
RemoteDevice?
|
GetPeripherals
Returns the list of peripherals that are known to the system from previous scan, connection, and/or bonding procedures. The results can be filtered based on service UUIDs that are known to be present on the peripheral.
This method only returns peripherals (i.e. connectable devices).
DEPRECATED
Request
Name | Type |
---|---|
service_uuids |
vector<fuchsia.bluetooth/UuidString>?
|
Response
Name | Type |
---|---|
peripherals |
vector<RemoteDevice>
|
ListenL2cap
Register a listener for incoming channels. The registry will assign a
PSM value that is unique for the local device, as well as open a
ChannelListener for accepting incoming channels. In the unlikely
event that all PSMs have been assigned, this call will fail with
ZX_ERR_NO_RESOURCES
.
Note that the method of service discovery or advertising is defined by the service or protocol, so it is the responsibility of the caller to communicate the assigned PSM to any clients.
Request
Name | Type |
---|---|
payload |
ChannelListenerRegistryListenL2capRequest
|
Response
Name | Type |
---|---|
payload |
ChannelListenerRegistry_ListenL2cap_Result
|
OnDeviceDiscovered
Called for each peripheral/broadcaster that is discovered during a scan session. rssi
contains the received signal strength of the advertising packet that generated this event, if
available.
DEPRECATED
Response
Name | Type |
---|---|
device |
RemoteDevice
|
OnPeripheralDisconnected
Called when this Central's connection to a peripheral with the given identifier is terminated.
DEPRECATED
Response
Name | Type |
---|---|
identifier |
fuchsia.bluetooth/PeerIdString
|
OnScanStateChanged
Called when the scan state changes, e.g. when a scan session terminates due to a call to Central.StopScan() or another unexpected condition.
DEPRECATED
Response
Name | Type |
---|---|
scanning |
bool
|
Scan
Scans for nearby LE peripherals and broadcasters. If the scan cannot be
initiated, then result_watcher
will be closed with an epitaph.
A Central client is allowed to have only one active scan at a time. Accordingly, only one Scan request can be outstanding at a time. Additional calls to Scan will fail.
The lifetime of the scan session is tied to the result_watcher
protocol provided. The scan will be stopped if the channel is closed.
Once a scan is started, the fuchsia.bluetooth.le/ScanResultWatcher can be used to watch for scan results.
- request
options
Options used to configure the scan session. - request
result_watcher
Protocol that remains valid for the duration of this scan session.
- response An empty response will be sent to acknowledge the scan has stopped.
The following epitaphs may be sent by the server on error:
- error
ALREADY_EXISTS
: A scan is already in progress. EachCentral
protocol is only allowed 1 active scan. - error
INVALID_ARGS
: Some of the scanoptions
are invalid. See theScanOptions
documentation. - error
INTERNAL
: An internal error occurred and a scan could not be started.
Request
Name | Type |
---|---|
options |
ScanOptions
|
result_watcher |
server_end:ScanResultWatcher
|
Response
<EMPTY>
StartScan
Initiates a scan session for nearby peripherals and broadcasters. Discovered devices will be
reported via CentralDelegate.OnDeviceDiscovered(). If a scan session is already in progress,
filter
will replace the existing session's filter.
If filter
is null or empty (i.e. none of its fields has been populated) then the delegate
will be notified for all discoverable devices that are found. This is not recommended; clients
should generally filter results by at least one of filter.service_uuids
,
filter.service_data
, and/or filter.manufacturer_identifier
.
DEPRECATED - Use Scan instead
Request
Name | Type |
---|---|
filter |
ScanFilter?
|
Response
Name | Type |
---|---|
status |
fuchsia.bluetooth/Status
|
StopScan
Terminate a previously started scan session.
DEPRECATED
Request
<EMPTY>
ChannelListener
Defined in fuchsia.bluetooth.le/l2cap.fidl
Represents a service or protocol that accepts incoming channel requests. Incoming channel requests for the associated PSM will be connected via this protocol. Closing this protocol will also cease accepting any incoming channel requests, but existing established channels will not be affected. Additionally, once this protocol is closed the implementation is free to reuse the PSM that was previously assigned for this instance.
Accept
Request
Name | Type |
---|---|
channel |
client_end:fuchsia.bluetooth/Channel
|
Response
Name | Type |
---|---|
payload |
ChannelListener_Accept_Result
|
ChannelListenerRegistry
Defined in fuchsia.bluetooth.le/l2cap.fidl
Represents the ability to register and accept incoming connections on connection oriented channels.
ListenL2cap
Register a listener for incoming channels. The registry will assign a
PSM value that is unique for the local device, as well as open a
ChannelListener for accepting incoming channels. In the unlikely
event that all PSMs have been assigned, this call will fail with
ZX_ERR_NO_RESOURCES
.
Note that the method of service discovery or advertising is defined by the service or protocol, so it is the responsibility of the caller to communicate the assigned PSM to any clients.
Request
Name | Type |
---|---|
payload |
ChannelListenerRegistryListenL2capRequest
|
Response
Name | Type |
---|---|
payload |
ChannelListenerRegistry_ListenL2cap_Result
|
CodecDelay
Defined in fuchsia.bluetooth.le/codec_delay.fidl
This protocol allows us to retrieve controller local delay values. It is not intended to be used stand-alone, but to be composed into protocols that need access to this information.
GetCodecLocalDelayRange
Retrieve the range of controller delay for the codec specified with the provided stream attributes.
On success, returns the minimum and maximum allowed delay.
Returns ZX_ERR_NOT_SUPPORTED if reading the delay is not supported. Returns ZX_ERR_INTERNAL for all other failures.
Request
Name | Type |
---|---|
payload |
CodecDelayGetCodecLocalDelayRangeRequest
|
Response
Name | Type |
---|---|
payload |
CodecDelay_GetCodecLocalDelayRange_Result
|
Connection
Defined in fuchsia.bluetooth.le/peer.fidl
Protocol that represents the connection to a peer. This can be used to interact with GATT services and establish L2CAP channels.
This lifetime of this capability is tied to that of the LE connection it represents. Closing the channel results in a disconnection if no other clients hold a Connection to the same peer.
AcceptCis
Accept a future CIS request from the peer with the specified CIG/CIS values. All CIS requests that have not explicitly been allowed will be rejected.
The provided IsochronousStream will be used for future notification of established connections.
The host may wait for multiple incoming connections simultaneously, although each must have a combination of CIG/CIS values that is unique to this connection.
If we are not operating in the peripheral role in this connection, connection_stream will be closed with a ZX_ERR_NOT_SUPPORTED epitaph.
If we are already waiting for another connection with the same combination of CIG/CIS values, connection_stream will be closed with a ZX_ERR_INVALID_ARGS epitaph.
Request
Name | Type |
---|---|
payload |
ConnectionAcceptCisRequest
|
ConnectL2cap
Connect to an L2CAP LE connection-oriented channel.
Request
Name | Type |
---|---|
payload |
ConnectionConnectL2capRequest
|
GetCodecLocalDelayRange
Retrieve the range of controller delay for the codec specified with the provided stream attributes.
On success, returns the minimum and maximum allowed delay.
Returns ZX_ERR_NOT_SUPPORTED if reading the delay is not supported. Returns ZX_ERR_INTERNAL for all other failures.
Request
Name | Type |
---|---|
payload |
CodecDelayGetCodecLocalDelayRangeRequest
|
Response
Name | Type |
---|---|
payload |
CodecDelay_GetCodecLocalDelayRange_Result
|
RequestGattClient
The following epitaphs may be sent by the server on error:
ZX_ERR_ALREADY_BOUND
: A Client server has already been bound in this Connection protocol. The existing Client should be used.
Request
Name | Type |
---|---|
client |
server_end:fuchsia.bluetooth.gatt2/Client
|
IsochronousStream
Defined in fuchsia.bluetooth.le/iso.fidl
OnEstablished
Provide notification when a CIS is established, as initiated by a Central (from CigServer::CreateCis()), or a Peripheral (from CisRequestManager::Accept()).
Response
Name | Type |
---|---|
payload |
IsochronousStreamOnEstablishedRequest
|
Read
Receive data from an output (controller => host) ISO stream that has been established and set up. Designed to be used with a hanging get pattern.
Can be invoked before the ISO data stream has been established and set up, but will not return until after it has been set up and data has been received.
Request
<EMPTY>
Response
Name | Type |
---|---|
payload |
IsochronousStream_Read_Result
|
SetupDataPath
Create an isochronous data path with the specified parameters. Only in-band (HCI) ISO transport is currently supported.
Returns ZX_ERR_ALREADY_EXISTS if a ISO stream has already been created for this direction.
Returns ZX_ERR_BAD_STATE if issued on a peripheral before a CIS request has been accepted.
Returns ZX_ERR_INVALID_ARGS if the codec arguments are invalid or outside of the controller's supported range.
Request
Name | Type |
---|---|
payload |
IsochronousStreamSetupDataPathRequest
|
Response
Name | Type |
---|---|
payload |
IsochronousStream_SetupDataPath_Result
|
Peripheral
Defined in fuchsia.bluetooth.le/peripheral.fidl
Advertise
Start advertising continuously as a LE peripheral. If advertising cannot
be initiated then advertised_peripheral
will be closed and an error
will be returned.
This method may be called any number of times. To reconfigure an advertisement, first close the original advertisement and then initiate a new advertisement after an empty response is returned.
If the client closes its end of the fuchsia.bluetooth.le/AdvertisedPeripheral channel, advertising will be stopped. If the handle is closed before the request is fulfilled, advertising may be briefly enabled before it is terminated. AdvertisedPeripheral lifetime is bounded by the lifetime of the Peripheral protocol, but this may be changed in the future (https://fxbug.dev/42157682).
- request
parameters
Parameters used while configuring the advertising instance. - request
advertised_peripheral
Protocol that remains valid for the duration of this advertising session.
- response An empty response will be sent when the advertisement is
successfully stopped (due to release of the
advertised_peripheral
protocol). To prevent overlapping similar advertisements and transient errors with limited advertising resources, waiting for a response is recommended before callingAdvertise
again.
- error If an error occurs,
advertised_peripheral
will be closed and aPeripheralError
will be returned.
Request
Name | Type |
---|---|
parameters |
AdvertisingParameters
|
advertised_peripheral |
client_end:AdvertisedPeripheral
|
Response
Name | Type |
---|---|
payload |
Peripheral_Advertise_Result
|
ListenL2cap
Register a listener for incoming channels. The registry will assign a
PSM value that is unique for the local device, as well as open a
ChannelListener for accepting incoming channels. In the unlikely
event that all PSMs have been assigned, this call will fail with
ZX_ERR_NO_RESOURCES
.
Note that the method of service discovery or advertising is defined by the service or protocol, so it is the responsibility of the caller to communicate the assigned PSM to any clients.
Request
Name | Type |
---|---|
payload |
ChannelListenerRegistryListenL2capRequest
|
Response
Name | Type |
---|---|
payload |
ChannelListenerRegistry_ListenL2cap_Result
|
OnPeerConnected
Event delivered when a remote LE central initiates a connection to this Peripheral when connectable advertising is enabled via fuchsia.bluetooth.le/Peripheral.StartAdvertising.
The returned fuchsia.bluetooth.le/Connection handle can be used to interact with the peer. It also represents a peripheral's ownership over the connection: the client can drop the handle to request a disconnection. Similarly, the handle is closed by the system to indicate that the connection to the peer has been lost.
- request
peer
Information about the central that initiated the connection. - request
connection
Represents the connection.
DEPRECATED - Use AdvertisedPeripheral.OnConnected instead
Response
Name | Type |
---|---|
peer |
Peer
|
connection |
client_end:Connection
|
StartAdvertising
Start advertising as a LE peripheral. An empty response is sent to indicate when advertising has successfully initiated. If advertising cannot be initiated, then the response will contain a fuchsia.bluetooth.le/PeripheralError.
This method can get called any number of times and successive calls can be made to reconfigure the advertising parameters. However only the most recent fuchsia.bluetooth.le/AdvertisingHandle will remain valid.
An instance of fuchsia.bluetooth.le/Peripheral can only have one active advertisement at a time. Clients must obtain multiple Peripheral instances for multiple simultaneous advertisements.
If the client closes its end of the fuchsia.bluetooth.le/AdvertisingHandle channel, advertising will be stopped. If the handle is closed before the request is fulfilled, advertising will be briefly enabled before it is terminated.
- request
parameters
Parameters used while configuring the advertising instance. - request
handle
Handle that remains valid for the duration of this advertising session.
- error Returns a fuchsia.bluetooth.le/PeripheralError if advertising cannot be
initiated. In this case the
handle
will be closed.
DEPRECATED
Request
Name | Type |
---|---|
parameters |
AdvertisingParameters
|
handle |
server_end:AdvertisingHandle
|
Response
Name | Type |
---|---|
payload |
Peripheral_StartAdvertising_Result
|
PrivilegedPeripheral
Defined in fuchsia.bluetooth.le/peripheral.fidl
Privileged version of the Peripheral protocol. This protocol should only be routed to trusted and system components. Using this protocol will enable the client to break normal privacy restrictions which could leak information about the location or owner of the device.
Use cases which reveal information are noted in documentation and marked as only available through PrivilegedPeripheral, and are an error if used through Peripheral.
Advertise
Start advertising continuously as a LE peripheral. If advertising cannot
be initiated then advertised_peripheral
will be closed and an error
will be returned.
This method may be called any number of times. To reconfigure an advertisement, first close the original advertisement and then initiate a new advertisement after an empty response is returned.
If the client closes its end of the fuchsia.bluetooth.le/AdvertisedPeripheral channel, advertising will be stopped. If the handle is closed before the request is fulfilled, advertising may be briefly enabled before it is terminated. AdvertisedPeripheral lifetime is bounded by the lifetime of the Peripheral protocol, but this may be changed in the future (https://fxbug.dev/42157682).
- request
parameters
Parameters used while configuring the advertising instance. - request
advertised_peripheral
Protocol that remains valid for the duration of this advertising session.
- response An empty response will be sent when the advertisement is
successfully stopped (due to release of the
advertised_peripheral
protocol). To prevent overlapping similar advertisements and transient errors with limited advertising resources, waiting for a response is recommended before callingAdvertise
again.
- error If an error occurs,
advertised_peripheral
will be closed and aPeripheralError
will be returned.
Request
Name | Type |
---|---|
parameters |
AdvertisingParameters
|
advertised_peripheral |
client_end:AdvertisedPeripheral
|
Response
Name | Type |
---|---|
payload |
Peripheral_Advertise_Result
|
ListenL2cap
Register a listener for incoming channels. The registry will assign a
PSM value that is unique for the local device, as well as open a
ChannelListener for accepting incoming channels. In the unlikely
event that all PSMs have been assigned, this call will fail with
ZX_ERR_NO_RESOURCES
.
Note that the method of service discovery or advertising is defined by the service or protocol, so it is the responsibility of the caller to communicate the assigned PSM to any clients.
Request
Name | Type |
---|---|
payload |
ChannelListenerRegistryListenL2capRequest
|
Response
Name | Type |
---|---|
payload |
ChannelListenerRegistry_ListenL2cap_Result
|
OnPeerConnected
Event delivered when a remote LE central initiates a connection to this Peripheral when connectable advertising is enabled via fuchsia.bluetooth.le/Peripheral.StartAdvertising.
The returned fuchsia.bluetooth.le/Connection handle can be used to interact with the peer. It also represents a peripheral's ownership over the connection: the client can drop the handle to request a disconnection. Similarly, the handle is closed by the system to indicate that the connection to the peer has been lost.
- request
peer
Information about the central that initiated the connection. - request
connection
Represents the connection.
DEPRECATED - Use AdvertisedPeripheral.OnConnected instead
Response
Name | Type |
---|---|
peer |
Peer
|
connection |
client_end:Connection
|
StartAdvertising
Start advertising as a LE peripheral. An empty response is sent to indicate when advertising has successfully initiated. If advertising cannot be initiated, then the response will contain a fuchsia.bluetooth.le/PeripheralError.
This method can get called any number of times and successive calls can be made to reconfigure the advertising parameters. However only the most recent fuchsia.bluetooth.le/AdvertisingHandle will remain valid.
An instance of fuchsia.bluetooth.le/Peripheral can only have one active advertisement at a time. Clients must obtain multiple Peripheral instances for multiple simultaneous advertisements.
If the client closes its end of the fuchsia.bluetooth.le/AdvertisingHandle channel, advertising will be stopped. If the handle is closed before the request is fulfilled, advertising will be briefly enabled before it is terminated.
- request
parameters
Parameters used while configuring the advertising instance. - request
handle
Handle that remains valid for the duration of this advertising session.
- error Returns a fuchsia.bluetooth.le/PeripheralError if advertising cannot be
initiated. In this case the
handle
will be closed.
DEPRECATED
Request
Name | Type |
---|---|
parameters |
AdvertisingParameters
|
handle |
server_end:AdvertisingHandle
|
Response
Name | Type |
---|---|
payload |
Peripheral_StartAdvertising_Result
|
ScanResultWatcher
Defined in fuchsia.bluetooth.le/central.fidl
Represents an active scan procedure. This protocol remains valid for the
duration of a scan and can be used to obtain scan results. The client can
close the protocol to stop scanning. If a scan is stopped by the system, the
protocol will be closed with the epitaph CANCELED
to communicate this to
the client.
Watch
Returns a list of all LE peers that satisfy the filters indicated in
ScanOptions
. The first response(s) will return matching discovered
peers immediately. Subsequent calls receive a response only when peers
have been scanned or updated since the last call. If a second call to
Watch
is erronously sent while one call is already pending, the scan
will be canceled and the protocol will be closed.
- response
updated
Peers that were added or updated since the last call to Watch().
Request
<EMPTY>
Response
Name | Type |
---|---|
updated |
vector<Peer>
|
STRUCTS
AdvertisingDataDeprecated
Defined in fuchsia.bluetooth.le/types_deprecated.fidl
Represents advertising and scan response data advertised by a broadcaster or peripheral.
DEPRECATED - Use AdvertisingData instead
Field | Type | Description | Default |
---|---|---|---|
name |
fuchsia.bluetooth/DeviceName
|
Name of the device. |
No default |
tx_power_level |
fuchsia.bluetooth/Int8?
|
The radio transmission power level reported in the advertisement. |
No default |
appearance |
fuchsia.bluetooth/UInt16?
|
The appearance reported in the advertisemet. |
No default |
service_uuids |
vector<fuchsia.bluetooth/UuidString>?
|
List of service UUIDs reported in the advertisement. |
No default |
service_data |
vector<ServiceDataEntry>?
|
Service data included in the advertisement. |
No default |
manufacturer_specific_data |
vector<ManufacturerSpecificDataEntry>?
|
Manufacturer specific data entries. |
No default |
solicited_service_uuids |
vector<fuchsia.bluetooth/UuidString>?
|
Service UUIDs that were solicited in the advertisement. Peripherals can invite centrals that expose certain services to connect to them using service solicitation. |
No default |
uris |
vector<string>?
|
URIs included in the advertising packet. These are full URIs (they are encoded/decoded automatically) |
No default |
ChannelListener_Accept_Response
Defined in fuchsia.bluetooth.le/l2cap.fidl
<EMPTY>
IsochronousStream_SetupDataPath_Response
Defined in fuchsia.bluetooth.le/iso.fidl
<EMPTY>
ManufacturerData
Defined in fuchsia.bluetooth.le/advertising_data.fidl
Entry in the manufacturer_data
field of a fuchsia.bluetooth.le/AdvertisingData.
Field | Type | Description | Default |
---|---|---|---|
company_id |
uint16
|
No default | |
data |
vector<uint8>:252
|
No default |
ManufacturerSpecificDataEntry
Defined in fuchsia.bluetooth.le/types_deprecated.fidl
DEPRECATED - Use ManufacturerData instead
Field | Type | Description | Default |
---|---|---|---|
company_id |
uint16
|
No default | |
data |
vector<uint8>
|
No default |
Peripheral_Advertise_Response
Defined in fuchsia.bluetooth.le/peripheral.fidl
<EMPTY>
Peripheral_StartAdvertising_Response
Defined in fuchsia.bluetooth.le/peripheral.fidl
<EMPTY>
RemoteDevice
Defined in fuchsia.bluetooth.le/types_deprecated.fidl
Represents a remote Bluetooth Low Energy device. A RemoteDevice can represent a central, broadcaster, or peripheral based on the API from which it was received.
DEPRECATED - Use Peer instead
Field | Type | Description | Default |
---|---|---|---|
identifier |
fuchsia.bluetooth/PeerIdString
|
Identifier that uniquely identifies this device on the current system. |
No default |
connectable |
bool
|
Whether or not this device is connectable. Non-connectable devices are typically acting in the LE broadcaster role. |
No default |
rssi |
fuchsia.bluetooth/Int8?
|
The last known RSSI of this device, if known. |
No default |
advertising_data |
AdvertisingDataDeprecated?
|
Advertising data broadcast by this device if this device is a broadcaster or peripheral. |
No default |
ScanFilter
Defined in fuchsia.bluetooth.le/types_deprecated.fidl
Filter parameters for use during a scan. A discovered peripheral or broadcaster will be reported to applications only if it satisfies all of the provided filter parameters. Null fields will be ignored.
DEPRECATED - Use Filter instead
Field | Type | Description | Default |
---|---|---|---|
service_uuids |
vector<fuchsia.bluetooth/UuidString>?
|
Filter based on advertised service UUIDs. A peripheral that advertises at least one of the
entries in |
No default |
service_data_uuids |
vector<fuchsia.bluetooth/UuidString>?
|
Filter based on service data containing one of the given UUIDs. |
No default |
manufacturer_identifier |
fuchsia.bluetooth/UInt16?
|
Filter based on a company identifier present in the manufacturer data. If this filter parameter is set, then the advertising payload must contain manufacturer specific data with the provided company identifier to satisfy this filter. |
No default |
connectable |
fuchsia.bluetooth/Bool?
|
Filter based on whether or not a device is connectable. For example, a client that is only interested in peripherals that it can connect to can set this to true. Similarly a client can scan only for braodcasters by setting this to false. |
No default |
name_substring |
fuchsia.bluetooth/DeviceName
|
Filter results based on a portion of the advertised device name. |
No default |
max_path_loss |
fuchsia.bluetooth/Int8?
|
Filter results based on the path loss of the radio wave. A device that matches this filter must satisfy the following:
|
No default |
ServiceData
Defined in fuchsia.bluetooth.le/advertising_data.fidl
Entry in the service_data
field of a fuchsia.bluetooth.le/AdvertisingData.
Field | Type | Description | Default |
---|---|---|---|
uuid |
fuchsia.bluetooth/Uuid
|
No default | |
data |
vector<uint8>:252
|
No default |
ServiceDataEntry
Defined in fuchsia.bluetooth.le/types_deprecated.fidl
DEPRECATED - Use ServiceData instead
Field | Type | Description | Default |
---|---|---|---|
uuid |
fuchsia.bluetooth/UuidString
|
No default | |
data |
vector<uint8>
|
No default |
ENUMS
AdvertisingModeHint strict
Type: uint8
Defined in fuchsia.bluetooth.le/peripheral.fidl
A client can indicate the transmission rate of advertising packets by specifying a mode. The mode provides a hint to the system when configuring the controller with advertising interval and window parameters.
The mode affects how quickly a scanner or central is able to discover the peripheral; however it can have an adverse effect on power consumption. While the system will try to honor a client's request, it is not guaranteed to do so.
Name | Value | Description |
---|---|---|
VERY_FAST |
1 |
Advertise with a very short interval and window for fast discovery at the cost of higher power consumption. This corresponds to a 30-60ms interval on the 1M PHYs and 90-180ms on the coded PHY. |
FAST |
2 |
Advertise with a short interval and window that uses less power than |
SLOW |
3 |
Advertise with a moderate interval and window. This corresponds to 1-1.2s on the 1M PHYs and 3s on the coded PHY. |
CentralError strict
Type: uint32
Defined in fuchsia.bluetooth.le/central.fidl
Name | Value | Description |
---|---|---|
ABORTED |
1 |
The request was aborted. |
IN_PROGRESS |
2 |
The request is already in progress. |
INVALID_PARAMETERS |
3 |
The provided parameters are invalid. |
FAILED |
4 |
Advertising could not be initiated due to a hardware or system error. |
IsoPacketStatusFlag strict
Type: uint8
Defined in fuchsia.bluetooth.le/iso.fidl
Flags indicating validity of data received from an isochronous channel.
Name | Value | Description |
---|---|---|
VALID_DATA |
0 |
Valid data. The complete SDU was received correctly. |
DATA_WITH_POSSIBLE_ERRORS |
1 |
Possibly invalid data. One ore more of the fragments received may contain errors or part of the packet may be missing. |
LOST_DATA |
2 |
Parts of the packet were not received correctly. |
PeripheralError strict
Type: uint32
Defined in fuchsia.bluetooth.le/peripheral.fidl
Name | Value | Description |
---|---|---|
NOT_SUPPORTED |
1 |
The operation or parameters requested are not supported on the current hardware. |
ADVERTISING_DATA_TOO_LONG |
2 |
The provided advertising data exceeds the maximum allowed length when encoded. |
SCAN_RESPONSE_DATA_TOO_LONG |
3 |
The provided scan response data exceeds the maximum allowed length when encoded. |
INVALID_PARAMETERS |
4 |
The requested parameters are invalid. |
ABORTED |
5 |
The request to start advertising was aborted, for example by issuing a new request with new parameters. |
FAILED |
6 |
Advertising could not be initiated due to a hardware or system error. |
TABLES
AcceptedChannelParameters
Defined in fuchsia.bluetooth.le/l2cap.fidl
The set of parameters for accepting a channel when listening for new channel connections.
See ChannelListenerRegistry/ListenL2cap.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
accepted_channel_modes |
vector<fuchsia.bluetooth/ChannelMode>
|
All channel modes that should be accepted while listening. Must contain
at least one channel mode or the call will fail with
|
2 |
max_packet_size |
uint16
|
Maximum supported packet size for receiving. Optional. If not provided, the size will be determined by the Bluetooth system. No guarantees are given regarding the size selected. |
AdvertisingData
Defined in fuchsia.bluetooth.le/advertising_data.fidl
Represents advertising and scan response data that are transmitted by a LE peripheral or broadcaster.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
name |
fuchsia.bluetooth/DeviceName
|
Long or short name of the device. |
2 |
appearance |
fuchsia.bluetooth/Appearance
|
The appearance of the device. |
3 |
tx_power_level |
int8
|
DEPRECATED - Use include_tx_power_level instead. This value will be ignored. |
4 |
service_uuids |
vector<fuchsia.bluetooth/Uuid>
|
Service UUIDs. |
5 |
service_data |
vector<ServiceData>
|
Service data entries. |
6 |
manufacturer_data |
vector<ManufacturerData>
|
Manufacturer-specific data entries. |
7 |
uris |
vector<string:278>
|
String representing a URI to be advertised, as defined in IETF STD 66. Each entry should be a UTF-8 string including the scheme. For more information, see:
|
8 |
include_tx_power_level |
bool
|
Indicates whether the current TX power level should be included in the advertising data. |
9 |
resolvable_set_identifier |
array<uint8, 6>
|
Identifies the peer as belonging to a Coordinated Set. Resolution and generation of this parameter is defined in the Coordinated Set Identification Service Specification. Added: 24
|
10 |
broadcast_name |
string:128
|
The broadcast name string can be used by a user interface on a scanning device that displays information on the available broadcast sources. Multiple devices with the same Broadcast Name may be transmitting the same data, allowing devices to choose one. At least 4 unicode characters long and no more than 32 characters. Defined in the Public Broadcast Profile specification. Added: 24
|
AdvertisingParameters
Defined in fuchsia.bluetooth.le/peripheral.fidl
Represents the parameters for configuring advertisements.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
data |
AdvertisingData
|
The fields that will be encoded in the data section of advertising packets. This field is required. |
2 |
scan_response |
AdvertisingData
|
The fields that are to be sent in a scan response packet. Clients may use this to send additional data that does not fit inside an advertising packet on platforms that do not support the advertising data length extensions. If present advertisements will be configured to be scannable. |
3 |
mode_hint |
AdvertisingModeHint
|
The desired advertising frequency. See fuchsia.bluetooth.le/AdvertisingModeHint. Defaults to fuchsia.bluetooth.le/AdvertisingModeHint.SLOW if not present. |
4 |
connectable |
bool
|
If present and true then the controller will broadcast connectable advertisements which allows remote LE centrals to initiate a connection to the Peripheral. If false or otherwise not present then the advertisements will be non-connectable. DEPRECATED - Prefer to use the connection_options field for new code. |
5 |
connection_options |
ConnectionOptions
|
If present, the controller will broadcast connectable advertisements
which allow peers to initiate connections to the Peripheral. The fields
of |
6 |
advertising_procedure |
AdvertisingProcedure
|
Specifies the advertising type to use (e.g. legacy, extended, etc). If not present, we default to legacy advertising to maintain optimal compatibility with pre-Bluetooth 5.0 devices. See field descriptions within AdvertisingProcedure for more information. Added: 24
|
7 |
address_type |
fuchsia.bluetooth/AddressType
|
If privacy is not enabled, the address type will always be public. If privacy is enabled and the client is not privileged, the address will be a random private address (either resolvable or non-resolvable). A non-privileged client requesting a public address will return an error. If privacy is enabled and the client is privileged, they may request any address type, or will default to a random private address. If this field is unset, the address type will be public or random depending on if privacy is enabled in the system. Added: 24
|
ChannelListenerRegistryListenL2capRequest resource
Defined in fuchsia.bluetooth.le/l2cap.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
parameters |
AcceptedChannelParameters
|
Accepted parameters for the local side of the channel. |
2 |
listener |
client_end:ChannelListener
|
The channel listener protocol to open. |
ChannelListenerRegistry_ListenL2cap_Response
Defined in fuchsia.bluetooth.le/l2cap.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
psm |
Psm
|
PSM assigned by the registry. Guaranteed to be in the |
CisEstablishedParameters
Defined in fuchsia.bluetooth.le/iso.fidl
Established configuration for a single CIS.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
cig_sync_delay |
zx/Duration
|
Maximum time for transmission of PDUs of all CISes in a CIG event. In the range [234, 8388607] microseconds. This field is always present. |
2 |
cis_sync_delay |
zx/Duration
|
The maximum time for transmission of PDUs of the specified CIS in a CIG event. In the range [234, 8388607] microseconds. This field is always present. |
3 |
max_subevents |
uint8
|
Maximum number of subevents in each CIS event. This field is always present. |
4 |
iso_interval |
zx/Duration
|
Time between two consecutive CIS anchor points, in the range [5ms, 4s] This field is always present. |
5 |
central_to_peripheral_params |
CisUnidirectionalParams
|
Parameters for Central => Peripheral transmissions, if applicable. This field is present if the stream includes isochronous data transmission from the Central to the Peripheral. |
6 |
peripheral_to_central_params |
CisUnidirectionalParams
|
Parameters for Peripheral => Central transmissions, if applicable. This field is present if the stream includes isochronous data transmission from the Peripheral to the Central. |
CisUnidirectionalParams
Defined in fuchsia.bluetooth.le/iso.fidl
Parameters related to a single direction of transmission in an established CIS.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
transport_latency |
zx/Duration
|
Transport latency, in the range [234, 8388607] microseconds This field is always present. |
2 |
burst_number |
uint8
|
Burst number for transmissions in this direction. This field is always present. |
3 |
flush_timeout |
uint8
|
Flush timeout for each payload, in multiples of the ISO interval. This field is always present. |
CodecDelayGetCodecLocalDelayRangeRequest
Defined in fuchsia.bluetooth.le/codec_delay.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
logical_transport_type |
fuchsia.bluetooth/LogicalTransportType
|
Logical transport type being used. Currenly only supports LE transport mechanisms (CIS or BIS). Required. |
2 |
data_direction |
fuchsia.bluetooth/DataDirection
|
Indicates direction of data flow. Required. |
3 |
codec_attributes |
fuchsia.bluetooth/CodecAttributes
|
Codec being used over the air. Required. |
CodecDelay_GetCodecLocalDelayRange_Response
Defined in fuchsia.bluetooth.le/codec_delay.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
min_controller_delay |
zx/Duration
|
Minimum controller delay for the specified configuration, in the range [0, 4] seconds. Always provided on success. |
2 |
max_controller_delay |
zx/Duration
|
Maximum controller delay for the specified configuration, in the range [0, 4] seconds. Always provided on success. |
ConnectionAcceptCisRequest resource
Defined in fuchsia.bluetooth.le/peer.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
cig_id |
uint8
|
Identifier of the CIG that contains the requested CIS. Required. |
2 |
cis_id |
uint8
|
Identifier of the requested CIS. Required. |
3 |
connection_stream |
server_end:IsochronousStream
|
When the stream is established, the server will invoke IsochronousStream::OnCisEstablished() on this channel. Required. If the client end of this channel is closed, requests of the corresponding CIG/CIS combination will be rejected until/unless another call is made to AcceptCis() with the same CIG/CIS parameters. |
ConnectionConnectL2capRequest resource
Defined in fuchsia.bluetooth.le/peer.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
parameters |
fuchsia.bluetooth/ChannelParameters
|
Parameters for the local side of the channel. |
2 |
channel |
server_end:fuchsia.bluetooth/Channel
|
The channel protocol to open. |
3 |
psm |
Psm
|
The PSM of the remote side to connect to. |
ConnectionOptions
Defined in fuchsia.bluetooth.le/connection_options.fidl
Represents parameters that are set on a per-connection basis by FIDL protocols that create Low Energy connections.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
bondable_mode |
bool
|
When true, the connection operates in bondable mode. This means pairing will form a bond, or persist across disconnections, if the peer is also in bondable mode. When not present, the connection defaults to bondable mode. When false, the connection operates in non- bondable mode, which means the local device only allows pairing that does not form a bond. |
2 |
service_filter |
fuchsia.bluetooth/Uuid
|
When present, service discovery performed following the connection is restricted to primary services that match this field. Otherwise, by default all available services are discovered. |
Extended
Defined in fuchsia.bluetooth.le/peripheral.fidl
Ordinal | Field | Type | Description |
---|
Filter
Defined in fuchsia.bluetooth.le/central.fidl
Filter parameters for use during a scan. A discovered peer only matches the filter if it satisfies all of the present filter parameters.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
service_uuid |
fuchsia.bluetooth/Uuid
|
Filter based on advertised service UUID. |
2 |
service_data_uuid |
fuchsia.bluetooth/Uuid
|
Filter based on service data containing the given UUID. |
3 |
manufacturer_id |
uint16
|
Filter based on a manufacturer identifier present in the manufacturer data. If this filter parameter is set, then the advertising payload must contain manufacturer specific data with the provided company identifier to satisfy this filter. Manufacturer identifiers can be found at https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/ |
4 |
connectable |
bool
|
Filter based on whether or not a device is connectable. For example, a client that is only interested in peripherals that it can connect to can set this to true. Similarly a client can scan only for broadcasters by setting this to false. |
5 |
name |
fuchsia.bluetooth/DeviceName
|
Filter results based on a portion of the advertised device name. Substring matches are allowed. |
6 |
max_path_loss |
int8
|
Filter results based on the path loss of the radio wave. A device that matches this filter must satisfy the following:
NOTE: This field is calculated using the RSSI and TX Power information obtained from advertising and scan response data during a scan procedure. It should NOT be confused with information for an active connection obtained using the "Path Loss Reporting" feature. |
IsochronousStreamOnEstablishedRequest
Defined in fuchsia.bluetooth.le/iso.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
result |
zx/Status
|
A result of ZX_ERR_INTERNAL indicates that the controller received a request but was unable to establish the stream. |
2 |
established_params |
CisEstablishedParameters
|
This field is always present if a stream was successfully established. |
IsochronousStreamSetupDataPathRequest
Defined in fuchsia.bluetooth.le/iso.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
data_direction |
fuchsia.bluetooth/DataDirection
|
Directions in which data will flow. Required. |
2 |
codec_attributes |
fuchsia.bluetooth/CodecAttributes
|
Specifies the coding format used over the air. Required. |
3 |
controller_delay |
zx/Duration
|
The delay provided must be within the controller's supported range and should not exceed 4 seconds. Required. |
IsochronousStream_Read_Response
Defined in fuchsia.bluetooth.le/iso.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
data |
vector<uint8>
|
The data frame itself. Required. |
2 |
sequence_number |
uint16
|
The sequence number associated with the frame. Required. |
3 |
status_flag |
IsoPacketStatusFlag
|
Status flags of packet, as reported by the controller. Required. |
4 |
timestamp |
zx/Duration
|
Reception timestamp, as reported by the controller. Optional. |
Legacy
Defined in fuchsia.bluetooth.le/peripheral.fidl
Ordinal | Field | Type | Description |
---|
Peer
Defined in fuchsia.bluetooth.le/peer.fidl
Represents a Bluetooth Low Energy peer that may act in the broadcaster, peripheral, or central role. The peer's role depends on whether it is obtained from the Central or Peripheral protocol.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
id |
fuchsia.bluetooth/PeerId
|
Uniquely identifies this peer on the current system. This field is always present. |
2 |
connectable |
bool
|
Whether or not this peer is connectable. Non-connectable peers are typically in the LE broadcaster role. This field is always present. |
3 |
rssi |
int8
|
The last observed signal strength of this peer. This field is only present for a peer that is broadcasting. The RSSI can be stale if the peer has not been advertising. NOTE: This field should NOT be confused with the "connection RSSI" of a peer that is currently connected to the system. |
4 |
advertising_data |
AdvertisingData
|
DEPRECATED - Use `data` instead |
5 |
name |
fuchsia.bluetooth/DeviceName
|
The name of this peer. The name is often obtained during a scan procedure and can get updated during the name discovery procedure following a connection. This field is present if the name is known. |
6 |
data |
ScanData
|
Information from advertising and scan response data broadcast by this peer. When present, this contains the advertising data last received from the peer. |
7 |
bonded |
bool
|
Whether or not this peer is bonded. This field is always present. |
8 |
last_updated |
zx/Time
|
The value of the system monotonic clock, measured at the time this peer was last updated (e.g. due to reception of an advertisement). This field is always present. |
9 |
advertising_sid |
uint8
|
Value of the Advertising SID. Range: 0x00 to 0x0F Added: 25
|
10 |
periodic_advertising_interval |
uint16
|
Interval of the periodic advertising. Range: 0x0006 to 0xFFFF Added: 25
|
ScanData
Defined in fuchsia.bluetooth.le/peer.fidl
Information obtained from advertising and scan response data broadcast by a peer.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
tx_power |
int8
|
The radio transmit power level reported by an advertising and/or scannable peer. NOTE: This field should NOT be confused with the "connection TX Power Level" of a peer that is currently connected to the system obtained via the "Transmit Power reporting" feature. |
2 |
appearance |
fuchsia.bluetooth/Appearance
|
The appearance of the device. |
3 |
service_uuids |
vector<fuchsia.bluetooth/Uuid>
|
Service UUIDs. |
4 |
service_data |
vector<ServiceData>
|
Service data entries. |
5 |
manufacturer_data |
vector<ManufacturerData>
|
Manufacturer-specific data entries. |
6 |
uris |
vector<string:278>
|
String representing a URI to be advertised, as defined in IETF STD 66. Each entry should be a UTF-8 string including the scheme. For more information, see https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml for allowed schemes; NOTE: Bluetooth advertising compresses schemas over the air to save space. See https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping. |
7 |
timestamp |
zx/Time
|
The monotonic time when this scan data was received. |
ScanOptions
Defined in fuchsia.bluetooth.le/central.fidl
Parameters used during a scan.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
filters |
vector<Filter>
|
List of filters for use during a scan. A peripheral that satisfies any of these filters will be reported. At least 1 filter must be specified. While not recommended, clients that require that all peripherals be reported can specify an empty filter. |
UNIONS
AdvertisingProcedure flexible
Defined in fuchsia.bluetooth.le/peripheral.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
legacy |
Legacy
|
Advertise using legacy advertising packets. All devices should be able to discover this type of packet. |
2 |
extended |
Extended
|
Advertise using extended advertising packets. Extended advertising packets allow for a much larger amount of data to be advertised than legacy advertising packets (31 bytes vs 251 bytes per PDU). Extended advertising packets support up to 1,650 bytes in an advertisement chain, but they are only discoverable by newer devices using Bluetooth 5.0+. Extended advertising packets are not supported by all products. PeripheralError::NOT_SUPPORTED will be returned if requested and not supported. |
ChannelListenerRegistry_ListenL2cap_Result strict
Defined in fuchsia.bluetooth.le/l2cap.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
ChannelListenerRegistry_ListenL2cap_Response
|
|
2 |
err |
zx/Status
|
ChannelListener_Accept_Result strict
Defined in fuchsia.bluetooth.le/l2cap.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
ChannelListener_Accept_Response
|
|
3 |
framework_err |
internal
|
CodecDelay_GetCodecLocalDelayRange_Result strict
Defined in fuchsia.bluetooth.le/codec_delay.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
CodecDelay_GetCodecLocalDelayRange_Response
|
|
2 |
err |
zx/Status
|
IsochronousStream_Read_Result strict
Defined in fuchsia.bluetooth.le/iso.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
IsochronousStream_Read_Response
|
|
3 |
framework_err |
internal
|
IsochronousStream_SetupDataPath_Result strict
Defined in fuchsia.bluetooth.le/iso.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
IsochronousStream_SetupDataPath_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Peripheral_Advertise_Result strict
Defined in fuchsia.bluetooth.le/peripheral.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Peripheral_Advertise_Response
|
|
2 |
err |
PeripheralError
|
Peripheral_StartAdvertising_Result strict
Defined in fuchsia.bluetooth.le/peripheral.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
response |
Peripheral_StartAdvertising_Response
|
|
2 |
err |
PeripheralError
|
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
MAX_BROADCAST_NAME_OCTETS |
128
|
uint8 |
Added: 24
|
MAX_MANUFACTURER_DATA_LENGTH |
252
|
uint8 |
|
MAX_SERVICE_DATA_LENGTH |
252
|
uint8 |
|
MAX_URI_LENGTH |
278
|
uint16 |
ALIASES
Name | Value | Description |
---|---|---|
Psm |
uint16 |
An identifier for a service that accepts connection-oriented channel connections. Referred to as a (simplified) protocol/service multiplexer in the Bluetooth specification. Added: 24
|