用於與藍牙供應商和傳輸驅動程式互動的 API。
通訊協定
模擬器
定義於 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 裝置。每個 Emulator 執行個體
管理單一 Bt-hci 裝置傳回 Emulator。HCI_ALREADY_PUBLISHED如果裝置
要求
| 名稱 | 類型 | 
|---|---|
| payload | EmulatorSettings | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | Emulator_Publish_Result | 
WatchControllerParameters
只有在狀態含有 而自上次回覆不同
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Emulator_WatchControllerParameters_Result | 
WatchLeScanStates
針對連結層 LE 掃描程序,傳回最低狀態的向量。 自上次叫用以來,至少有一項狀態變更時,此方法就會傳回結果 這個方法。
系統可能會在特定時間發出多次呼叫此方法。所有通話將於以下時間後解析: 一旦掃描狀態有變更,就會立即回應。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Emulator_WatchLeScanStates_Result | 
WatchLegacyAdvertisingStates
傳回 LE 舊版連結層狀態最低至最新狀態的向量 廣告程序。這個方法會在至少有一項狀態變更時傳回 自此用戶端上次叫用此方法時起算。
系統可能會在特定時間發出多次呼叫此方法。所有通話將於以下時間後解析: 一旦掃描狀態有變更,就會立即回應。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Emulator_WatchLegacyAdvertisingStates_Result | 
希伯來文
定義於 fuchsia.hardware.bluetooth/hci.fidl
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,則傳回 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 管道。Zircon 管道是 關閉 Slici 管道時發生錯誤或 hci 管道已連結至另一個 Zircon 管道的帳號代碼。 如果目前的供應商或傳輸機制不支援 SCO,則傳回 ZX_ERR_NOT_SUPPORTED 驅動程式。 如果管道已開啟,則傳回 ZX_ERR_ALREADY_BOUND。
要求
| 名稱 | 類型 | 
|---|---|
| channel | handle<channel> | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | Hci_OpenScoDataChannel_Result | 
OpenSnoopChannel
開啟僅供輸出的管道來監控 HCI 流量。 每封郵件的格式如下:[1-octetflag] [n-octet payload] 旗標八位元是位元欄位,並定義了下列值:
- 0x00:裝載代表從主機傳送至主機的指令封包 控制器
- 0x01:酬載代表控制器傳送的事件封包。 如果管道已開啟,則傳回 ZX_ERR_ALREADY_BOUND。
要求
| 名稱 | 類型 | 
|---|---|
| channel | handle<channel> | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | Hci_OpenSnoopChannel_Result | 
ResetSco
釋出有效 SCO 連線保留的資源。必須呼叫 並在 SCO 連線關閉時啟動 如果目前的供應商或傳輸機制不支援 SCO,則傳回 ZX_ERR_NOT_SUPPORTED 驅動程式。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Hci_ResetSco_Result | 
HciTransport
定義於 fuchsia.hardware.bluetooth/hci.fidl
AckReceive
要求
<空白>
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
模擬連線中斷情形。如果對等點未連線,則不會執行任何動作。
要求
<空白>
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
傳回最新控制器連線狀態的向量。 如果上次叫用此內容後發生狀態變更,此方法就會傳回 方法。
系統可能會在特定時間發出多次呼叫此方法。所有通話將於以下時間後解析: 一旦掃描狀態有變更,就會立即回應。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Peer_WatchConnectionStates_Result | 
ScoConnection
定義於 fuchsia.hardware.bluetooth/hci.fidl
AckReceive
要求
<空白>
OnReceive
您可以在確認前傳送多個封包事件。每個封包都必須
與 AckReceive 確認。伺服器應限制待處理確認數量
才能避免管道流量建議最多設為 10 個未確認的封包。
回應
| 名稱 | 類型 | 
|---|---|
| packet | vector<uint8>[258] | 
傳送
你可以將多個傳送規則同時設為待處理狀態。 限制待處理呼叫的數量,以免溢位。 建議最多選擇 10 通待處理通話。
要求
| 名稱 | 類型 | 
|---|---|
| packet | vector<uint8>[258] | 
回應
| 名稱 | 類型 | 
|---|---|
| payload | ScoConnection_Send_Result | 
停止
收到 Stop 後,伺服器會關閉通訊協定。這對於使用者
同步處理 (例如設定另一個 ScoConnection 前)。
要求
<空白>
窺探
定義於 fuchsia.hardware.bluetooth/hci.fidl
AcknowledgePackets
已最多收到 sequence 個確認封包。
要求
| 名稱 | 類型 | 
|---|---|
| sequence | uint64 | 
OnDroppedPackets
如果封包自以下日期起遭到捨棄,則伺服器在收到 AcknowledgePackets 後傳送 1 次
最後一個OnObservePacket。
回應
| 名稱 | 類型 | 
|---|---|
| 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 | 
GetFeatures
傳回此控制器支援的供應商功能。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Vendor_GetFeatures_Result | 
OpenHci
已淘汰。 開啟控制器的 HCI 通訊協定。這場通話可能會遭到封鎖,直到 控制器已初始化。 如果其他用戶端已連線,則傳回 ALREADY_BOUND。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Vendor_OpenHci_Result | 
OpenHciTransport
開啟控制器的 HciTransport 通訊協定。這場通話可能會遭到封鎖,直到 控制器已初始化。 如果其他用戶端已連線,則傳回 ALREADY_BOUND。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Vendor_OpenHciTransport_Result | 
OpenSnoop
開啟傳輸驅動程式庫的 Snoop 通訊協定。 如果其他用戶端已連線,則傳回 ALREADY_BOUND。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | Vendor_OpenSnoop_Result | 
VirtualController
定義於 fuchsia.hardware.bluetooth/virtual.fidl
用於產生虛擬藍牙裝置。
CreateEmulator
建立孩童裝置,並傳回已建立的孩子名稱。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| payload | VirtualController_CreateEmulator_Result | 
CreateLoopbackDevice
建立虛擬藍牙序列裝置,和 BT HCI UART 交談 處理特定控點上的通訊協定 發生錯誤時,Zircon 管道已關閉。
要求
| 名稱 | 類型 | 
|---|---|
| payload | VirtualControllerCreateLoopbackDeviceRequest | 
結構
Emulator_AddBredrPeer_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
<空白>
Emulator_AddLowEnergyPeer_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
<空白>
Emulator_Publish_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
<空白>
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
<空白>
Hci_ConfigureSco_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
Hci_OpenAclDataChannel_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
Hci_OpenCommandChannel_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
Hci_OpenIsoDataChannel_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
Hci_OpenScoDataChannel_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
Hci_OpenSnoopChannel_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
Hci_ResetSco_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
Peer_AssignConnectionStatus_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
<空白>
Peer_SetDeviceClass_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
<空白>
Peer_SetLeAdvertisement_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
<空白>
Peer_SetServiceDefinitions_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
<空白>
Peer_WatchConnectionStates_Response
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| states | vector<ConnectionState> | 無預設 | 
ScoConnection_Send_Response
定義於 fuchsia.hardware.bluetooth/hci.fidl
<空白>
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 | HciTransport | 無預設 | 
Vendor_OpenHci_Response 資源
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| channel | Hci | 無預設 | 
Vendor_OpenSnoop_Response 資源
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| channel | Snoop | 無預設 | 
VirtualController_CreateEmulator_Response
定義於 fuchsia.hardware.bluetooth/virtual.fidl
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| name | string[32]? | 無預設 | 
ENUMS
ConnectionState 彈性
類型:uint32
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| 已連線 | 1 | |
| 連線中斷 | 2 | 
EmulatorError 彈性
類型:uint32
定義於 fuchsia.hardware.bluetooth/emulator.fidl
可針對全模擬器設定產生的錯誤代碼。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 失敗 | 1 | |
| HCI_ALREADY_PUBLISHED | 2 | 
EmulatorPeerError 彈性
類型:uint32
定義於 fuchsia.hardware.bluetooth/emulator.fidl
為操控假對等體的函式產生的錯誤代碼。
| 名稱 | 值 | 說明 | 
|---|---|---|
| ADDRESS_REPEATED | 1 | |
| PARAMETERS_INVALID | 2 | |
| NOT_FOUND | 3 | 
HciConfig 彈性
類型:uint32
定義於 fuchsia.hardware.bluetooth/emulator.fidl
預設 HCI 設定。
| 名稱 | 值 | 說明 | 
|---|---|---|
| DUAL_MODE | 1 | 同時支援 LMP 功能中的 BR/EDR 和 LE。 | 
| LE_ONLY | 2 | 限制支援的功能和 HCI 指令,僅適用於 LE 所需的功能。 | 
HciError 彈性
類型:uint8
定義於 fuchsia.hardware.bluetooth/emulator.fidl
定義藍牙控制器可回報的 HCI 通訊協定錯誤代碼清單。這些 這些值取自藍牙核心規格 v5.4、Vol 2、D 部分、1.3 節
| 名稱 | 值 | 說明 | 
|---|---|---|
| 成功 | 0 | |
| UNKNOWN_COMMAND | 1 | |
| UNKNOWN_CONNECTION_ID | 2 | |
| HARDWARE_FAILURE | 3 | |
| PAGE_TIMEOUT | 4 | |
| AUTHENTICATION_FAILURE | 5 | |
| PIN_OR_KEY_MISSING | 6 | |
| MEMORY_CAPACITY_EXCEEDED | 7 | |
| CONNECTION_TIMEOUT | 8 | |
| CONNECTION_LIMIT_EXCEEDED | 9 | |
| SYNCHRONOUS_CONNECTION_LIMIT_EXCEEDED | 10 | |
| CONNECTION_ALREADY_EXISTS | 11 | |
| COMMAND_DISALLOWED | 12 | |
| CONNECTION_REJECTED_LIMITED_RESOURCES | 13 | |
| CONNECTION_REJECTED_SECURITY | 14 | |
| CONNECTION_REJECTED_BAD_BD_ADDR | 15 | |
| CONNECTION_ACCEPT_TIMEOUT_EXCEEDED | 16 | |
| UNSUPPORTED_FEATURE_OR_PARAMETER | 17 | |
| INVALID_HCICOMMAND_PARAMETERS | 18 | |
| REMOTE_USER_TERMINATED_CONNECTION | 19 | |
| REMOTE_DEVICE_TERMINATED_CONNECTION_LOW_RESOURCES | 20 | |
| REMOTE_DEVICE_TERMINATED_CONNECTION_POWER_OFF | 21 | |
| CONNECTION_TERMINATED_BY_LOCAL_HOST | 22 | |
| REPEATED_ATTEMPTS | 23 | |
| PAIRING_NOT_ALLOWED | 24 | |
| UNKNOWN_LMP_PDU | 25 | |
| UNSUPPORTED_REMOTE_FEATURE | 26 | |
| SCO_OFFSET_REJECTED | 27 | |
| SCO_INTERVAL_REJECTED | 28 | |
| SCO_AIR_MODE_REJECTED | 29 | |
| INVALID_LMP_OR_LL_PARAMETERS | 30 | |
| UNSPECIFIED_ERROR | 31 | |
| UNSUPPORTED_LMP_OR_LL_PARAMETER_VALUE | 32 | |
| ROLE_CHANGE_NOT_ALLOWED | 33 | |
| LMP_OR_LL_RESPONSE_TIMEOUT | 34 | |
| LMP_ERROR_TRANSACTION_COLLISION | 35 | |
| LMP_PDU_NOT_ALLOWED | 36 | |
| ENCRYPTION_MODE_NOT_ACCEPTABLE | 37 | |
| LINK_KEY_CANNOT_BE_CHANGED | 38 | |
| REQUESTED_QOS_NOT_SUPPORTED | 39 | |
| INSTANT_PASSED | 40 | |
| PAIRING_WITH_UNIT_KEY_NOT_SUPPORTED | 41 | |
| DIFFERENT_TRANSACTION_COLLISION | 42 | |
| RESERVED0 | 43 | |
| QOS_UNACCEPTABLE_PARAMETER | 44 | |
| QOS_REJECTED | 45 | |
| CHANNEL_CLASSIFICATION_NOT_SUPPORTED | 46 | |
| INSUFFICIENT_SECURITY | 47 | |
| PARAMETER_OUT_OF_MANDATORY_RANGE | 48 | |
| RESERVED1 | 49 | |
| ROLE_SWITCH_PENDING | 50 | |
| RESERVED2 | 51 | |
| RESERVED_SLOT_VIOLATION | 52 | |
| ROLE_SWITCH_FAILED | 53 | |
| EXTENDED_INQUIRY_RESPONSE_TOO_LARGE | 54 | |
| SECURE_SIMPLE_PAIRING_NOT_SUPPORTED_BY_HOST | 55 | |
| HOST_BUSY_PAIRING | 56 | |
| CONNECTION_REJECTED_NO_SUITABLE_CHANNEL_FOUND | 57 | |
| CONTROLLER_BUSY | 58 | |
| UNACCEPTABLE_CONNECTION_PARAMETERS | 59 | |
| DIRECTED_ADVERTISING_TIMEOUT | 60 | |
| CONNECTION_TERMINATED_MIC_FAILURE | 61 | |
| CONNECTION_FAILED_TO_BE_ESTABLISHED | 62 | |
| MAC_CONNECTION_FAILED | 63 | |
| COARSE_CLOCK_ADJUSTMENT_REJECTED | 64 | |
| TYPE0_SUBMAP_NOT_DEFINED | 65 | |
| UNKNOWN_ADVERTISING_IDENTIFIER | 66 | |
| LIMIT_REACHED | 67 | |
| OPERATION_CANCELLED_BY_HOST | 68 | |
| PACKET_TOO_LONG | 69 | |
| TOO_LATE | 70 | |
| TOO_EARLY | 71 | 
Legacy AdvertisingType 嚴格
類型:uint8
定義於 fuchsia.hardware.bluetooth/emulator.fidl
Bluetooth Core 規格 v5.4、Vol 4、 Part E、7.8.5 的 LE 舊版廣告類型。
| 名稱 | 值 | 說明 | 
|---|---|---|
| ADV_IND | 0 | 可連線且可掃描。 | 
| ADV_DIRECT_IND | 1 | 可連線的高任務循環。 | 
| ADV_SCAN_IND | 2 | 方便瀏覽、未導向。 | 
| ADV_NONCONN_IND | 3 | 無法連線、未導向 | 
| SCAN_RSP | 4 | 掃描回覆 | 
PacketDirection 嚴格
類型:uint32
定義於 fuchsia.hardware.bluetooth/hci.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| HOST_TO_CONTROLLER | 1 | |
| CONTROLLER_TO_HOST | 2 | 
ScoCodingFormat 彈性
類型:uint8
定義於 fuchsia.hardware.bluetooth/hci.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| CVSD | 1 | |
| MSBC | 2 | 
ScoEncoding 彈性
類型:uint8
定義於 fuchsia.hardware.bluetooth/hci.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| BITS_8 | 1 | |
| BITS_16 | 2 | 
ScoSampleRate 彈性
類型:uint8
定義於 fuchsia.hardware.bluetooth/hci.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| KHZ_8 | 1 | |
| KHZ_16 | 2 | 
VendorAclDirection 彈性
類型:uint8
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| 來源 | 1 | |
| 接收器 | 2 | 
VendorAclPriority 彈性
類型:uint8
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| NORMAL | 1 | |
| 高 | 2 | 
資料表
AclBufferSettings
定義於 fuchsia.hardware.bluetooth/emulator.fidl
HCI ACL 資料流量控制參數。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | data_packet_length | uint16 | ACL 框架 MTU,以位元組為單位。 | 
| 2 | total_num_data_packets | uint8 | 控制器可緩衝的 ACL 頁框數量上限。 | 
AdvertisingData
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | data | vector<uint8>[31] | 
AndroidVendorSupport
定義於 fuchsia.hardware.bluetooth/vendor.fidl
表示支援 Android 供應商擴充功能 如果空白,系統支援 Android HCI 擴充功能,但未指定版本。 應使用 LE Get Vendor Capabilities 指令偵測到版本。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | major_version | uint8 | |
| 2 | minor_version | uint8 | 
ControllerParameters
定義於 fuchsia.hardware.bluetooth/emulator.fidl
包含藍牙控制器和可由主機寫入但無法寫入的基本頻帶參數 屬於特定程序類別 (如下圖所示)。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | local_name | string[248] | 用於連結層名稱探索程序的本地名稱。這個參數僅適用於 進行 BR/EDR 運輸在 LE 中,當地名稱會是廣告參數, 導入 GATT。 | 
| 2 | device_class | fuchsia.bluetooth/DeviceClass | 本地的「裝置類別」在 BR/EDR 查詢程序中使用的方法。 | 
EmulatorSettings
定義於 fuchsia.hardware.bluetooth/emulator.fidl
模擬器使用的控制器設定。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | address | fuchsia.bluetooth/Address | 
 | 
| 2 | hci_config | HciConfig | 支援的 HCI 指令設定。預設為「 | 
| 3 | extended_advertising | bool | 如果支援 5.0 擴充廣告功能,則為「是」。預設值為「false」。 | 
| 4 | acl_buffer_settings | AclBufferSettings | ACL-U 資料緩衝區設定。預設為
data_packet_length:1024 年
total_num_data_packets:5
如果  | 
| 5 | le_acl_buffer_settings | AclBufferSettings | LE-U ACL 資料緩衝區設定。預設為 data_packet_length:251 total_num_data_packets:5 | 
HciTransportConfigureScoRequest 資源
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | coding_format | ScoCodingFormat | 必填。 | 
| 2 | encoding | ScoEncoding | 必填。 | 
| 3 | sample_rate | ScoSampleRate | 必填。 | 
| 4 | connection | server_end<ScoConnection> | 必填。 | 
LeScanState
定義於 fuchsia.hardware.bluetooth/emulator.fidl
代表 LE 掃描狀態。如果已設定掃描參數,則會出現欄位。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | enabled | bool | 如果掃描已啟用,則為「是」。 | 
| 2 | active | bool | 如果已啟用掃描功能,則為「是」。否則掃描作業屬於被動模式。 | 
| 3 | interval | uint16 | 掃描間隔和視窗參數。這是藍牙控制器中的 「timeslices」其中 1 個切片 = 0.625 毫秒。有效值範圍介於 0x4 (2.5 毫秒) 至 0x4000 (10.24) 之間 毫秒)。 | 
| 4 | window | uint16 | |
| 5 | filter_duplicates | bool | 如果已啟用複製篩選功能,則為「是」。 | 
| 6 | address_type | fuchsia.bluetooth/AddressType | 所用本機裝置位址的類型。 | 
LegacyAdvertisingState
定義於 fuchsia.hardware.bluetooth/emulator.fidl
舊版廣告的控制器參數。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | enabled | bool | 如果已透過 HCI_LE_Set_Advertising_Enable 指令啟用廣告,則為 True。 一律提供這個欄位。 | 
| 2 | type | LegacyAdvertisingType | 最新設定的廣告類型。一律提供這個欄位。預設為 fuchsia.hardware.bluetooth/LegacyAdvertisingType.ADV_IND. | 
| 3 | address_type | fuchsia.bluetooth/AddressType | 用於廣告的 LE 位址類型。一律提供這個欄位。預設為 fuchsia.bluetooth/AddressType.PUBLIC. | 
| 4 | interval_min | uint16 | 主機指定的廣告間隔範圍參數。只有在已設定的情況下才會顯示。 | 
| 5 | interval_max | uint16 | |
| 6 | advertising_data | AdvertisingData | 任何已設定的廣告及掃描回應資料。只有在其中一個欄位不是零時才會顯示。 | 
| 7 | scan_response | AdvertisingData | 
PeerParameters 資源
定義於 fuchsia.hardware.bluetooth/emulator.fidl
用於模擬同業在 BR/EDR/低功耗傳輸上行為的參數。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | address | fuchsia.bluetooth/Address | 同業的公開 BR/EDR BD_ADDR 地址。這是必填欄位。 | 
| 2 | connectable | bool | 如果設為「true」,對等互連就會傳送可連線的廣告並接受連線 要求。如果無法連線,對等點會忽略連線要求。 | 
| 3 | channel | server_end<Peer> | 繫結至對等通訊協定的管道端端。 | 
PeerSetLeAdvertisementRequest
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | le_address | fuchsia.bluetooth/Address | 對等點的 LE 位址。 | 
| 2 | advertisement | AdvertisingData | 廣告資料內容。沒有的話,表示此同業傳送的廣告資料 將空白 | 
| 3 | scan_response | AdvertisingData | 掃描回應資料內容。算繪時,假控制器會 可掃描的廣告封包及掃描回應事件。 | 
SnoopOnDroppedPacketsRequest
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | sent | uint32 | |
| 2 | received | uint32 | 
SnoopOnObservePacketRequest
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | sequence | uint64 | 封包數量單純增加。用於流量控制
 | 
| 2 | direction | PacketDirection | |
| 3 | packet | SnoopPacket | 
VendorFeatures
定義於 fuchsia.hardware.bluetooth/vendor.fidl
供應商支援的功能表。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | acl_priority_command | bool | 支援 SetAclPriority 指令 如未顯示,則不支援該指令。 | 
| 2 | android_vendor_extensions | AndroidVendorSupport | 支援 Android 供應商擴充功能 如果缺少這些資訊,則不支援 Android 供應商擴充功能。 | 
VendorSetAclPriorityParams
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | connection_handle | uint16 | 要求優先處理的 ACL 連線處理常式。 | 
| 2 | priority | VendorAclPriority | |
| 3 | direction | VendorAclDirection | 方向資料應優先使用。可能完全不支援 供應商。優先順序為一般時忽略。 | 
VirtualControllerCreateLoopbackDeviceRequest 資源
定義於 fuchsia.hardware.bluetooth/virtual.fidl
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | uart_channel | handle<channel> | 
聯合國
Emulator_AddBredrPeer_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Emulator_AddBredrPeer_Response | |
| 2 | err | EmulatorPeerError | |
| 3 | framework_err | internal | 
模擬器_AddLowEnergyPeer_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Emulator_AddLowEnergyPeer_Response | |
| 2 | err | EmulatorPeerError | |
| 3 | framework_err | internal | 
Emulator_Publish_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Emulator_Publish_Response | |
| 2 | err | EmulatorError | |
| 3 | framework_err | internal | 
Emulator_WatchControllerParameters_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | ControllerParameters | |
| 3 | framework_err | internal | 
Emulator_WatchLeScanStates_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Emulator_WatchLeScanStates_Response | |
| 3 | framework_err | internal | 
Emulator_WatchLegacy AdvertisingStates_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Emulator_WatchLegacyAdvertisingStates_Response | |
| 3 | framework_err | internal | 
HciTransport_Send_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | HciTransport_Send_Response | |
| 3 | framework_err | internal | 
Hci_ConfigureSco_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Hci_ConfigureSco_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Hci_OpenAclDataChannel_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Hci_OpenAclDataChannel_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Hci_OpenCommandChannel_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Hci_OpenCommandChannel_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Hci_OpenIsoDataChannel_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Hci_OpenIsoDataChannel_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Hci_OpenScoDataChannel_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Hci_OpenScoDataChannel_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Hci_OpenSnoopChannel_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Hci_OpenSnoopChannel_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Hci_ResetSco_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Hci_ResetSco_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Peer_AssignConnectionStatus_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Peer_AssignConnectionStatus_Response | |
| 3 | framework_err | internal | 
Peer_SetDeviceClass_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Peer_SetDeviceClass_Response | |
| 3 | framework_err | internal | 
Peer_SetLe Advertisingment_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Peer_SetLeAdvertisement_Response | |
| 2 | err | EmulatorPeerError | |
| 3 | framework_err | internal | 
Peer_SetServiceDefinitions_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Peer_SetServiceDefinitions_Response | |
| 3 | framework_err | internal | 
Peer_WatchConnectionStates_Result 嚴格
定義於 fuchsia.hardware.bluetooth/emulator.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Peer_WatchConnectionStates_Response | |
| 3 | framework_err | internal | 
ReceivedPacket 彈性
定義於 fuchsia.hardware.bluetooth/hci.fidl
主機從控制器接收的封包。
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | event | vector<uint8>[257] | |
| 2 | acl | vector<uint8>[65539] | |
| 3 | iso | vector<uint8>[16387] | 
ScoConnection_Send_Result 嚴格
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | ScoConnection_Send_Response | |
| 3 | framework_err | internal | 
SentPacket 彈性
定義於 fuchsia.hardware.bluetooth/hci.fidl
由主機傳送至控制器的封包。
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | command | vector<uint8>[258] | |
| 2 | acl | vector<uint8>[65539] | |
| 3 | iso | vector<uint8>[16387] | 
SnoopPacket 彈性
定義於 fuchsia.hardware.bluetooth/hci.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | event | vector<uint8>[257] | |
| 2 | command | vector<uint8>[258] | |
| 3 | acl | vector<uint8>[65539] | |
| 4 | sco | vector<uint8>[258] | |
| 5 | iso | vector<uint8>[16387] | 
VendorCommand 彈性
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | set_acl_priority | VendorSetAclPriorityParams | 
Vendor_EncodeCommand_Result 嚴格
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Vendor_EncodeCommand_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Vendor_GetFeatures_Result 嚴格
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | VendorFeatures | |
| 3 | framework_err | internal | 
Vendor_OpenHciTransport_Result 嚴格 資源
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Vendor_OpenHciTransport_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Vendor_OpenHci_Result 嚴格 資源
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Vendor_OpenHci_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
Vendor_OpenSnoop_Result 嚴格 資源
定義於 fuchsia.hardware.bluetooth/vendor.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | Vendor_OpenSnoop_Response | |
| 2 | err | zx/Status | |
| 3 | framework_err | internal | 
VirtualController_CreateEmulator_Result 嚴格
定義於 fuchsia.hardware.bluetooth/virtual.fidl
| Ordinal | Variant | 類型 | 說明 | 
|---|---|---|---|
| 1 | response | VirtualController_CreateEmulator_Response | |
| 2 | err | zx/Status | |
| 3 | 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、Vol 4、第 E 部分、第 7.3.11 和 7.8.54 節。 | 
| MAX_LOCAL_NAME_LENGTH | 248 | uint8 | 使用 HCI_Write_Local_Name 指令指派的本機名稱大小上限 (以位元組為單位) (請參閱《Core 規格 v5.4, Vol 4, Part E, 7.3.11」)。 | 
| MAX_NAME_LENGTH | 32 | uint32 | |
| MAX_PEER_SERVICES | 32 | uint8 | 可一次通告的服務記錄數量上限。 | 
| SCO_PACKET_MAX | 258 | uint64 | 
服務
HciService
定義於 fuchsia.hardware.bluetooth/hci.fidl
| 名稱 | 類型 | 傳輸 | 
|---|---|---|
| hci | fuchsia.hardware.bluetooth/Hci | 頻道 | 
| hci_transport | fuchsia.hardware.bluetooth/HciTransport | 頻道 | 
| 窺探 | fuchsia.hardware.bluetooth/Snoop | 頻道 |