fuchsia.hardware.bluetooth

用于与蓝牙供应商和传输驱动程序交互的 API。

添加:23

协议

模拟器

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

用于模拟支持标准蓝牙 HCI 的蓝牙控制器的协议。 表示 bt-emulator 设备协议。bt-emulator 设备用于配置和发布虚假 bt-hci 设备。

AddBredrPeer

插入一个要由此控制器模拟的新 BR/EDR 对等设备。注册后,可以使用 peer 句柄驱动和观察伪对等端的状态。

系统会发送回复,确认已创建虚假对等方。如果无法初始化对等方(例如,由于 parameters 中缺少必填字段,或包含已模拟的地址),peer 句柄将关闭,并发送错误回复。

只要 peer 信道处于打开状态,对等设备就会显示在查询结果中,并根据其配置响应请求。当通道关闭时,模拟器会停止模拟此对等设备,这会使其不再可检测到,并且不会响应任何请求。

请求

名称类型
payload PeerParameters

响应

名称类型
payload Emulator_AddBredrPeer_Result

AddLowEnergyPeer

插入要由此控制器模拟的新 LE 对等设备。注册后,可以使用 peer 句柄驱动和观察伪对等端的状态。

系统会发送回复,确认已创建虚假对等方。如果无法初始化对等方(例如,由于 parameters 中缺少必填字段,或包含已模拟的地址),peer 句柄将关闭,并发送错误回复。

只要 peer 通道处于打开状态,对等设备就会显示在广告报告中,并根据其配置响应请求。当通道关闭时,模拟器会停止模拟此对等设备,这会使其不再可检测到,并且不会响应任何请求。

请求

名称类型
payload PeerParameters

响应

名称类型
payload Emulator_AddLowEnergyPeer_Result

发布

使用提供的 settings 发布 bt-hci 设备。每个模拟器实例只能管理一个 bt-hci 设备。如果设备已发布,则返回 Emulator.HCI_ALREADY_PUBLISHED。

请求

名称类型
payload EmulatorSettings

响应

名称类型
payload Emulator_Publish_Result

WatchControllerParameters

控制器参数状态的挂起获取模式在状态自上次响应发生变化之前不会解析。

请求

<EMPTY>

响应

名称类型
payload Emulator_WatchControllerParameters_Result

WatchLeScanStates

返回一个向量,其中包含链路层 LE 扫描过程从最早到最近的状态。 当自此客户端上次调用此方法以来至少发生一次状态更改时,此方法会返回。

在给定时间,对此方法的多次调用可能处于未完成状态。一旦扫描状态发生变化,所有调用都会在响应中解析。

请求

<EMPTY>

响应

名称类型
payload Emulator_WatchLeScanStates_Result

WatchLegacyAdvertisingStates

返回一个向量,其中包含链路层 LE 传统通告过程从最早到最近的状态。自此客户端上次调用此方法以来,如果至少发生了一次状态更改,此方法就会返回。

在给定时间,对此方法的多次调用可能处于未完成状态。一旦扫描状态发生变化,所有调用都会在响应中解析。

请求

<EMPTY>

响应

名称类型
payload Emulator_WatchLegacyAdvertisingStates_Result

Hci

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

已移除:NEXT

ConfigureSco

使用指定参数为 SCO 连接配置 HCI。 在 SCO 通道上发送/接收数据之前,必须调用此方法。 如果当前供应商或传输驱动程序不支持 SCO,则返回 ZX_ERR_NOT_SUPPORTED。

请求

名称类型
coding_format ScoCodingFormat
encoding ScoEncoding
sample_rate ScoSampleRate

响应

名称类型
payload Hci_ConfigureSco_Result

OpenAclDataChannel

打开双向 HCI ACL 数据通道。 如果通道已打开,则返回 ZX_ERR_ALREADY_BOUND。

请求

名称类型
channel handle<channel>

响应

名称类型
payload Hci_OpenAclDataChannel_Result

OpenCommandChannel

打开双向 HCI 命令通道,以便发送 HCI 命令和接收事件数据包。如果通道已打开,则返回 ZX_ERR_ALREADY_BOUND。

请求

名称类型
channel handle<channel>

响应

名称类型
payload Hci_OpenCommandChannel_Result

OpenIsoDataChannel

在提供的句柄上打开一个通道,用于发送和接收同步数据包。 如果打开 HCI 通道时出错,或者 HCI 通道已与另一个 Zircon 通道的句柄相关联,则 Zircon 通道会关闭。 如果当前供应商或传输驱动程序不支持 ISO,则返回 ZX_ERR_NOT_SUPPORTED。 如果通道已打开,则返回 ZX_ERR_ALREADY_BOUND。

请求

名称类型
channel handle<channel>

响应

名称类型
payload Hci_OpenIsoDataChannel_Result

OpenScoDataChannel

在提供的句柄上打开 SCO 通道。如果打开 hci 通道时出错,或者 hci 通道已与另一个 zircon 通道的句柄相关联,则 zircon 通道会关闭。 如果当前供应商或传输驱动程序不支持 SCO,则返回 ZX_ERR_NOT_SUPPORTED。 如果通道已打开,则返回 ZX_ERR_ALREADY_BOUND。

请求

名称类型
channel handle<channel>

响应

名称类型
payload Hci_OpenScoDataChannel_Result

OpenSnoopChannel

打开一个仅输出通道,用于监控 HCI 流量。 每条消息的格式为:[1-octet flags] [n-octet payload] 标志八位字节是一个位字段,定义了以下值:

  • 0x00:载荷表示从主机发送到控制器的命令数据包。
  • 0x01:载荷表示控制器发送的事件数据包。 如果通道已打开,则返回 ZX_ERR_ALREADY_BOUND。

请求

名称类型
channel handle<channel>

响应

名称类型
payload Hci_OpenSnoopChannel_Result

ResetSco

释放活跃 SCO 连接占用的资源。必须在 SCO 连接关闭时调用。 如果当前供应商或传输驱动程序不支持 SCO,则返回 ZX_ERR_NOT_SUPPORTED。

请求

<EMPTY>

响应

名称类型
payload Hci_ResetSco_Result

HciTransport

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

AckReceive

请求

<EMPTY>

ConfigureSco

建立 SCO 连接。一次只能配置 1 个 SCO 连接。

请求

名称类型
payload HciTransportConfigureScoRequest

OnReceive

在确认之前,可以发送多个数据包事件。每个数据包都必须通过 AckReceive 进行确认。服务器应限制待处理确认的数量,以避免通道溢出。建议最多 10 个未确认的数据包。如果客户端收到命令或 SCO 数据包,则应关闭协议。

响应

名称类型
payload ReceivedPacket

发送

可以同时有多个待处理的发送操作。 最好限制待处理调用的数量,以避免溢出。 建议最多保留 10 个待处理的通话。 如果服务器收到事件或 SCO 数据包,则应关闭协议。

请求

名称类型
payload SentPacket

响应

名称类型
payload HciTransport_Send_Result

对等节点

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

用于驱动虚假对等设备状态的协议。

AssignConnectionStatus

分配一个 HCI status,供控制器在响应连接请求时生成。 适用于所有后续 HCI_Create_Connection 和 HCI_LE_Create_Connection 命令。该过程会通过空响应进行确认。

请求

名称类型
status HciError

响应

名称类型
payload Peer_AssignConnectionStatus_Result

EmulateDisconnectionComplete

模拟断开连接。如果对等方未连接,则不执行任何操作。

请求

<EMPTY>

EmulateLeConnectionComplete

模拟 LE 连接事件。如果对等方已连接,则不执行任何操作。role 参数决定了链路层连接角色。

请求

名称类型
role fuchsia.bluetooth/ConnectionRole

SetDeviceClass

设置在设备发现期间为此对等设备在查询响应中报告的设备类别。如果对等方不是 BR/EDR,服务器将关闭并显示 ZX_ERR_NOT_SUPPORTED 墓志铭。

请求

名称类型
value uint32

响应

名称类型
payload Peer_SetDeviceClass_Result

SetLeAdvertisement

请求

名称类型
payload PeerSetLeAdvertisementRequest

响应

名称类型
payload Peer_SetLeAdvertisement_Result

SetServiceDefinitions

设置可通过服务发现协议检测到的对等设备服务。如果对等方不是 BR/EDR,服务器将关闭并显示 ZX_ERR_NOT_SUPPORTED 墓志铭。

请求

名称类型
service_definitions vector<fuchsia.bluetooth.bredr/ServiceDefinition>:32

响应

名称类型
payload Peer_SetServiceDefinitions_Result

WatchConnectionStates

返回一个向量,其中包含从最早到最近的控制器连接状态。 当自此客户端上次调用此方法以来状态发生变化时,此方法会返回。

在给定时间,对此方法的多次调用可能处于未完成状态。一旦扫描状态发生变化,所有调用都会在响应中解析。

请求

<EMPTY>

响应

名称类型
payload Peer_WatchConnectionStates_Result

ScoConnection

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

AckReceive

请求

<EMPTY>

OnReceive

在确认之前,可以发送多个数据包事件。每个数据包都必须通过 AckReceive 进行确认。服务器应限制待处理确认的数量,以避免通道溢出。建议最多 10 个未确认的数据包。

响应

名称类型
packet vector<uint8>:258

发送

可以同时有多个待处理的发送操作。 最好限制待处理调用的数量,以避免溢出。 建议待处理的通话数量不超过 10 个。

请求

名称类型
packet vector<uint8>:258

响应

名称类型
payload ScoConnection_Send_Result

停止

收到 Stop 时,服务器将关闭协议。这对于同步非常有用(例如,在配置另一个 ScoConnection 之前)。

请求

<EMPTY>

信息收集

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

AcknowledgePackets

确认已收到最多 sequence 个数据包。

请求

名称类型
sequence uint64

OnDroppedPackets

如果自上次 OnObservePacket 以来有数据包被丢弃,则在收到 AcknowledgePackets 后由服务器发送一次。

响应

名称类型
payload SnoopOnDroppedPacketsRequest

OnObservePacket

已传输/接收数据包。在服务器停止运行之前,可以观察到一些数据包。如果客户端确认数据包的时间过长,服务器可以丢弃数据包。

响应

名称类型
payload SnoopOnObservePacketRequest

供应商

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

供应商驱动程序可以实现 BtVendor 协议,以支持功能查询和供应商命令编码。

EncodeCommand

对供应商 HCI 命令进行编码,并返回编码后的命令。 如需了解可能的命令和参数,请参阅 VendorCommand。

  • 错误 ZX_ERR_NOT_SUPPORTED:不支持该命令。
  • 错误 ZX_ERR_INVALID_ARGS:命令的参数无效。

请求

名称类型
payload VendorCommand

响应

名称类型
payload Vendor_EncodeCommand_Result

GetCrashParameters

返回 bt-snoop 用于记录和归档蓝牙控制器崩溃报告的参数。 核心转储事件将从监听日志中隐去。 如果此供应商不支持崩溃转储,则返回 NOT_SUPPORTED。

新增:31

请求

<EMPTY>

响应

名称类型
payload Vendor_GetCrashParameters_Result

GetFeatures

返回此控制器支持的供应商功能。

请求

<EMPTY>

响应

名称类型
payload Vendor_GetFeatures_Result

OpenHci

不再受支持 - 请改用 OpenHciTransport() 打开控制器的 HCI 协议。此调用可能会一直处于阻塞状态,直到控制器初始化完毕。 如果已有其他客户端连接,则返回 ALREADY_BOUND。

已移除:NEXT

请求

<EMPTY>

响应

名称类型
payload Vendor_OpenHci_Result

OpenHciTransport

打开控制器的 HciTransport 协议。此调用可能会一直处于阻塞状态,直到控制器初始化完毕。 如果已有其他客户端连接,则返回 ALREADY_BOUND。

请求

<EMPTY>

响应

名称类型
payload Vendor_OpenHciTransport_Result

OpenSnoop

向传输驱动程序开放 Snoop 协议。 如果另一个客户端已连接,则返回 ALREADY_BOUND。

请求

<EMPTY>

响应

名称类型
payload Vendor_OpenSnoop_Result

VirtualController

在 fuchsia.hardware.bluetooth/virtual.fidl 中定义

用于生成虚拟蓝牙设备。

CreateEmulator

创建子设备,并返回所创建子设备的名称。

请求

<EMPTY>

响应

名称类型
payload VirtualController_CreateEmulator_Result

CreateLoopbackDevice

创建虚拟蓝牙串行设备,在提供的句柄上使用 BT HCI UART 协议。 如果发生错误,zircon 通道会关闭。

请求

名称类型
payload VirtualControllerCreateLoopbackDeviceRequest

STRUCTS

Emulator_AddBredrPeer_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

<EMPTY>

Emulator_AddLowEnergyPeer_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

<EMPTY>

Emulator_Publish_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

<EMPTY>

Emulator_WatchLeScanStates_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

字段类型说明默认
states vector<LeScanState> 无默认应用

Emulator_WatchLegacyAdvertisingStates_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

字段类型说明默认
states vector<LegacyAdvertisingState> 无默认应用

HciTransport_Send_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Hci_ConfigureSco_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Hci_OpenAclDataChannel_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Hci_OpenCommandChannel_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Hci_OpenIsoDataChannel_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Hci_OpenScoDataChannel_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Hci_OpenSnoopChannel_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Hci_ResetSco_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

Peer_AssignConnectionStatus_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

<EMPTY>

Peer_SetDeviceClass_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

<EMPTY>

Peer_SetLeAdvertisement_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

<EMPTY>

Peer_SetServiceDefinitions_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

<EMPTY>

Peer_WatchConnectionStates_Response

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

字段类型说明默认
states vector<ConnectionState> 无默认应用

ScoConnection_Send_Response

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

<EMPTY>

ScoPacket

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

字段类型说明默认
packet vector<uint8>:258 无默认应用

Vendor_EncodeCommand_Response

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

字段类型说明默认
encoded vector<uint8>:16 无默认应用

Vendor_OpenHciTransport_Response 资源

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

字段类型说明默认
channel client_end:HciTransport 无默认应用

Vendor_OpenHci_Response 资源

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

字段类型说明默认
channel client_end:Hci 无默认应用

Vendor_OpenSnoop_Response 资源

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

字段类型说明默认
channel client_end:Snoop 无默认应用

VirtualController_CreateEmulator_Response

在 fuchsia.hardware.bluetooth/virtual.fidl 中定义

字段类型说明默认
name string:32? 无默认应用

枚举

ConnectionState 灵活

类型:uint32

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

名称值说明
1
2

EmulatorError flexible

类型:uint32

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

可为模拟器级配置生成的错误代码。

名称值说明
1
2

EmulatorPeerError flexible

类型:uint32

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

为操作虚假对等方的函数生成的错误代码。

名称值说明
1
2
3

灵活 HciConfig

类型:uint32

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

预设 HCI 配置。

名称值说明
1

在 LMP 功能中同时支持 BR/EDR 和 LE。

2

将支持的功能和 HCI 命令限制为仅 LE 所需的功能和命令。

HciError flexible

类型:uint8

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

定义蓝牙控制器可以报告的 HCI 协议错误代码列表。这些值取自蓝牙核心规范 v5.4 第 2 卷 D 部分第 1.3 节

名称值说明
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

LegacyAdvertisingType strict

类型:uint8

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

蓝牙核心规范 v5.4 第 4 卷 E 部分 7.8.5 中的 LE 传统通告类型。

名称值说明
0

可连接且可扫描。

1

可连接、高占空比、定向。

2

可扫描,无方向。

3

不可连接、无定向

4

扫描响应

PacketDirection strict

类型:uint32

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

名称值说明
1
2

ScoCodingFormat flexible

类型:uint8

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

名称值说明
1
2

ScoEncoding flexible

类型:uint8

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

名称值说明
1
2

ScoSampleRate 灵活

类型:uint8

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

名称值说明
1
2

VendorAclDirection flexible

类型:uint8

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

名称值说明
1
2

VendorAclPriority flexible

类型:uint8

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

名称值说明
1
2

TABLES

AclBufferSettings

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

HCI ACL 数据流控制参数。

序数字段类型说明
data_packet_length uint16

ACL 帧 MTU(以字节为单位)。

total_num_data_packets uint8

控制器可以缓冲的 ACL 帧数上限。

AdvertisingData

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数字段类型说明
data vector<uint8>:31

AndroidVendorSupport

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

表示支持 Android 供应商扩展。 如果为空,则表示支持 Android HCI 扩展,但未指定版本。 应使用 LE Get Vendor Capabilities 命令检测版本。

序数字段类型说明
major_version uint8
minor_version uint8

AudioOffloadSettings

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

音频分流数据路径的各种设置,因控制器制造商和固件版本而异。

新增:28

序数字段类型说明
sco_offload_index uint8

请求 SCO 卸载数据路径时要使用的索引。

ControllerParameters

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

包含可由主机写入但不属于特定程序类别(如下文所定义)的蓝牙控制器和基带参数。

序数字段类型说明
local_name string:248

用于链路层名称发现过程的本地名称。此参数仅适用于 BR/EDR 传输。在 LE 中,本地名称作为通告参数并通过 GATT 提供。

device_class fuchsia.bluetooth/DeviceClass

BR/EDR 查询过程中使用的本地“设备类别”。

EmulatorSettings

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

模拟器使用的控制器设置。

序数字段类型说明
address fuchsia.bluetooth/Address

BD_ADDR (BR/EDR) 或 LE 公共设备地址。默认值为“00:00:00:00:00:00”。

hci_config HciConfig

支持的 HCI 命令配置。默认值为“DUAL_MODE”。

extended_advertising bool

如果支持 5.0 扩展广播功能,则为 true。默认值为“false”。

acl_buffer_settings AclBufferSettings

ACL-U 数据缓冲区设置。如果 hci_config 设置为 DUAL_MODE,则默认值为 data_packet_length: 1024 total_num_data_packets: 5。否则,默认值为 null。

le_acl_buffer_settings AclBufferSettings

LE-U ACL 数据缓冲区设置。默认值为 data_packet_length: 251 total_num_data_packets: 5

资源 HciTransportConfigureScoRequest

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数字段类型说明
coding_format ScoCodingFormat

必填。

encoding ScoEncoding

必填。

sample_rate ScoSampleRate

必填。

connection server_end:ScoConnection

必填。

LeScanState

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

表示 LE 扫描状态。如果已配置扫描参数,则会显示这些字段。

序数字段类型说明
enabled bool

如果已启用扫描,则为 True。

active bool

如果启用了主动扫描,则为 True。否则,扫描是被动的。

interval uint16

扫描间隔和窗口参数。这些值在蓝牙控制器“时间片”中定义,其中 1 个时间片 = 0.625 毫秒。有效值范围为 0x4(2.5 毫秒)到 0x4000(10.24 毫秒)。

window uint16
filter_duplicates bool

如果已启用重复过滤,则为 true。

address_type fuchsia.bluetooth/AddressType

所用本地设备地址的类型。

LegacyAdvertisingState

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

旧版广告的控制器参数。

序数字段类型说明
enabled bool

如果已使用 HCI_LE_Set_Advertising_Enable 命令启用通告,则为 true。 此字段始终存在。

type LegacyAdvertisingType

最近配置的广告类型。此字段始终存在。默认值为 fuchsia.hardware.bluetooth/LegacyAdvertisingType.ADV_IND。

address_type fuchsia.bluetooth/AddressType

用于广播的 LE 地址类型。此字段始终存在。默认值为 fuchsia.bluetooth/AddressType.PUBLIC。

interval_min uint16

主机指定的通告间隔范围参数。仅在配置后才会显示。

interval_max uint16
advertising_data AdvertisingData

任何已配置的通告和扫描响应数据。仅当任一字段不为零时才会显示。

scan_response AdvertisingData

PeerParameters 资源

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

用于通过 BR/EDR/低功耗传输模拟对等设备行为的参数。

序数字段类型说明
address fuchsia.bluetooth/Address

对等设备的公开 BR/EDR BD_ADDR 地址。这是必填字段。

connectable bool

如果存在且值为 true,则对等设备将发送可连接的通告并接受连接请求。如果无法连接,对等端将忽略连接请求。

channel server_end:Peer

绑定到对等协议的通道的服务器端。

PeerSetLeAdvertisementRequest

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数字段类型说明
le_address fuchsia.bluetooth/Address

对等体的 LE 地址。

advertisement AdvertisingData

通告数据内容。如果不存在,则此对等端发送的通告数据将为空。

scan_response AdvertisingData

扫描响应数据内容。如果存在,虚假控制器将生成可扫描的通告数据包和扫描响应事件。

SnoopOnDroppedPacketsRequest

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数字段类型说明
sent uint32
received uint32

SnoopOnObservePacketRequest

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数字段类型说明
sequence uint64

单调递增的数据包数量。与 OnAcknowledgePackets 结合使用,用于流控制。

direction PacketDirection
packet SnoopPacket

VendorCrashParameters

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

用于提交控制器崩溃报告的参数。

新增:31

序数字段类型说明
crash_events vector<VendorCrashEventPrefix>

要匹配的供应商事件载荷的前缀。例如,这可以是子事件代码。如果前缀为空,则所有供应商调试事件都将被视为崩溃事件。 必需。必须至少指定一个前缀。

program_name string:1024

要在崩溃报告中使用的程序名称。 必填。

crash_signature string:128

要在崩溃报告中使用的签名。 必须与 [a-z][a-z-]* 匹配,即只能包含小写字母和连字符。 必填。

VendorFeatures

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

供应商支持的功能列表。

序数字段类型说明
acl_priority_command bool

支持 SetAclPriority 命令 如果缺失,则表示不支持该命令。

android_vendor_extensions AndroidVendorSupport

支持 Android 供应商扩展程序 如果缺少,则不支持 Android 供应商扩展程序。

audio_offload_settings AudioOffloadSettings

为音频分流路径指定一些替代设置。 如果缺少,请使用合理的默认值或配置的设置。

新增:28

VendorSetAclPriorityParams

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数字段类型说明
connection_handle uint16

请求优先处理的 ACL 连接句柄。

priority VendorAclPriority
direction VendorAclDirection

数据应优先处理的方向。可能并非所有供应商都支持。当优先级为普通时,系统会忽略此设置。

VirtualControllerCreateLoopbackDeviceRequest 资源

在 fuchsia.hardware.bluetooth/virtual.fidl 中定义

序数字段类型说明
uart_channel handle<channel>

UNIONS

Emulator_AddBredrPeer_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Emulator_AddBredrPeer_Response
err EmulatorPeerError
framework_err internal

Emulator_AddLowEnergyPeer_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Emulator_AddLowEnergyPeer_Response
err EmulatorPeerError
framework_err internal

Emulator_Publish_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Emulator_Publish_Response
err EmulatorError
framework_err internal

Emulator_WatchControllerParameters_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response ControllerParameters
framework_err internal

Emulator_WatchLeScanStates_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Emulator_WatchLeScanStates_Response
framework_err internal

Emulator_WatchLegacyAdvertisingStates_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Emulator_WatchLegacyAdvertisingStates_Response
framework_err internal

HciTransport_Send_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response HciTransport_Send_Response
framework_err internal

Hci_ConfigureSco_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response Hci_ConfigureSco_Response
err zx/Status
framework_err internal

Hci_OpenAclDataChannel_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response Hci_OpenAclDataChannel_Response
err zx/Status
framework_err internal

Hci_OpenCommandChannel_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response Hci_OpenCommandChannel_Response
err zx/Status
framework_err internal

Hci_OpenIsoDataChannel_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response Hci_OpenIsoDataChannel_Response
err zx/Status
framework_err internal

Hci_OpenScoDataChannel_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response Hci_OpenScoDataChannel_Response
err zx/Status
framework_err internal

Hci_OpenSnoopChannel_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response Hci_OpenSnoopChannel_Response
err zx/Status
framework_err internal

Hci_ResetSco_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response Hci_ResetSco_Response
err zx/Status
framework_err internal

Peer_AssignConnectionStatus_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Peer_AssignConnectionStatus_Response
framework_err internal

Peer_SetDeviceClass_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Peer_SetDeviceClass_Response
framework_err internal

Peer_SetLeAdvertisement_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Peer_SetLeAdvertisement_Response
err EmulatorPeerError
framework_err internal

Peer_SetServiceDefinitions_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Peer_SetServiceDefinitions_Response
framework_err internal

Peer_WatchConnectionStates_Result strict

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

序数变体类型说明
response Peer_WatchConnectionStates_Response
framework_err internal

ReceivedPacket flexible

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

主机从控制器接收的数据包。

序数变体类型说明
event vector<uint8>:257
acl vector<uint8>:65539
iso vector<uint8>:16387

ScoConnection_Send_Result strict

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
response ScoConnection_Send_Response
framework_err internal

SentPacket flexible

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

主机发送到控制器的数据包。

序数变体类型说明
command vector<uint8>:258
acl vector<uint8>:65539
iso vector<uint8>:16387

SnoopPacket flexible

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

序数变体类型说明
event vector<uint8>:257
command vector<uint8>:258
acl vector<uint8>:65539
sco vector<uint8>:258
iso vector<uint8>:16387

VendorCommand flexible

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数变体类型说明
set_acl_priority VendorSetAclPriorityParams

Vendor_EncodeCommand_Result strict

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数变体类型说明
response Vendor_EncodeCommand_Response
err zx/Status
framework_err internal

Vendor_GetCrashParameters_Result strict

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数变体类型说明
response VendorCrashParameters
err zx/Status
framework_err internal

Vendor_GetFeatures_Result strict

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数变体类型说明
response VendorFeatures
framework_err internal

Vendor_OpenHciTransport_Result strict resource

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数变体类型说明
response Vendor_OpenHciTransport_Response
err zx/Status
framework_err internal

Vendor_OpenHci_Result strict resource

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数变体类型说明
response Vendor_OpenHci_Response
err zx/Status
framework_err internal

Vendor_OpenSnoop_Result strict resource

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

序数变体类型说明
response Vendor_OpenSnoop_Response
err zx/Status
framework_err internal

VirtualController_CreateEmulator_Result strict

在 fuchsia.hardware.bluetooth/virtual.fidl 中定义

序数变体类型说明
response VirtualController_CreateEmulator_Response
err zx/Status
framework_err internal

常量

名称值类型说明
ACL_PACKET_MAX 65539 uint64
BT_VENDOR_MAX_COMMAND_BUFFER_LEN 16 uint16

编码命令可能需要的缓冲区长度上限。 在添加可能需要更大缓冲区的新命令时进行更新。

COMMAND_MAX 258 uint64
EVENT_MAX 257 uint64
ISO_PACKET_MAX 16387 uint64
MAX_LEGACY_ADVERTISING_DATA_LENGTH 31 uint8

传统 (4.x) 和扩展 (5.x) 广播 PDU 类型的广播数据 MTU(请参阅核心规范 v5.4 第 4 卷 E 部分第 7.3.11 节和第 7.8.54 节)。

MAX_LOCAL_NAME_LENGTH 248 uint8

使用 HCI_Write_Local_Name 命令分配的本地名称的大小上限(以字节为单位)(请参阅核心规范 v5.4、第 4 卷、E 部分、7.3.11)。

MAX_NAME_LENGTH 32 uint32
MAX_PEER_SERVICES 32 uint8

一次可通告的服务记录数上限。

SCO_PACKET_MAX 258 uint64

别名

名称值说明
VendorCrashEventPrefix vector[8]
新增:31

服务

EmulatorService

在 fuchsia.hardware.bluetooth/emulator.fidl 中定义

名称类型传输
设备 fuchsia.hardware.bluetooth/Emulator 渠道

HciService

在 fuchsia.hardware.bluetooth/hci.fidl 中定义

名称类型传输
hci fuchsia.hardware.bluetooth/Hci 渠道
hci_transport fuchsia.hardware.bluetooth/HciTransport 渠道
snoop fuchsia.hardware.bluetooth/Snoop 渠道

服务

在 fuchsia.hardware.bluetooth/vendor.fidl 中定义

名称类型传输
供应商 fuchsia.hardware.bluetooth/Vendor 渠道

VirtualControllerService

在 fuchsia.hardware.bluetooth/virtual.fidl 中定义

名称类型传输
设备 fuchsia.hardware.bluetooth/VirtualController 渠道