通訊協定
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
控制代碼,在連線期間仍然有效。
要求
名稱 | 類型 |
---|---|
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_uuids
、filter.service_data
和/或 filter.manufacturer_identifier
的其中一項篩選結果。
已淘汰 :請改用掃描功能
要求
名稱 | 類型 |
---|---|
filter |
ScanFilter?
|
回應
名稱 | 類型 |
---|---|
status |
fuchsia.bluetooth/Status
|
StopScan
終止先前啟動的掃描工作階段。
已淘汰
要求
<EMPTY>
CodecDelay
定義於 fuchsia.bluetooth.le/codec_delay.fidl
這個通訊協定可讓我們擷取控制器的本機延遲值。這並非單獨使用,而是請組成需要存取這項資訊的通訊協定。
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 基因碼關閉。
要求
名稱 | 類型 |
---|---|
payload |
ConnectionAcceptCisRequest
|
GetCodecLocalDelayRange
針對以提供的串流屬性指定的轉碼器,擷取控制器延遲時間的範圍。
如果成功時,系統會傳回允許的最短和最長延遲時間。
如果不支援讀取延遲時間,則傳回 ZX_ERR_NOT_SUPPORTED。 針對其他所有失敗情形傳回 ZX_ERR_INTERNAL。
要求
名稱 | 類型 |
---|---|
payload |
CodecDelayGetCodecLocalDelayRangeRequest
|
回應
名稱 | 類型 |
---|---|
payload |
CodecDelay_GetCodecLocalDelayRange_Result
|
RequestGattClient
伺服器發生錯誤時可能會傳送下列憑證:
+ ZX_ERR_ALREADY_BOUND
:用戶端伺服器已在這個連線通訊協定中繫結。應使用現有的 Client。
要求
名稱 | 類型 |
---|---|
client |
server_end<fuchsia.bluetooth.gatt2/Client>
|
IsochronousStream
定義於 fuchsia.bluetooth.le/iso.fidl
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
處理在廣告工作階段期間仍然有效的處理。
- 如果無法啟動廣告,系統會傳回 fuchsia.bluetooth.le/PeripheralError。在這種情況下,
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/AdvertisingData 的 manufacturer_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_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?
|
依據無線電波的路徑遺失篩選結果。符合此篩選器的裝置必須滿足下列條件:
|
無預設 |
ServiceData
如 fuchsia.bluetooth.le/advertising_data.fidl
fuchsia.bluetooth.le/AdvertisingData 的 service_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
用戶端可指定模式,藉此指示廣告封包的傳輸速率。使用廣告間隔和視窗參數設定控制器時,此模式會為系統提供提示。
這個模式會影響掃描器或中央裝置偵測到週邊裝置的速度,但可能會對耗電量造成負面影響。儘管系統會嘗試履行用戶端的要求,但不保證一定如此。
名稱 | 物超所值 | 說明 |
---|---|---|
VERY_FAST |
1 |
刊登廣告時,間隔與間隔時間極短,有助於快速探索,但代價會增加。這相當於在編碼的 PHY 中,每 100 萬個 PHY 分別有 30 到 60 毫秒的間隔,以及 90 到 180 毫秒的間隔。 |
快速 |
2 |
刊登廣告時,間隔時間較短,剩餘電量低於 |
SLOW |
3 |
廣告以適當間隔和回溯期進行宣傳。這對應在編碼的 PHY 中,每 100 萬個 PHY 和 3 的 1 到 1.2。 |
CentralError strict
類型:uint32
定義於 fuchsia.bluetooth.le/central.fidl
名稱 | 物超所值 | 說明 |
---|---|---|
已中止 |
1 |
要求已中止。 |
IN_PROGRESS |
2 |
這項要求已在處理中。 |
INVALID_PARAMETERS |
3 |
提供的參數無效。 |
失敗 |
4 |
由於硬體或系統錯誤而無法啟動廣告。 |
IsoPacketStatusFlag 嚴格
類型:uint8
定義於 fuchsia.bluetooth.le/iso.fidl
此標記可指出從非異狀管道接收到的資料有效性。
名稱 | 物超所值 | 說明 |
---|---|---|
VALID_DATA |
0 |
有效資料。已正確收到完整的 SDU。 |
DATA_WITH_POSSIBLE_ERRORS |
1 |
可能為無效的資料。收到的一或多個片段可能包含錯誤,或是缺少部分封包。 |
LOST_DATA |
2 |
部分封包未正確接收。 |
PeripheralError strict
類型:uint32
定義於 fuchsia.bluetooth.le/peripheral.fidl
名稱 | 物超所值 | 說明 |
---|---|---|
NOT_SUPPORTED |
1 |
目前的硬體不支援要求的作業或參數。 |
ADVERTISING_DATA_TOO_LONG |
2 |
提供的廣告資料超過編碼時允許的長度上限。 |
SCAN_RESPONSE_DATA_TOO_LONG |
3 |
提供的掃描回應資料超過編碼後的長度上限。 |
INVALID_PARAMETERS |
4 |
要求的參數無效。 |
已中止 |
5 |
已中止放送廣告的要求,例如發出包含新參數的新要求。 |
失敗 |
6 |
由於硬體或系統錯誤而無法啟動廣告。 |
資料表
AdvertisingData
如 fuchsia.bluetooth.le/advertising_data.fidl
代表由 LE 週邊裝置或廣播器傳輸的廣告和掃描回應資料。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
name |
fuchsia.bluetooth/DeviceName
|
裝置的完整名稱或簡稱。 |
2 |
appearance |
fuchsia.bluetooth/Appearance
|
裝置的外觀。 |
3 |
tx_power_level |
int8
|
已淘汰 - 請改用 include_tx_power_level。系統會忽略這個值。 |
4 |
service_uuids |
vector<fuchsia.bluetooth/Uuid>
|
服務 UUID。 |
5 |
service_data |
vector<ServiceData>
|
服務資料項目。 |
6 |
manufacturer_data |
vector<ManufacturerData>
|
製造商專屬資料項目。 |
7 |
uris |
vector<string>
|
代表要通告 URI 的字串,如 IETF STD 66 所定義。 每個項目都必須是包含配置的 UTF-8 字串。詳情請參閱:
|
8 |
include_tx_power_level |
bool
|
指出廣告資料是否應包含目前的 TX 電源等級。 |
AdvertisingParameters
定義於 fuchsia.bluetooth.le/peripheral.fidl
代表設定廣告的參數。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
data |
AdvertisingData
|
將在廣告封包資料區段中進行編碼的欄位。 這是必填欄位。 |
2 |
scan_response |
AdvertisingData
|
要在掃描回應封包中傳送的欄位。用戶端可利用這個 ID,在不支援廣告資料長度延伸模組的平台上,傳送廣告封包內無法容納的其他資料。 如果顯示的廣告會設為可供掃描, |
3 |
mode_hint |
AdvertisingModeHint
|
所需的廣告展示頻率。詳情請參閱 fuchsia.bluetooth.le/AdvertisingModeHint。 如果沒有,預設為 fuchsia.bluetooth.le/AdvertisingModeHint.SLOW。 |
4 |
connectable |
bool
|
如果有此參數且設為 True,控制器就會播送可連線的廣告,讓遠端 LE 中心能夠與週邊裝置連線。如果傳回 false 或其他方法,廣告就無法連線。 已淘汰 - 建議使用 connection_options 欄位來輸入新程式碼。 |
5 |
connection_options |
ConnectionOptions
|
如果使用的話,控制器會播送可連線的廣告,讓對等點啟動週邊裝置的連線。 |
6 |
advertising_procedure |
AdvertisingProcedure
|
指定要使用的廣告類型 (例如舊版、擴充等)。 如果沒有,系統會預設採用舊版廣告,以維持與藍牙 5.0 之前裝置的最佳相容性。詳情請參閱 AdvertisingProcedure 中的欄位說明。 已新增:HEAD
|
CisEstablishedParameters
定義於 fuchsia.bluetooth.le/iso.fidl
已為單一 CIS 建立設定。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
cig_sync_delay |
zx/Duration
|
在 CIG 事件中傳送所有 CIS 的 PDU 時間上限。範圍為 [234, 8388607] 微秒。 系統一律會提供這個欄位。 |
2 |
cis_sync_delay |
zx/Duration
|
在 CIG 事件中,傳輸指定 CIS 的 PDU 時間上限。範圍為 [234, 8388607] 微秒。 系統一律會提供這個欄位。 |
3 |
max_subevents |
uint8
|
每個 CIS 事件中的子事件數量上限。 系統一律會提供這個欄位。 |
4 |
iso_interval |
zx/Duration
|
兩個連續 CIS 錨點之間的時間,範圍為 [5 毫秒、4 秒] 系統一律會提供這個欄位。 |
5 |
central_to_peripheral_params |
CisUnidirectionalParams
|
中央傳輸參數 => 週邊裝置傳輸 (如果適用) 如果串流包含從中央傳輸到週邊裝置的不尋常資料,就會顯示此欄位。 |
6 |
peripheral_to_central_params |
CisUnidirectionalParams
|
週邊裝置的參數 => 中央傳輸 (如適用)。 如果串流包含從週邊裝置傳送至中央的不定期資料傳輸,則會顯示這個欄位。 |
CisUnidirectionalParams
定義於 fuchsia.bluetooth.le/iso.fidl
在已建立的 CIS 中,與單一方向相關的參數。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
transport_latency |
zx/Duration
|
傳輸延遲時間,範圍為 [234, 8388607] 微秒 系統一律會提供這個欄位。 |
2 |
burst_number |
uint8
|
往這個方向傳輸的峰值編號。 系統一律會提供這個欄位。 |
3 |
flush_timeout |
uint8
|
每個承載的清除逾時,以 ISO 間隔的倍數表示。 系統一律會提供這個欄位。 |
CodecDelayGetCodecLocalDelayRangeRequest
定義於 fuchsia.bluetooth.le/codec_delay.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
logical_transport_type |
fuchsia.bluetooth/LogicalTransportType
|
使用的邏輯傳輸類型。曲線僅支援 LE 傳輸機制 (CIS 或 BIS)。必填。 |
2 |
data_direction |
fuchsia.bluetooth/DataDirection
|
表示資料流的方向。必填。 |
3 |
codec_attributes |
fuchsia.bluetooth/CodecAttributes
|
無線傳輸的轉碼器。必填。 |
CodecDelay_GetCodecLocalDelayRange_Response
定義於 fuchsia.bluetooth.le/codec_delay.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
min_controller_delay |
zx/Duration
|
指定設定的控制器最短延遲時間,範圍為 [0, 4] 秒。 成功時效應。 |
2 |
max_controller_delay |
zx/Duration
|
指定設定的控制器最長延遲時間,範圍為 [0, 4] 秒。成功時效應。 |
ConnectionAcceptCisRequest 資源
定義於 fuchsia.bluetooth.le/peer.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
cig_id |
uint8
|
包含所要求 CIS 的 CIG ID。必填。 |
2 |
cis_id |
uint8
|
所要求 CIS 的 ID。必填。 |
3 |
connection_stream |
server_end<IsochronousStream>
|
建立串流後,伺服器會在這個管道叫用 IsochronousStream::OnCisCreateed()。必填。 如果此管道的用戶端關閉,則相對應 CIG/CIS 組合的要求將遭到拒絕,除非再次使用相同 CIG/CIS 參數發出其他 AcceptCis() 呼叫。 |
ConnectionOptions
定義於 fuchsia.bluetooth.le/connection_options.fidl
代表建立低能源連線的 FIDL 通訊協定針對個別連線設定的參數。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
bondable_mode |
bool
|
設為 true 時,連線會以可連結模式運作。也就是說,如果對等點也處於可綁定模式,配對就會形成連結,或在中斷連線時持續存在。如未顯示,連線會預設為可綁定模式。設為 false 時,連線會在非可綁定的模式下運作,這代表本機裝置只允許建立不會形成鍵的配對。 |
2 |
service_filter |
fuchsia.bluetooth/Uuid
|
如果有的話,在連線後執行的服務探索作業僅限於與此欄位相符的主要服務。否則,系統預設會探索所有可用服務。 |
完整
定義於 fuchsia.bluetooth.le/peripheral.fidl
序數 | 廣闊 | 類型 | 說明 |
---|
濾鏡
定義於 fuchsia.bluetooth.le/central.fidl
掃描時使用的篩選器參數。找到的對等點只有在符合所有目前篩選器參數的情況下,才會與篩選器相符。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
service_uuid |
fuchsia.bluetooth/Uuid
|
根據通告服務 UUID 篩選。 |
2 |
service_data_uuid |
fuchsia.bluetooth/Uuid
|
根據包含指定 UUID 的服務資料進行篩選。 |
3 |
manufacturer_id |
uint16
|
依據製造商資料中呈現的製造商 ID 進行篩選。如果設定了這個篩選器參數,廣告酬載必須包含製造商特定資料,且這些資料須附有他們提供的公司 ID,才能符合這個篩選條件。如需製造商 ID,請前往 https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers/ |
4 |
connectable |
bool
|
根據裝置是否可連線篩選。舉例來說,如果用戶端只想存取可連線的周邊裝置,可將這個值設為 true。同樣地,用戶端必須將此項設為 false,藉此掃描廣播者。 |
5 |
name |
fuchsia.bluetooth/DeviceName
|
根據廣告宣傳裝置名稱的一部分篩選結果。 但允許子字串比對。 |
6 |
max_path_loss |
int8
|
依據無線電波的路徑遺失篩選結果。符合此篩選條件的裝置必須滿足以下條件:
注意:這個欄位的計算依據是掃描程序期間,從廣告和掃描回應資料取得的 RSSI 和 TX 電力資訊。請「不要」與使用「路徑遺失報表」功能取得的有效連線資訊混淆。 |
IsochronousStreamOnEstablishedRequest
定義於 fuchsia.bluetooth.le/iso.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
result |
zx/Status
|
ZX_ERR_INTERNAL 的結果表示控制器收到要求,但無法建立串流。 |
2 |
established_params |
CisEstablishedParameters
|
如果串流成功建立,則一律提供此欄位。 |
IsochronousStreamSetupDataPathRequest
定義於 fuchsia.bluetooth.le/iso.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
data_direction |
fuchsia.bluetooth/DataDirection
|
資料流動的方式。必填。 |
2 |
codec_attributes |
fuchsia.bluetooth/CodecAttributes
|
指定無線使用的編碼格式。必填。 |
3 |
controller_delay |
zx/Duration
|
提供的延遲時間必須在控制器支援的範圍內,且不得超過 4 秒。必填。 |
IsochronousStream_Read_Response
定義於 fuchsia.bluetooth.le/iso.fidl
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
data |
vector<uint8>
|
資料架構本身。必填。 |
2 |
sequence_number |
uint16
|
與影格相關的序號。 必填。 |
3 |
status_flag |
IsoPacketStatusFlag
|
封包的狀態旗標 (由控制器回報)。必填。 |
4 |
timestamp |
zx/Duration
|
控制器回報的接收時間戳記。 選用。 |
舊版
定義於 fuchsia.bluetooth.le/peripheral.fidl
序數 | 廣闊 | 類型 | 說明 |
---|
對等節點
定義於 fuchsia.bluetooth.le/peer.fidl
代表可能在廣播公司、週邊裝置或中心角色中運作的藍牙低功耗對等點。對等點的角色取決於是透過中央或週邊裝置通訊協定取得。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
id |
fuchsia.bluetooth/PeerId
|
可在目前的系統上識別這個對等點。 系統一律會提供這個欄位。 |
2 |
connectable |
bool
|
這個對等點是否可連線。無法連線的對等點通常在 LE 廣播者角色中。 系統一律會提供這個欄位。 |
3 |
rssi |
int8
|
這個對等互連項目上次觀察到的訊號強度。這個欄位僅適用於廣播的對等點。如果同類應用程式從未放送廣告,RSSI 可能會過時。 注意:這個欄位「不應」與目前連線至系統的對等節點「連線 RSSI」混為一談。 |
4 |
advertising_data |
AdvertisingData
|
已淘汰 - 請改用「資料」 |
5 |
name |
fuchsia.bluetooth/DeviceName
|
對等點的名稱。這個名稱通常會在掃描過程中取得,而且可能會在連線之後的名稱探索程序中更新。 如果已知名稱,就會顯示這個欄位。 |
6 |
data |
ScanData
|
來自這個對等點廣播的回應資料及掃描回應資料。如果存在,這包含上次從對等點接收的廣告資料。 |
7 |
bonded |
bool
|
這個對等點是否已建立繫結。 系統一律會提供這個欄位。 |
8 |
last_updated |
zx/Time
|
系統單調時鐘的值,自這個對等點上次更新時測量的值 (例如因為接收到廣告而得)。 系統一律會提供這個欄位。 |
ScanData
定義於 fuchsia.bluetooth.le/peer.fidl
從通訊端廣播和掃描回應資料取得的資訊。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
tx_power |
int8
|
廣告和/或可掃描同類應用程式回報的無線電傳輸功率等級。 注意:這個欄位「不應」與目前透過「傳輸功率回報」功能取得的系統連線的對等點「連線 TX 功率等級」混淆。 |
2 |
appearance |
fuchsia.bluetooth/Appearance
|
裝置的外觀。 |
3 |
service_uuids |
vector<fuchsia.bluetooth/Uuid>
|
服務 UUID。 |
4 |
service_data |
vector<ServiceData>
|
服務資料項目。 |
5 |
manufacturer_data |
vector<ManufacturerData>
|
製造商專屬資料項目。 |
6 |
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。 |
7 |
timestamp |
zx/Time
|
收到這項掃描資料的相同時間。 |
ScanOptions
定義於 fuchsia.bluetooth.le/central.fidl
掃描時使用的參數。
序數 | 廣闊 | 類型 | 說明 |
---|---|---|---|
1 |
filters |
vector<Filter>
|
掃描時使用的篩選器清單。系統會回報符合這些篩選條件的周邊裝置。至少須指定 1 個篩選條件。儘管不建議這麼做,但如果用戶端需要回報所有周邊裝置,可以將篩選器指定為空白。 |
聯合國
AdvertisingProcedure 彈性
定義於 fuchsia.bluetooth.le/peripheral.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
legacy |
Legacy
|
使用舊版廣告封包通告。所有裝置應該都能找出這類封包。 |
2 |
extended |
Extended
|
使用擴充廣告封包通告。擴充廣告封包允許宣傳的資料量比舊版廣告封包 (31 個位元組比 PDU 251 位元組) 更大。擴充廣告封包在廣告鏈中最多可支援 1,650 個位元組,但只有使用藍牙 5.0 以上版本的新裝置才能偵測到這些封包。 並非所有產品都支援擴充廣告封包。PeripheralError::NOT_SUPPORTED 會在要求時傳回,且不支援。 |
CodecDelay_GetCodecLocalDelayRange_Result 嚴格
定義於 fuchsia.bluetooth.le/codec_delay.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
CodecDelay_GetCodecLocalDelayRange_Response
|
|
2 |
err |
zx/Status
|
IsochronousStream_Read_Result 嚴格
定義於 fuchsia.bluetooth.le/iso.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
IsochronousStream_Read_Response
|
|
3 |
framework_err |
internal
|
IsochronousStream_SetupDataPath_Result 嚴格
定義於 fuchsia.bluetooth.le/iso.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
IsochronousStream_SetupDataPath_Response
|
|
2 |
err |
zx/Status
|
|
3 |
framework_err |
internal
|
Peripheral_Advertising_Result 嚴格
定義於 fuchsia.bluetooth.le/peripheral.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Peripheral_Advertise_Response
|
|
2 |
err |
PeripheralError
|
Peripheral_StartAdvertising_Result 嚴格
定義於 fuchsia.bluetooth.le/peripheral.fidl
序數 | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Peripheral_StartAdvertising_Response
|
|
2 |
err |
PeripheralError
|
業者
名稱 | 物超所值 | 類型 | 說明 |
---|---|---|---|
MAX_MANUFACTURER_DATA_LENGTH |
252
|
uint8 |
|
MAX_SERVICE_DATA_LENGTH |
252
|
uint8 |
|
MAX_URI_LENGTH |
278
|
uint16 |