fuchsia.bluetooth.le

新增日期:7

通訊協定

AdvertisedPeripheral

定義於 fuchsia.bluetooth.le/peripheral.fidl

廣告期間有效的通訊協定。呼叫端可以關閉通訊協定來停止廣告。如果系統基於任何原因在內部停止廣告,就會關閉通訊協定,以便將相關資訊傳遞給用戶端。

OnConnected

透過 fuchsia.bluetooth.le/Peripheral.Advertise 啟用可連線廣告時,系統會在遠端 LE 中央連線至此週邊裝置時呼叫此方法。當系統發出此呼叫時,廣告就會暫停,直到收到回應為止,才會繼續播放。

傳回的 fuchsia.bluetooth.le/Connection 通訊協定可用來與對等點互動。也代表週邊裝置透過連線擁有的擁有權:用戶端可捨棄通訊協定,藉此要求中斷連線。同樣地,系統會關閉通訊協定,表示與對等點的連線已中斷。

  • 要求 peer 有關啟動連線的中央資訊。
  • 要求 connection 代表連線。
  • 系統應傳送空白回應,確認連線並繼續放送廣告 (用於流量控管)。

要求

名稱類型
peer Peer
connection Connection

回應

<EMPTY>

AdvertisingHandle

定義於 fuchsia.bluetooth.le/peripheral.fidl

具效期的廣告時間長度。呼叫端可關閉控點,停止放送廣告。如果系統基於任何原因在內部停止放送廣告,系統會關閉控制代碼,以便將相關資訊傳送給用戶端。

中部

定義於 fuchsia.bluetooth.le/central.fidl

連線

連線至具有指定 ID 的對等點。

要求的 fuchsia.bluetooth.le/Connection 代表用戶端與對等點連線的意願。關閉管道會移除興趣,但如果其他用戶端對同一對等互連項目保有有效的 fuchsia.bluetooth.le/Connection 可能會中斷連線。

如果與對等互連的連線中斷或發生錯誤,系統會關閉 fuchsia.bluetooth.le/Connection handle

伺服器可能會在發生錯誤時傳送下列組合: + INVALID_ARGS:部分參數無效。+ ALREADY_BOUND:這個中心點已有與對等點的連線。並且應使用現有的連線。 + NOT_CONNECTED:無法建立連線。+ CONNECTION_RESET:對等點已中斷連線。

  • 要求 id 要建立連線的對等點 ID。
  • 要求 options 選項,用於設定連線。
  • 要求 handle 控制代碼,在連線期間仍然有效。
已新增:HEAD

要求

名稱類型
id fuchsia.bluetooth/PeerId
options ConnectionOptions
handle server_end<Connection>

ConnectPeripheral

使用指定 ID 建立與週邊裝置的連線。傳回 status 中的作業狀態。

成功之後,gatt_client 會受到繫結,並可用於 GATT 用戶端角色程序。失敗時,gatt_client 會關閉,status 則會顯示錯誤。

已淘汰 - 請改用 Connect

要求

名稱類型
identifier fuchsia.bluetooth/PeerIdString
options ConnectionOptions
gatt_client server_end<fuchsia.bluetooth.gatt/Client>

回應

名稱類型
status fuchsia.bluetooth/Status

DisconnectPeripheral

中斷這個 Central 與指定 ID 的周邊裝置連線。

已淘汰

要求

名稱類型
identifier fuchsia.bluetooth/PeerIdString

回應

名稱類型
status fuchsia.bluetooth/Status

GetPeripheral

Fuschsia 核心堆疊未導入這個方法(https://fxbug.dev/42087303)

根據特定週邊裝置的專屬 ID,傳回先前掃描、連線和/或綁定程序中已知的系統週邊裝置資訊。如果無法辨識 identifier,則傳回空值。

已淘汰

要求

名稱類型
identifier fuchsia.bluetooth/PeerIdString

回應

名稱類型
peripheral RemoteDevice?

GetPeripherals

傳回系統在先前掃描、連線和/或綁定程序中已知的周邊裝置清單。並可根據已知周邊裝置中顯示的服務 UUID 篩選結果。

這個方法只會傳回週邊裝置 (例如可連線的裝置)。

已淘汰

要求

名稱類型
service_uuids vector<string>?

回應

名稱類型
peripherals vector<RemoteDevice>

OnDeviceDiscovered

針對在掃描工作階段發現的每個週邊裝置/廣播裝置,系統會呼叫此方法。rssi 包含產生此事件的廣告封包接收信號強度 (如果有的話)。

已淘汰

回應

名稱類型
device RemoteDevice

OnPeripheralDisconnected

當這個 Central 與具有指定 ID 的周邊裝置連線時,會呼叫此方法。

已淘汰

回應

名稱類型
identifier fuchsia.bluetooth/PeerIdString

OnScanStateChanged

在掃描狀態變更時呼叫此方法,例如掃描工作階段因呼叫 Central.StopScan() 或其他非預期的條件而終止。

已淘汰

回應

名稱類型
scanning bool

掃描

掃描附近的 LE 週邊裝置和電視台。如果無法啟動掃描,則 result_watcher 會以省略符號關閉。

一個中央用戶端一次只能進行一項掃描作業。因此,您一次只能處理一個掃描要求。其他掃描作業呼叫失敗。

掃描工作階段的生命週期會與提供的 result_watcher 通訊協定相關聯。如果關閉管道,掃描作業就會停止。

開始掃描後,您就能使用 fuchsia.bluetooth.le/ScanResultWatcher 監控掃描結果。

  • 要求 options 選項,用來設定掃描工作階段。
  • 要求 result_watcher 通訊協定,在這項掃描工作階段期間仍然有效。
  • 系統會傳送空白回應,確認掃描已停止。

伺服器可能會在發生錯誤時傳送下列憑證:

  • 錯誤 ALREADY_EXISTS:掃描作業已在進行中。每個 Central 通訊協定只能有效掃描 1 項。
  • 錯誤 INVALID_ARGS:部分掃描 options 無效。請參閱 ScanOptions 說明文件。
  • 錯誤 INTERNAL:發生內部錯誤,無法啟動掃描作業。

要求

名稱類型
options ScanOptions
result_watcher server_end<ScanResultWatcher>

回應

<EMPTY>

StartScan

啟動附近週邊裝置和電視台的掃描工作階段。偵測到的裝置將透過 CentralDelegate.OnDeviceDiscovered() 回報。如果掃描工作階段已在進行中,filter 將取代現有工作階段的篩選器。

如果 filter 為空值或空白 (也就是未填入任何欄位),則所有找到的可探索裝置都會通知委派代表。不建議這麼做;用戶端一般應按照至少 filter.service_uuidsfilter.service_data 和/或 filter.manufacturer_identifier 的其中一項篩選結果。

已淘汰 :請改用掃描功能

要求

名稱類型
filter ScanFilter?

回應

名稱類型
status fuchsia.bluetooth/Status

StopScan

終止先前啟動的掃描工作階段。

已淘汰

要求

<EMPTY>

CodecDelay

定義於 fuchsia.bluetooth.le/codec_delay.fidl

這個通訊協定可讓我們擷取控制器的本機延遲值。這並非單獨使用,而是請組成需要存取這項資訊的通訊協定。

已新增:HEAD

GetCodecLocalDelayRange

針對以提供的串流屬性指定的轉碼器,擷取控制器延遲時間的範圍。

如果成功時,系統會傳回允許的最短和最長延遲時間。

如果不支援讀取延遲時間,則傳回 ZX_ERR_NOT_SUPPORTED。 針對其他所有失敗情形傳回 ZX_ERR_INTERNAL。

要求

名稱類型
payload CodecDelayGetCodecLocalDelayRangeRequest

回應

名稱類型
payload CodecDelay_GetCodecLocalDelayRange_Result

連線

定義於 fuchsia.bluetooth.le/peer.fidl

代表對等互連連線的通訊協定。這可用來與 GATT 服務互動並建立 L2CAP 管道。

這項能力的生命週期與所代表的 LE 連線相關。如果沒有其他用戶端與同一個對等點的連線,關閉管道會導致連線中斷。

AcceptCis

接受對等端具有指定 CIG/CIS 值的未來 CIS 要求。所有未明確允許的 CIS 要求都會遭到拒絕。

日後建立連線的通知將使用所提供的 IsochronousStream。

主機可能會同時等待多個連入連線,不過每個連線都必須具有此連線唯一的 CIG/CIS 值。

如果我們未在這個連線中以周邊裝置角色的方式運作,Connection_stream 將以 ZX_ERR_NOT_SUPPORTED 心弦關閉。

如果我們正在等待其他包含相同 CIG/CIS 值組合的連線,Connection_stream 就會以 ZX_ERR_INVALID_ARGS 基因碼關閉。

已新增:HEAD

要求

名稱類型
payload ConnectionAcceptCisRequest

GetCodecLocalDelayRange

針對以提供的串流屬性指定的轉碼器,擷取控制器延遲時間的範圍。

如果成功時,系統會傳回允許的最短和最長延遲時間。

如果不支援讀取延遲時間,則傳回 ZX_ERR_NOT_SUPPORTED。 針對其他所有失敗情形傳回 ZX_ERR_INTERNAL。

要求

名稱類型
payload CodecDelayGetCodecLocalDelayRangeRequest

回應

名稱類型
payload CodecDelay_GetCodecLocalDelayRange_Result

RequestGattClient

伺服器發生錯誤時可能會傳送下列憑證: + ZX_ERR_ALREADY_BOUND:用戶端伺服器已在這個連線通訊協定中繫結。應使用現有的 Client。

已新增:HEAD

要求

名稱類型
client server_end<fuchsia.bluetooth.gatt2/Client>

IsochronousStream

定義於 fuchsia.bluetooth.le/iso.fidl

已新增:HEAD

OnEstablished

在建立 CIS 時提供通知,例如由中央 (來自 CigServer::CreateCis()) 或週邊裝置 (來自 CisRequestManager::Accept()) 啟動。

回應

名稱類型
payload IsochronousStreamOnEstablishedRequest

已讀

從已建立和設定的輸出 (控制器 => 主機) ISO 串流接收資料。專為吊掛圖案設計。

可在建立及設定 ISO 資料串流之前叫用,但必須等到設定完成且收到資料後,才會傳回結果。

要求

<EMPTY>

回應

名稱類型
payload IsochronousStream_Read_Result

SetupDataPath

使用指定的參數建立獨立的資料路徑。目前僅支援頻內 (HCI) ISO 傳輸。

如果已為這個方向建立 ISO 串流,就會傳回 ZX_ERR_ALREADY_EXISTS。

如果週邊裝置在接受 CIS 要求之前發出,系統會傳回 ZX_ERR_BAD_STATE。

如果轉碼器引數無效或超過控制器支援範圍,則傳回 ZX_ERR_INVALID_ARGS。

要求

名稱類型
payload IsochronousStreamSetupDataPathRequest

回應

名稱類型
payload IsochronousStream_SetupDataPath_Result

周邊裝置

定義於 fuchsia.bluetooth.le/peripheral.fidl

刊登廣告

以 LE 週邊裝置持續放送廣告。如果無法啟動廣告,系統會關閉 advertised_peripheral 並傳回錯誤。

此方法可能會呼叫任意次數。如要重新設定廣告,請先關閉原始廣告,然後在傳回空白回應後啟動新廣告。

如果用戶端關閉 fuchsia.bluetooth.le/AdvertisedPeripheral 管道結尾,廣告就會停止放送。如果帳號代碼在要求執行前關閉,廣告可能就會短暫啟用。通告週邊裝置生命週期受週邊裝置通訊協定的生命週期限制,但日後可能會改變 (https://fxbug.dev/42157682)。

  • request parameters 參數,設定廣告執行個體。
  • 要求 advertised_peripheral 通訊協定,且在此廣告工作階段期間仍然有效。
  • 當廣告成功停止時 (由於 advertised_peripheral 通訊協定釋出),系統會傳送空白的回應。為避免在廣告資源有限的情況下重疊類似的廣告和暫時性錯誤,建議在再次呼叫 Advertise 前等待回應。
  • 如果發生錯誤,系統會關閉 advertised_peripheral,並傳回 PeripheralError

要求

名稱類型
parameters AdvertisingParameters
advertised_peripheral AdvertisedPeripheral

回應

名稱類型
payload Peripheral_Advertise_Result

OnPeerConnected

透過 fuchsia.bluetooth.le/Peripheral.StartAdvertising 啟用可連線廣告時,在遠端 LE 中央與這個週邊裝置建立連線時,系統會傳送事件。

傳回的 fuchsia.bluetooth.le/Connection 控制代碼可用來與對等點互動。也代表週邊裝置透過連線擁有的擁有權:用戶端可以捨棄該控制代碼來要求中斷連線。同樣地,系統會關閉控制代碼,表示與對等點的連線已中斷。

  • 要求 peer 啟動連線的中央有關資訊。
  • 要求 connection 代表連線。

已淘汰 - 請改用 AdvertisingdPeripheral.OnConnected

回應

名稱類型
peer Peer
connection Connection

StartAdvertising

開始以 LE 週邊裝置的形式放送廣告。系統會傳送空白回應,表示廣告成功啟動。如果無法啟動廣告,回應會包含 fuchsia.bluetooth.le/PeripheralError

這個方法可能會呼叫任意次數,且可以發出連續呼叫來重新設定廣告參數。但只有最新的 fuchsia.bluetooth.le/AdvertisingHandle 仍然有效。

fuchsia.bluetooth.le/Peripheral 例項一次只能有一個有效廣告。用戶端必須為多個同時通告取得多個週邊裝置執行個體。

如果客戶關閉 fuchsia.bluetooth.le/AdvertisingHandle 管道結尾,廣告就會停止放送。如果帳號代碼在要求完成前關閉,廣告會短暫啟用,然後再終止。

  • request parameters 參數,設定廣告執行個體。
  • 要求 handle 處理在廣告工作階段期間仍然有效的處理。

已淘汰

要求

名稱類型
parameters AdvertisingParameters
handle server_end<AdvertisingHandle>

回應

名稱類型
payload Peripheral_StartAdvertising_Result

ScanResultWatcher

定義於 fuchsia.bluetooth.le/central.fidl

代表執行中的掃描程序。此通訊協定在掃描期間仍然有效,並可用於取得掃描結果。用戶端可以關閉通訊協定來停止掃描。如果系統停止掃描,通訊協定就會透過 Epitaph CANCELED 關閉,以便與用戶端通訊。

觀看

傳回符合 ScanOptions 中指定的篩選器的所有 LE 對等點清單。第一個回應會立即傳回找到的相符對等項目。只有在上次呼叫後經過掃描或更新的對等互連項目時,後續呼叫才會收到回應。如果在一個呼叫處於待處理狀態時,系統意外傳送對 Watch 的呼叫,系統會取消掃描作業,並關閉通訊協定。

  • 回應 updated 自上次呼叫 Watch() 以來新增或更新的對等點。

要求

<EMPTY>

回應

名稱類型
updated vector<Peer>

結構化

AdvertisingDataDeprecated

定義於 fuchsia.bluetooth.le/types_Deprecatedd.fidl

代表廣播業者或週邊裝置宣傳的廣告和掃描回應資料。

已淘汰 - 請改用 AdvertisingData

廣闊類型說明預設
name fuchsia.bluetooth/DeviceName

裝置名稱。

無預設
tx_power_level fuchsia.bluetooth/Int8?

廣告回報的無線電傳輸功率。

無預設
appearance fuchsia.bluetooth/UInt16?

廣告中回報的外觀。

無預設
service_uuids vector<string>?

廣告回報的服務 UUID 清單。

無預設
service_data vector<ServiceDataEntry>?

廣告中包含的服務資料。

無預設
manufacturer_specific_data vector<ManufacturerSpecificDataEntry>?

製造商專屬資料項目。

無預設
solicited_service_uuids vector<string>?

廣告中要求的服務 UUID。週邊裝置可邀請公開特定服務的中心,透過服務招攬功能與其連線。

無預設
uris vector<string>?

廣告封包中包含的 URI。這些是完整的 URI (會自動進行編碼/解碼)

無預設

IsochronousStream_SetupDataPath_Response

定義於 fuchsia.bluetooth.le/iso.fidl

<EMPTY>

ManufacturerData

fuchsia.bluetooth.le/advertising_data.fidl

fuchsia.bluetooth.le/AdvertisingDatamanufacturer_data 欄位中的項目。

廣闊類型說明預設
company_id uint16 無預設
data vector<uint8>[252] 無預設

ManufacturerSpecificDataEntry

定義於 fuchsia.bluetooth.le/types_Deprecatedd.fidl

已淘汰 - 請改用 ManufacturerData

廣闊類型說明預設
company_id uint16 無預設
data vector<uint8> 無預設

Peripheral_Advertise_Response

定義於 fuchsia.bluetooth.le/peripheral.fidl

<EMPTY>

Peripheral_StartAdvertising_Response

定義於 fuchsia.bluetooth.le/peripheral.fidl

<EMPTY>

RemoteDevice

定義於 fuchsia.bluetooth.le/types_Deprecatedd.fidl

代表遠端藍牙低功耗裝置。RemoteDevice 可根據接收來源的 API 代表一個中央、廣播器或週邊裝置。

已淘汰 - 請改用同類應用程式

廣闊類型說明預設
identifier fuchsia.bluetooth/PeerIdString

可在目前系統中識別此裝置的專屬 ID。

無預設
connectable bool

裝置是否可連線。無法連線的裝置通常會成為 LE 廣播業者角色。

無預設
rssi fuchsia.bluetooth/Int8?

這部裝置最新已知的 RSSI (如果已知)。

無預設
advertising_data AdvertisingDataDeprecated?

如果這部裝置是廣播業者或週邊裝置,由這部裝置播送廣告資料。

無預設

ScanFilter

定義於 fuchsia.bluetooth.le/types_Deprecatedd.fidl

掃描時使用的篩選器參數。只有在偵測到的周邊裝置或電視台符合所有提供的篩選條件參數時,系統才會向應用程式回報。空值欄位將遭到忽略。

已淘汰 - 請改用篩選器

廣闊類型說明預設
service_uuids vector<string>?

根據宣傳的服務 UUID 篩選。宣傳 service_uuids 中至少一個項目的周邊裝置就會符合這個篩選條件。

無預設
service_data_uuids vector<string>?

根據包含其中一個指定 UUID 的服務資料進行篩選。

無預設
manufacturer_identifier fuchsia.bluetooth/UInt16?

根據製造商資料中存在的公司 ID 進行篩選。如果設定這個篩選器參數,廣告酬載必須包含製造商特定資料及所提供的公司 ID,才能符合這個篩選條件。

無預設
connectable fuchsia.bluetooth/Bool?

根據裝置是否可連線篩選。舉例來說,如果用戶端只想瞭解可連線的周邊裝置,就能將這個值設為 true。同樣地,用戶端也必須將這個欄位設為 false,只能掃描 braodcaster。

無預設
name_substring fuchsia.bluetooth/DeviceName

根據廣告裝置名稱的一部分篩選結果。

無預設
max_path_loss fuchsia.bluetooth/Int8?

依據無線電波的路徑遺失篩選結果。符合此篩選器的裝置必須滿足下列條件:

  1. 計算路徑損失時,無線電傳輸功率水平和接收訊號強度必須可用;
  2. 計算出的路徑損失值必須小於或等於 max_path_loss
無預設

ServiceData

fuchsia.bluetooth.le/advertising_data.fidl

fuchsia.bluetooth.le/AdvertisingDataservice_data 欄位中的項目。

廣闊類型說明預設
uuid fuchsia.bluetooth/Uuid 無預設
data vector<uint8>[252] 無預設

ServiceDataEntry

定義於 fuchsia.bluetooth.le/types_Deprecatedd.fidl

已淘汰 - 請改用 ServiceData

廣闊類型說明預設
uuid fuchsia.bluetooth/UuidString 無預設
data vector<uint8> 無預設

ENUMS

AdvertisingModeHint 嚴格

類型:uint8

定義於 fuchsia.bluetooth.le/peripheral.fidl

用戶端可指定模式,藉此指示廣告封包的傳輸速率。使用廣告間隔和視窗參數設定控制器時,此模式會為系統提供提示。

這個模式會影響掃描器或中央裝置偵測到週邊裝置的速度,但可能會對耗電量造成負面影響。儘管系統會嘗試履行用戶端的要求,但不保證一定如此。

名稱物超所值說明
1

刊登廣告時,間隔與間隔時間極短,有助於快速探索,但代價會增加。這相當於在編碼的 PHY 中,每 100 萬個 PHY 分別有 30 到 60 毫秒的間隔,以及 90 到 180 毫秒的間隔。

2

刊登廣告時,間隔時間較短,剩餘電量低於 VERY_FAST。 這相當於在編碼的 PHY 中,100 萬個 PHY 和 300-450 毫秒的間隔時間相差 100-150 毫秒。

3

廣告以適當間隔和回溯期進行宣傳。這對應在編碼的 PHY 中,每 100 萬個 PHY 和 3 的 1 到 1.2。

CentralError strict

類型:uint32

定義於 fuchsia.bluetooth.le/central.fidl

名稱物超所值說明
1

要求已中止。

2

這項要求已在處理中。

3

提供的參數無效。

4

由於硬體或系統錯誤而無法啟動廣告。

IsoPacketStatusFlag 嚴格

類型:uint8

定義於 fuchsia.bluetooth.le/iso.fidl

此標記可指出從非異狀管道接收到的資料有效性。

已新增:HEAD

名稱物超所值說明
0

有效資料。已正確收到完整的 SDU。

1

可能為無效的資料。收到的一或多個片段可能包含錯誤,或是缺少部分封包。

2

部分封包未正確接收。

PeripheralError strict

類型:uint32

定義於 fuchsia.bluetooth.le/peripheral.fidl

名稱物超所值說明
1

目前的硬體不支援要求的作業或參數。

2

提供的廣告資料超過編碼時允許的長度上限。

3

提供的掃描回應資料超過編碼後的長度上限。

4

要求的參數無效。

5

已中止放送廣告的要求,例如發出包含新參數的新要求。

6

由於硬體或系統錯誤而無法啟動廣告。

資料表

AdvertisingData

fuchsia.bluetooth.le/advertising_data.fidl

代表由 LE 週邊裝置或廣播器傳輸的廣告和掃描回應資料。

序數廣闊類型說明
name fuchsia.bluetooth/DeviceName

裝置的完整名稱或簡稱。

appearance fuchsia.bluetooth/Appearance

裝置的外觀。

tx_power_level int8

已淘汰 - 請改用 include_tx_power_level。系統會忽略這個值。

service_uuids vector<fuchsia.bluetooth/Uuid>

服務 UUID。

service_data vector<ServiceData>

服務資料項目。

manufacturer_data vector<ManufacturerData>

製造商專屬資料項目。

uris vector<string>

代表要通告 URI 的字串,如 IETF STD 66 所定義。 每個項目都必須是包含配置的 UTF-8 字串。詳情請參閱:

  • https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml 允許計劃;
  • https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping 是系統用於壓縮配置,以節省酬載中的空間。
include_tx_power_level bool

指出廣告資料是否應包含目前的 TX 電源等級。

AdvertisingParameters

定義於 fuchsia.bluetooth.le/peripheral.fidl

代表設定廣告的參數。

序數廣闊類型說明
data AdvertisingData

將在廣告封包資料區段中進行編碼的欄位。

這是必填欄位。

scan_response AdvertisingData

要在掃描回應封包中傳送的欄位。用戶端可利用這個 ID,在不支援廣告資料長度延伸模組的平台上,傳送廣告封包內無法容納的其他資料。

如果顯示的廣告會設為可供掃描,

mode_hint AdvertisingModeHint

所需的廣告展示頻率。詳情請參閱 fuchsia.bluetooth.le/AdvertisingModeHint。 如果沒有,預設為 fuchsia.bluetooth.le/AdvertisingModeHint.SLOW

connectable bool

如果有此參數且設為 True,控制器就會播送可連線的廣告,讓遠端 LE 中心能夠與週邊裝置連線。如果傳回 false 或其他方法,廣告就無法連線。

已淘汰 - 建議使用 connection_options 欄位來輸入新程式碼。

connection_options ConnectionOptions

如果使用的話,控制器會播送可連線的廣告,讓對等點啟動週邊裝置的連線。ConnectionOptions 的欄位會設定從廣告設定的任何連線。

advertising_procedure AdvertisingProcedure

指定要使用的廣告類型 (例如舊版、擴充等)。

如果沒有,系統會預設採用舊版廣告,以維持與藍牙 5.0 之前裝置的最佳相容性。詳情請參閱 AdvertisingProcedure 中的欄位說明。

已新增:HEAD

CisEstablishedParameters

定義於 fuchsia.bluetooth.le/iso.fidl

已為單一 CIS 建立設定。

已新增:HEAD

序數廣闊類型說明
cig_sync_delay zx/Duration

在 CIG 事件中傳送所有 CIS 的 PDU 時間上限。範圍為 [234, 8388607] 微秒。

系統一律會提供這個欄位。

cis_sync_delay zx/Duration

在 CIG 事件中,傳輸指定 CIS 的 PDU 時間上限。範圍為 [234, 8388607] 微秒。

系統一律會提供這個欄位。

max_subevents uint8

每個 CIS 事件中的子事件數量上限。

系統一律會提供這個欄位。

iso_interval zx/Duration

兩個連續 CIS 錨點之間的時間,範圍為 [5 毫秒、4 秒]

系統一律會提供這個欄位。

central_to_peripheral_params CisUnidirectionalParams

中央傳輸參數 => 週邊裝置傳輸 (如果適用)

如果串流包含從中央傳輸到週邊裝置的不尋常資料,就會顯示此欄位。

peripheral_to_central_params CisUnidirectionalParams

週邊裝置的參數 => 中央傳輸 (如適用)。

如果串流包含從週邊裝置傳送至中央的不定期資料傳輸,則會顯示這個欄位。

CisUnidirectionalParams

定義於 fuchsia.bluetooth.le/iso.fidl

在已建立的 CIS 中,與單一方向相關的參數。

已新增:HEAD

序數廣闊類型說明
transport_latency zx/Duration

傳輸延遲時間,範圍為 [234, 8388607] 微秒

系統一律會提供這個欄位。

burst_number uint8

往這個方向傳輸的峰值編號。

系統一律會提供這個欄位。

flush_timeout uint8

每個承載的清除逾時,以 ISO 間隔的倍數表示。

系統一律會提供這個欄位。

CodecDelayGetCodecLocalDelayRangeRequest

定義於 fuchsia.bluetooth.le/codec_delay.fidl

序數廣闊類型說明
logical_transport_type fuchsia.bluetooth/LogicalTransportType

使用的邏輯傳輸類型。曲線僅支援 LE 傳輸機制 (CIS 或 BIS)。必填。

data_direction fuchsia.bluetooth/DataDirection

表示資料流的方向。必填。

codec_attributes fuchsia.bluetooth/CodecAttributes

無線傳輸的轉碼器。必填。

CodecDelay_GetCodecLocalDelayRange_Response

定義於 fuchsia.bluetooth.le/codec_delay.fidl

序數廣闊類型說明
min_controller_delay zx/Duration

指定設定的控制器最短延遲時間,範圍為 [0, 4] 秒。 成功時效應。

max_controller_delay zx/Duration

指定設定的控制器最長延遲時間,範圍為 [0, 4] 秒。成功時效應。

ConnectionAcceptCisRequest 資源

定義於 fuchsia.bluetooth.le/peer.fidl

序數廣闊類型說明
cig_id uint8

包含所要求 CIS 的 CIG ID。必填。

cis_id uint8

所要求 CIS 的 ID。必填。

connection_stream server_end<IsochronousStream>

建立串流後,伺服器會在這個管道叫用 IsochronousStream::OnCisCreateed()。必填。

如果此管道的用戶端關閉,則相對應 CIG/CIS 組合的要求將遭到拒絕,除非再次使用相同 CIG/CIS 參數發出其他 AcceptCis() 呼叫。

ConnectionOptions

定義於 fuchsia.bluetooth.le/connection_options.fidl

代表建立低能源連線的 FIDL 通訊協定針對個別連線設定的參數。

序數廣闊類型說明
bondable_mode bool

設為 true 時,連線會以可連結模式運作。也就是說,如果對等點也處於可綁定模式,配對就會形成連結,或在中斷連線時持續存在。如未顯示,連線會預設為可綁定模式。設為 false 時,連線會在非可綁定的模式下運作,這代表本機裝置只允許建立不會形成鍵的配對。

service_filter fuchsia.bluetooth/Uuid

如果有的話,在連線後執行的服務探索作業僅限於與此欄位相符的主要服務。否則,系統預設會探索所有可用服務。

完整

定義於 fuchsia.bluetooth.le/peripheral.fidl

序數廣闊類型說明

濾鏡

定義於 fuchsia.bluetooth.le/central.fidl

掃描時使用的篩選器參數。找到的對等點只有在符合所有目前篩選器參數的情況下,才會與篩選器相符。

序數廣闊類型說明
service_uuid fuchsia.bluetooth/Uuid

根據通告服務 UUID 篩選。

service_data_uuid fuchsia.bluetooth/Uuid

根據包含指定 UUID 的服務資料進行篩選。

manufacturer_id uint16

依據製造商資料中呈現的製造商 ID 進行篩選。如果設定了這個篩選器參數,廣告酬載必須包含製造商特定資料,且這些資料須附有他們提供的公司 ID,才能符合這個篩選條件。如需製造商 ID,請前往 https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/

connectable bool

根據裝置是否可連線篩選。舉例來說,如果用戶端只想存取可連線的周邊裝置,可將這個值設為 true。同樣地,用戶端必須將此項設為 false,藉此掃描廣播者。

name fuchsia.bluetooth/DeviceName

根據廣告宣傳裝置名稱的一部分篩選結果。 但允許子字串比對。

max_path_loss int8

依據無線電波的路徑遺失篩選結果。符合此篩選條件的裝置必須滿足以下條件:

  1. 計算路徑遺失率時,必須可提供無線電傳輸功率水平及接收訊號強度;
  2. 計算出的路徑遺失值必須小於或等於 max_path_loss

注意:這個欄位的計算依據是掃描程序期間,從廣告和掃描回應資料取得的 RSSI 和 TX 電力資訊。請「不要」與使用「路徑遺失報表」功能取得的有效連線資訊混淆。

IsochronousStreamOnEstablishedRequest

定義於 fuchsia.bluetooth.le/iso.fidl

序數廣闊類型說明
result zx/Status

ZX_ERR_INTERNAL 的結果表示控制器收到要求,但無法建立串流。

established_params CisEstablishedParameters

如果串流成功建立,則一律提供此欄位。

IsochronousStreamSetupDataPathRequest

定義於 fuchsia.bluetooth.le/iso.fidl

序數廣闊類型說明
data_direction fuchsia.bluetooth/DataDirection

資料流動的方式。必填。

codec_attributes fuchsia.bluetooth/CodecAttributes

指定無線使用的編碼格式。必填。

controller_delay zx/Duration

提供的延遲時間必須在控制器支援的範圍內,且不得超過 4 秒。必填。

IsochronousStream_Read_Response

定義於 fuchsia.bluetooth.le/iso.fidl

序數廣闊類型說明
data vector<uint8>

資料架構本身。必填。

sequence_number uint16

與影格相關的序號。 必填。

status_flag IsoPacketStatusFlag

封包的狀態旗標 (由控制器回報)。必填。

timestamp zx/Duration

控制器回報的接收時間戳記。 選用。

舊版

定義於 fuchsia.bluetooth.le/peripheral.fidl

序數廣闊類型說明

對等節點

定義於 fuchsia.bluetooth.le/peer.fidl

代表可能在廣播公司、週邊裝置或中心角色中運作的藍牙低功耗對等點。對等點的角色取決於是透過中央或週邊裝置通訊協定取得。

序數廣闊類型說明
id fuchsia.bluetooth/PeerId

可在目前的系統上識別這個對等點。

系統一律會提供這個欄位。

connectable bool

這個對等點是否可連線。無法連線的對等點通常在 LE 廣播者角色中。

系統一律會提供這個欄位。

rssi int8

這個對等互連項目上次觀察到的訊號強度。這個欄位僅適用於廣播的對等點。如果同類應用程式從未放送廣告,RSSI 可能會過時。

注意:這個欄位「不應」與目前連線至系統的對等節點「連線 RSSI」混為一談。

advertising_data AdvertisingData

已淘汰 - 請改用「資料」

name fuchsia.bluetooth/DeviceName

對等點的名稱。這個名稱通常會在掃描過程中取得,而且可能會在連線之後的名稱探索程序中更新。

如果已知名稱,就會顯示這個欄位。

data ScanData

來自這個對等點廣播的回應資料及掃描回應資料。如果存在,這包含上次從對等點接收的廣告資料。

bonded bool

這個對等點是否已建立繫結。

系統一律會提供這個欄位。

last_updated zx/Time

系統單調時鐘的值,自這個對等點上次更新時測量的值 (例如因為接收到廣告而得)。

系統一律會提供這個欄位。

ScanData

定義於 fuchsia.bluetooth.le/peer.fidl

從通訊端廣播和掃描回應資料取得的資訊。

序數廣闊類型說明
tx_power int8

廣告和/或可掃描同類應用程式回報的無線電傳輸功率等級。

注意:這個欄位「不應」與目前透過「傳輸功率回報」功能取得的系統連線的對等點「連線 TX 功率等級」混淆。

appearance fuchsia.bluetooth/Appearance

裝置的外觀。

service_uuids vector<fuchsia.bluetooth/Uuid>

服務 UUID。

service_data vector<ServiceData>

服務資料項目。

manufacturer_data vector<ManufacturerData>

製造商專屬資料項目。

uris vector<string>

代表要通告 URI 的字串,如 IETF STD 66 所定義。 每個項目都必須是包含配置的 UTF-8 字串。詳情請參閱 https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml。 請注意,藍牙廣告會無線壓縮結構定義以節省空間。詳情請參閱 https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping。

timestamp zx/Time

收到這項掃描資料的相同時間。

ScanOptions

定義於 fuchsia.bluetooth.le/central.fidl

掃描時使用的參數。

序數廣闊類型說明
filters vector<Filter>

掃描時使用的篩選器清單。系統會回報符合這些篩選條件的周邊裝置。至少須指定 1 個篩選條件。儘管不建議這麼做,但如果用戶端需要回報所有周邊裝置,可以將篩選器指定為空白。

聯合國

AdvertisingProcedure 彈性

定義於 fuchsia.bluetooth.le/peripheral.fidl

已新增:HEAD
序數Variant類型說明
legacy Legacy

使用舊版廣告封包通告。所有裝置應該都能找出這類封包。

extended Extended

使用擴充廣告封包通告。擴充廣告封包允許宣傳的資料量比舊版廣告封包 (31 個位元組比 PDU 251 位元組) 更大。擴充廣告封包在廣告鏈中最多可支援 1,650 個位元組,但只有使用藍牙 5.0 以上版本的新裝置才能偵測到這些封包。

並非所有產品都支援擴充廣告封包。PeripheralError::NOT_SUPPORTED 會在要求時傳回,且不支援。

CodecDelay_GetCodecLocalDelayRange_Result 嚴格

定義於 fuchsia.bluetooth.le/codec_delay.fidl

序數Variant類型說明
response CodecDelay_GetCodecLocalDelayRange_Response
err zx/Status

IsochronousStream_Read_Result 嚴格

定義於 fuchsia.bluetooth.le/iso.fidl

序數Variant類型說明
response IsochronousStream_Read_Response
framework_err internal

IsochronousStream_SetupDataPath_Result 嚴格

定義於 fuchsia.bluetooth.le/iso.fidl

序數Variant類型說明
response IsochronousStream_SetupDataPath_Response
err zx/Status
framework_err internal

Peripheral_Advertising_Result 嚴格

定義於 fuchsia.bluetooth.le/peripheral.fidl

序數Variant類型說明
response Peripheral_Advertise_Response
err PeripheralError

Peripheral_StartAdvertising_Result 嚴格

定義於 fuchsia.bluetooth.le/peripheral.fidl

序數Variant類型說明
response Peripheral_StartAdvertising_Response
err PeripheralError

業者

名稱物超所值類型說明
MAX_MANUFACTURER_DATA_LENGTH 252 uint8
MAX_SERVICE_DATA_LENGTH 252 uint8
MAX_URI_LENGTH 278 uint16