通訊協定
CharacteristicNotifier
定義於 fuchsia.bluetooth.gatt2/client.fidl
收聽特徵通知與指標
OnNotification
在特徵值通知或指標出現以下情形時呼叫 次要 IP 位址。
- 要求
value
是已更新的特徵值。
- 回應:空白回應應該會立即以 確認收到的通知(用於流量控制)。
要求
名稱 | 類型 |
---|---|
value |
ReadValue
|
回應
<空白>
用戶端
定義於 fuchsia.bluetooth.gatt2/client.fidl
ConnectToService
使用指定 ID 連結 RemoteService。只有 1 個連線 每個服務都可以
「service
」發生錯誤,系統會提供
原因。
- 如果
handle
無效,則會傳回ZX_ERR_INVALID_ARGS
。 - 如果找不到服務,則傳回
ZX_ERR_NOT_FOUND
。 - 如果移除服務,則傳回
ZX_ERR_CONNECTION_RESET
。 - 如果對等點中斷連線,會傳回
ZX_ERR_NOT_CONNECTED
錯誤。 - 如果服務已連線,則傳回
ZX_ERR_ALREADY_EXISTS
。
要求
名稱 | 類型 |
---|---|
handle |
ServiceHandle
|
service |
server_end<RemoteService>
|
WatchServices
列舉這個用戶端代表的對等項目找到的服務。
只要在 uuids
中指定 UUID 清單,即可篩選結果。這個
方法遵循懸浮 get 模式在初始要求中,
並傳回完整的快照使用同一組相同的後續通話
的uuids
只會在一或多項服務產生回應時
自從上次回報項目之後新增、修改或移除
近期通話。新值為 uuids
的呼叫會重設篩選器,
就會收到完整快照
帳號代碼可在不同服務中重複使用,因此可在兩者中擇一使用
《updated
》和《removed
》。因此,建議您
已移除服務
如要進一步與服務互動,用戶端必須取得 RemoteService 透過呼叫 ConnectToService() 解決各種通訊協定和軟體需求
- 要求
uuids
使用 UUID 許可清單。如果留空,則所有服務都會 。
- 回應
updated
在此日期後新增或修改的服務 上次呼叫 WatchServices()。傳回的 ServiceInfo 資料表則會 只包含各項服務的基本資訊characteristics
和includes
欄位將為空值。如果服務 。 出現於removed
,而不是updated
。 如果因新呼叫含有新的uuids
值而結束,updated
將空白 - 回應
removed
是已移除服務的帳號代碼 。
要求
名稱 | 類型 |
---|---|
uuids |
vector<fuchsia.bluetooth/Uuid>
|
回應
名稱 | 類型 |
---|---|
updated |
vector<ServiceInfo>[65535]
|
removed |
vector<Handle>[65535]
|
LocalService
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
提供本機 GATT 服務的介面。關閉此通訊協定的 server_end 會導致 GATT 服務即將從本機 GATT 資料庫中移除。同樣地,關閉 client_end 的通訊協定,表示藍牙堆疊已從其 GATT 資料庫中移除這項服務。
CharacteristicConfiguration
這樣就能針對 都屬於特定同類應用程式當對等互連 GATT 用戶端變更設定時,系統就會呼叫此方法。
藍牙堆疊會在重新連線後保留每個對等設定的狀態。 因此,當對等方透過 新連線對等互連設定的初始保留狀態。不過,客戶 ,不應仰賴藍牙堆疊無限期持續保留這個狀態。
- 要求
peer_id
與此特定 CCC 相關聯的 GATT 用戶端 PeerId。 - 要求
handle
與notify
及indicate
參數。 - 如果用戶端已啟用通知功能,則要求
notify
是 True,否則要求為 false。 - 如果用戶端已啟用指標,則要求
indicate
是 True,否則要求為 false。
- 回應空白不會傳回任何確認特徵設定。
要求
名稱 | 類型 |
---|---|
peer_id |
fuchsia.bluetooth/PeerId
|
handle |
Handle
|
notify |
bool
|
indicate |
bool
|
回應
<空白>
OnIndicateValue
這個事件是用來傳送指標給同業。應使用指示,而非 當服務「確實」需要確認更新時,才會發出通知。
指示不應傳送給未啟用特定指標的同類應用程式 特性除外。如果已傳送,系統不會套用這些特性。藍牙堆疊會 會在服務的生命週期內追蹤這項設定。
在地生活服務必須持續追蹤ValueChangedCredit
提供的可用抵免額
方法並傳送最多許多 OnNotifyValue
和 OnIndicateValue
事件。如果顯示
事件是否送出超過可用的抵免額,或者參數無效,通訊協定就會
已打烊。
- 要求
update
與變更的特性相關聯的參數。 - 要求
confirmation
在所有要更新的同業確認指示後,confirmation
已發出 ZX_EVENTPAIR_SIGNALLED 的訊號。如果發生以下情況,「confirmation
」就會暫停營業 代表對等點失敗 (例如對等點尚未設定指標), 已連線,或未在 ATT 交易逾時 30 秒內確認 (藍牙) 5.3 卷3 Part F 3.3.3)。如要追蹤個別同業的跡象確認情形, 導入功能可以在update.peer_ids
中傳送具有單一 ID 的事件。
回應
名稱 | 類型 |
---|---|
update |
ValueChangedParameters
|
confirmation |
handle<eventpair>
|
OnNotifyValue
此事件是用來傳送通知給同事。應使用通知,而非 表示服務「不需」確認更新。
不應傳送通知給尚未啟用通知的同類應用程式 特定特性—即使它們已傳送,也不會傳播。藍牙 堆疊會在服務的生命週期內追蹤這項設定。
在地生活服務必須持續追蹤ValueChangedCredit
提供的可用抵免額
方法並傳送最多許多 OnNotifyValue
和 OnIndicateValue
事件。如果顯示
事件是否送出超過可用的抵免額,或者參數無效,通訊協定就會
已打烊。
回應
名稱 | 類型 |
---|---|
payload |
ValueChangedParameters
|
OnSuppressDiscovery
活動結束後,新的同業將無法再找到這項服務,但同事 已發現這項服務仍可存取。這個 ID 應為每封一次 服務生命週期;如果多次傳送,就會關閉通訊協定,並中斷 GATT 用戶端的連線。
回應
<空白>
PeerUpdate
用於提供同業專屬的 GATT 資訊。系統會呼叫 PeerUpdate,除非 先前的叫用收到回應因此,實作可以直接忽略 。
在將對等點至其他通訊端的其他互動前,系統會先進行 PeerUpdate LocalService (Write/ReadValue、CharacteristicConfiguration) 盡量提供, 所有先前的 PeerUpdates 都經過確認
目前未傳送。如要請求支援,請前往 https://fxbug.dev/42178509 發表留言
- 要求
peer_id
與更新有關的 PeerId。一律顯示在所有人的主畫面上。 - 要求
mtu
通知/對應此內容的位元組數量上限 。超過此上限的任何位元組都會遭到截斷,且不顯示任何通知訊息。大多數的客戶不需要擔心 除非是使用通知/表示高處理量的通知/指示。 選用。
- 回應空白的回應,表示已收到更新。
要求
名稱 | 類型 |
---|---|
payload |
LocalServicePeerUpdateRequest
|
回應
<空白>
ReadValue
對等點要求讀取特徵或描述元的值時呼叫。是 保證對等節點符合與這項屬性相關聯的權限。
- 要求
peer_id
提出讀取要求的 GATT 用戶端 PeerId。 - 要求
handle
所要求描述元/特性的控制代碼。 - 要求
offset
開始讀取要求值的位移。
- 回應
value
特徵的值。
- 如要瞭解可能出現的錯誤,請參閱
gatt2.Error
說明文件。
要求
名稱 | 類型 |
---|---|
peer_id |
fuchsia.bluetooth/PeerId
|
handle |
Handle
|
offset |
int32
|
回應
名稱 | 類型 |
---|---|
payload |
LocalService_ReadValue_Result
|
ValueChangedCredit
新增傳送指標/通知的額度。實作項目一開始會定義為
呼叫這個方法前,請先獲得 INITIAL_VALUE_CHANGED_CREDITS 抵免額。實作項目必須
追蹤他們擁有的抵免額實作者只能傳送一個 OnNotifyValue
或 OnIndicateValue 事件請注意,系統只會呼叫 ValueChangedCredit
。
要求
名稱 | 類型 |
---|---|
additional_credit |
uint8
|
WriteValue
在對等點發出要求寫入特性或描述元值時呼叫。這項服務 可確保對等點符合與這項屬性相關聯的權限。
- 要求
peer_id
提出寫入要求的 GATT 用戶端 PeerId。一律顯示在所有人的主畫面上。 - 要求
handle
所要求描述元/特性的控制代碼。一律顯示在所有人的主畫面上。 - 要求
offset
開始寫入值的位移。如果偏移值為 0,則無 應以新的值覆寫現有值。否則, offset:(offset + len(value)) 應變更為value
。一律顯示在所有人的主畫面上。 - 要求
value
描述元/特性的新值。一律存在,但可能會 做為空字串
- 值更新之後,實作必須傳送空白的回應 視為確認。
- 如要瞭解可能出現的錯誤,請參閱
gatt2.Error
說明文件。
要求
名稱 | 類型 |
---|---|
payload |
LocalServiceWriteValueRequest
|
回應
名稱 | 類型 |
---|---|
payload |
LocalService_WriteValue_Result
|
RemoteService
定義於 fuchsia.bluetooth.gatt2/client.fidl
DiscoverCharacteristics
傳回屬於 這項服務。
要求
<空白>
回應
名稱 | 類型 |
---|---|
characteristics |
vector<Characteristic>[32767]
|
ReadByType
這個外掛程式能讀取具有指定的 uuid
的特性和描述元。
如要在探索完成前讀取值,這個方法就很實用。 進而減少延遲時間
- 要求
uuid
要讀取特性/描述元的 UUID。
- 回應
results
讀取的結果。如果沒有,則可留空 系統會讀取相符值如果讀取值後 權限錯誤,會包含控制代碼和錯誤。
- 如果
uuid
參照內部,則傳回INVALID_PARAMETERS
預留的描述元類型 (例如 Client Characteristic) 設定描述元)。 - 如果讀取的結果超出上限,則傳回
TOO_MANY_RESULTS
FIDL 回應。建議閱讀特性/描述 逐一討論這些變化 - 如果伺服器傳回
FAILURE
以外的錯誤, 一筆結果。
要求
名稱 | 類型 |
---|---|
uuid |
fuchsia.bluetooth/Uuid
|
回應
名稱 | 類型 |
---|---|
payload |
RemoteService_ReadByType_Result
|
ReadCharacteristic
使用指定的 handle
讀取特徵值。
- 要求
handle
要讀取的特性控制代碼。 - 要求
options
適用於讀取作業的選項。
- 回應
value
特徵的值。
- 如果
handle
無效,就會傳回INVALID_HANDLE
。 - 如果
options
無效,就會傳回INVALID_PARAMETERS
。 - 錯誤會傳回
READ_NOT_PERMITTED
或INSUFFICIENT_*
。 拒絕讀取要求。 - 如果伺服器傳回錯誤,就會傳回
FAILURE
。
要求
名稱 | 類型 |
---|---|
handle |
Handle
|
options |
ReadOptions
|
回應
名稱 | 類型 |
---|---|
payload |
RemoteService_ReadCharacteristic_Result
|
ReadDescriptor
使用 handle
和
傳回的結果
- 要求
handle
要讀取的描述元控制代碼。 - 要求
options
適用於讀取作業的選項。
- 回應
value
描述元的值。
- 如果
handle
無效,就會傳回INVALID_HANDLE
。 - 如果
options
無效,就會傳回INVALID_PARAMETERS
。 - 錯誤會傳回
READ_NOT_PERMITTED
或INSUFFICIENT_*
。 拒絕讀取要求。 - 如果伺服器傳回錯誤,就會傳回
FAILURE
。
要求
名稱 | 類型 |
---|---|
handle |
Handle
|
options |
ReadOptions
|
回應
名稱 | 類型 |
---|---|
payload |
RemoteService_ReadDescriptor_Result
|
RegisterCharacteristicNotifier
訂閱通知與模型會向
指定的 handle
。
系統會根據 特徵屬性如果可行的話,系統會優先採用這些指示 支援。如果特性沒有 「通知」或「表示」資源。
系統會發出寫入要求,藉此設定 通知/指出內含「客戶特性」的通知/標示 設定描述元。如果 寫入描述元
成功之後,可用於在以下情況下使用 notifier
通訊協定接收通知
這位同事會傳送通知或指標給你目前表示
由系統自動確認通訊協定遭到捨棄後,訂閱項目
如果沒有其他本機用戶端收到通知,則可能結束。
- 要求
handle
特性控制代碼。 - 要求
notifier
,這是用於通知的通訊協定。
- 如果註冊,系統會立即傳送空白回應 成功。
- 如果特性不支援,則會傳回
FAILURE
通知或指標 - 如果
handle
無效,則會傳回INVALID_HANDLE
。 - 錯誤會傳回
WRITE_NOT_PERMITTED
或INSUFFICIENT_*
描述元寫入錯誤
要求
名稱 | 類型 |
---|---|
handle |
Handle
|
notifier |
CharacteristicNotifier
|
回應
名稱 | 類型 |
---|---|
payload |
RemoteService_RegisterCharacteristicNotifier_Result
|
WriteCharacteristic
使用提供的 handle
,透過 handle
將 value
寫入特徵
options
。
我們不建議在寫入作業已經完成時傳送額外的寫入作業 (伺服器可能會以任意順序接收同時寫入)。
- 要求
handle
要寫入的特性。 - 要求
value
要寫入的值。 - 要求
options
適用於寫入的選項。
- 如果有成功回應,則會傳送空白回應
才會從伺服器接收 (或者如果
options.with_response
為 false)
- 如果
handle
無效,就會傳回INVALID_HANDLE
。 - 如果
options
無效,就會傳回INVALID_PARAMETERS
。 - 如果伺服器發生錯誤,會傳回
WRITE_NOT_PERMITTED
或INSUFFICIENT_*
會以理由拒絕寫入要求。 - 如果伺服器傳回錯誤,就會傳回
FAILURE
。
要求
名稱 | 類型 |
---|---|
handle |
Handle
|
value |
vector<uint8>[512]
|
options |
WriteOptions
|
回應
名稱 | 類型 |
---|---|
payload |
RemoteService_WriteCharacteristic_Result
|
WriteDescriptor
使用 handle
將 value
寫入特徵描述元。
我們不建議在寫入作業已經完成時傳送額外的寫入作業
(伺服器可能會以任意順序接收同時寫入)。
- 要求
handle
要寫入的描述元處理常式。 - 要求
value
要寫入的值。 - 要求
options
適用於寫入的選項。
- 如果有成功回應,則會傳送空白回應
才會從伺服器接收 (或者如果
options.with_response
為 false)
- 如果
handle
無效或參照INVALID_HANDLE
內部保留的描述元類型 (例如 特性設定描述元)。 - 如果
options
無效,就會傳回INVALID_PARAMETERS
。 - 錯誤會傳回
WRITE_NOT_PERMITTED
或INSUFFICIENT_*
。 會透過拒絕理由拒絕寫入。 - 如果伺服器傳回錯誤,就會傳回
FAILURE
。
要求
名稱 | 類型 |
---|---|
handle |
Handle
|
value |
vector<uint8>[512]
|
options |
WriteOptions
|
回應
名稱 | 類型 |
---|---|
payload |
RemoteService_WriteDescriptor_Result
|
伺服器
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
PublishService
發布指定的 service
,供所有遠端同業存取。出版後
該服務的定義為可傳送 INITIAL_VALUE_CHANGED_CREDITS 抵免額
指標/通知
呼叫端必須針對所列特徵和描述元指派不同的控點
info
。這些 ID 會用於傳送至 service
的要求。
- 要求
info
用於定義 GATT 服務的結構。其中包含特性和 以及服務控制代碼,這些描述項目 發布至這個伺服器的所有服務均不得重複。 - 要求
service
根據記錄的行為提供服務實作 來自LocalService
。
- 回應空白代表服務已成功發布。
- 如要瞭解可能的失敗模式,請參閱
gatt2.PublishServiceError
。
要求
名稱 | 類型 |
---|---|
info |
ServiceInfo
|
service |
LocalService
|
回應
名稱 | 類型 |
---|---|
payload |
Server_PublishService_Result
|
結構
控點
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
uint64
|
無預設 |
LocalService_ReadValue_Response
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
vector<uint8>[512]
|
無預設 |
LocalService_WriteValue_Response
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
<空白>
RemoteService_ReadByType_Response
定義於 fuchsia.bluetooth.gatt2/client.fidl
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
results |
vector<ReadByTypeResult>[65535]
|
無預設 |
RemoteService_ReadCharacteristic_Response
定義於 fuchsia.bluetooth.gatt2/client.fidl
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
ReadValue
|
無預設 |
RemoteService_ReadDescriptor_Response
定義於 fuchsia.bluetooth.gatt2/client.fidl
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
ReadValue
|
無預設 |
RemoteService_RegisterCharacteristicNotifier_Response
定義於 fuchsia.bluetooth.gatt2/client.fidl
<空白>
RemoteService_WriteCharacteristic_Response
定義於 fuchsia.bluetooth.gatt2/client.fidl
<空白>
RemoteService_WriteDescriptor_Response
定義於 fuchsia.bluetooth.gatt2/client.fidl
<空白>
Server_PublishService_Response
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
<空白>
ServiceHandle
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
value |
uint64
|
無預設 |
ShortReadOptions
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表閱讀簡短特性或描述元的選項 值。短值指的是單一訊息中的值 至少為 22 個位元組這是空白的預留位置 沒有選項。
<空白>
ENUMS
錯誤 strict
類型:uint32
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
Bluetoothtooth.gatt2.* 方法傳回的錯誤。
這些值會與藍牙 5.2V 中的值對應。3 Part G 表 3.4, 及補充藍牙核心規格 v9 Part B 表 1.1, 但這僅供參考用戶端不應依賴這些 保持不變的值系統會處理規格中省略的值 而不會傳回給用戶端。
只有 LocalService 方法能傳回特定的錯誤。如有需要, 留言。
名稱 | 值 | 說明 |
---|---|---|
INVALID_HANDLE |
1 |
帳號代碼指定的屬性無效。可能已移除。 LocalService 方法可傳回此方法。 |
READ_NOT_PERMITTED |
2 |
無法讀取這個屬性。 |
WRITE_NOT_PERMITTED |
3 |
無法寫入此屬性。 |
INVALID_PDU |
4 |
表示伺服器收到的回應無效。 |
INSUFFICIENT_AUTHENTICATION |
5 |
此屬性需要驗證,但用戶端未經過驗證。 |
INVALID_OFFSET |
7 |
表示讀取或寫入要求中使用的位移超過 值的上下限。 LocalService 方法可傳回此方法。 |
INSUFFICIENT_AUTHORIZATION |
8 |
此屬性需要授權,但用戶端未獲授權。 |
INSUFFICIENT_ENCRYPTION_KEY_SIZE |
12 |
這項屬性需要由較大的加密金鑰加密的連線。 |
INVALID_ATTRIBUTE_VALUE_LENGTH |
13 |
表示寫入要求中的值會超過最大值 預先定義的字元集。 LocalService 方法可傳回此方法。 |
UNLIKELY_ERROR |
14 |
發生一般錯誤,無法歸類為 特定錯誤。 LocalService 方法可傳回此方法。 |
INSUFFICIENT_ENCRYPTION |
15 |
此屬性需要加密,但連線未加密。 |
INSUFFICIENT_RESOURCES |
17 |
伺服器的資源不足,無法完成工作。 LocalService 方法可傳回此方法。 |
VALUE_NOT_ALLOWED |
19 |
不允許這個值。 LocalService 方法可傳回此方法。 |
APPLICATION_ERROR_80 |
128 |
應用程式錯誤。如何在應用程式中指定這些用途 第二,自訂角色只能 套用至專案或機構 這些內容都可以由 LocalService 方法傳回。 |
APPLICATION_ERROR_81 |
129 |
|
APPLICATION_ERROR_82 |
130 |
|
APPLICATION_ERROR_83 |
131 |
|
APPLICATION_ERROR_84 |
132 |
|
APPLICATION_ERROR_85 |
133 |
|
APPLICATION_ERROR_86 |
134 |
|
APPLICATION_ERROR_87 |
135 |
|
APPLICATION_ERROR_88 |
136 |
|
APPLICATION_ERROR_89 |
137 |
|
APPLICATION_ERROR_8A |
138 |
|
APPLICATION_ERROR_8B |
139 |
|
APPLICATION_ERROR_8C |
140 |
|
APPLICATION_ERROR_8D |
141 |
|
APPLICATION_ERROR_8E |
142 |
|
APPLICATION_ERROR_8F |
143 |
|
APPLICATION_ERROR_90 |
144 |
|
APPLICATION_ERROR_91 |
145 |
|
APPLICATION_ERROR_92 |
146 |
|
APPLICATION_ERROR_93 |
147 |
|
APPLICATION_ERROR_94 |
148 |
|
APPLICATION_ERROR_95 |
149 |
|
APPLICATION_ERROR_96 |
150 |
|
APPLICATION_ERROR_97 |
151 |
|
APPLICATION_ERROR_98 |
152 |
|
APPLICATION_ERROR_99 |
153 |
|
APPLICATION_ERROR_9A |
154 |
|
APPLICATION_ERROR_9B |
155 |
|
APPLICATION_ERROR_9C |
156 |
|
APPLICATION_ERROR_9D |
157 |
|
APPLICATION_ERROR_9E |
158 |
|
APPLICATION_ERROR_9F |
159 |
|
WRITE_REQUEST_REJECTED |
252 |
商家檔案或服務層級的寫入要求遭拒。 |
CCC_DESCRIPTOR_IMPROPERLY_CONFIGURED |
253 |
用戶端特性設定描述元不正確 專案。 |
PROCEDURE_ALREADY_IN_PROGRESS |
254 |
設定檔或服務程序已在進行中。 |
OUT_OF_RANGE |
255 |
設定檔或服務層級的值超出範圍。 |
INVALID_PARAMETERS |
257 |
一或多個 FIDL 呼叫參數無效。查看參數 說明文件。 |
TOO_MANY_RESULTS |
258 |
表示讀取的結果超過 FIDL 回應的處理上限。 建議個別閱讀屬性。 |
PublishServiceError 彈性
類型:uint32
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
服務發布期間可能發生的錯誤。
名稱 | 值 | 說明 |
---|---|---|
INVALID_SERVICE_HANDLE |
1 |
服務控制代碼無效,或已在伺服器發布服務中使用。 |
INVALID_UUID |
2 |
提供的服務 UUID 無效。 |
INVALID_CHARACTERISTICS |
3 |
「 |
UNLIKELY_ERROR |
4 |
發生一般錯誤,因此無法歸類為更明確錯誤。 |
ServiceKind 嚴格
類型:uint32
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
藍牙核心規格 v5.3 V 中列出的 GATT 服務種類 (「類型」)。1 第 A 部分 6.5.1:
名稱 | 值 | 說明 |
---|---|---|
主要 |
1 |
「為裝置提供功能而可獨立使用的服務」(Ibid) |
次要 |
2 |
一項「服務 [...] 當中, 並包含在至少一項主要服務中(Ibid) |
WriteMode 彈性
類型:uint32
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表寫入特性與 複製到伺服器
名稱 | 值 | 說明 |
---|---|---|
預設 |
1 |
在 |
RELIABLE |
2 |
在 |
WITHOUT_RESPONSE |
3 |
如果處於 |
資料表
AttributePermissions
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
指定特定屬性值的存取權限。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
read |
SecurityRequirements
|
指定屬性是否具備讀取權限。如果沒有 系統無法讀取屬性值。否則,只能讀取 滿足「安全性需求條件」表格中指定的權限。 |
2 |
write |
SecurityRequirements
|
指定屬性是否具備寫入權限。如果沒有 因此無法寫入屬性值。否則,只能寫入 是否滿足「安全性需求」表格中列出的權限。 |
3 |
update |
SecurityRequirements
|
指定用戶端訂閱的安全性需求 向其收集特定特徵的通知或指標某個特性 通知或指示支援時,使用的是 NOTIFY 和 INDICATE 特性屬性。如果地方特色為 這些屬性,就必須使用這個欄位。如果沒有,則這個欄位 。 系統會忽略描述元的欄位。 |
特色
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表本機或遠端 GATT 特性。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
handle |
Handle
|
可在服務中識別這個特性。 如果是當地特徵,指定的帳號代碼不得重複 這項服務中的所有特性和描述元處理常式。 一律顯示在所有人的主畫面上。如果是當地特色,就必須提供這個值。 |
2 |
type |
fuchsia.bluetooth/Uuid
|
識別這個特徵類型的 UUID。 一律顯示在所有人的主畫面上。使用當地特色時必須提供。 |
3 |
properties |
CharacteristicPropertyBits
|
特性屬性位元欄位。 一律顯示在所有人的主畫面上。使用當地特色時必須提供。 |
4 |
permissions |
AttributePermissions
|
這個特徵的屬性權限。遠距工作適用 特性則在未授予使用者權限的情況下,系統才會提供這個值 透過讀取和寫入要求發現錯誤 如果是當地特色,就必須提供這個值。 |
5 |
descriptors |
vector<Descriptor>[65532]
|
此特性的描述元。 只會在非空白的情況下提供。如果是當地特色,則為選填。 |
描述元
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表本機或遠端 GATT 特性描述元。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
handle |
Handle
|
可明確識別服務中的這個描述元。 本機描述元指定的帳號代碼不得重複 。 一律顯示在所有人的主畫面上。如為本機描述元,這個值為必要值。 |
2 |
type |
fuchsia.bluetooth/Uuid
|
識別這個描述元類型的 UUID。 一律顯示在所有人的主畫面上。如為本機描述元,這個值為必要值。 |
3 |
permissions |
AttributePermissions
|
這個描述元的屬性權限。遠距工作適用 描述元,則在有權限要求的情況下,系統才會顯示這個值 透過讀取和寫入要求發現。 如為本機描述元,這個值為必要值。 |
LocalServicePeerUpdateRequest
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
peer_id |
fuchsia.bluetooth/PeerId
|
|
2 |
mtu |
uint16
|
LocalServiceWriteValueRequest
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
peer_id |
fuchsia.bluetooth/PeerId
|
|
2 |
handle |
Handle
|
|
3 |
offset |
uint32
|
|
4 |
value |
vector<uint8>[512]
|
LongReadOptions
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表讀取較長特徵或描述元的支援選項 值。長值可能無法容納一個長值 訊息 (大於 22 位元組)。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
offset |
uint16
|
開始讀取的位元組。必須小於值的長度。 選用。 預設:0 |
2 |
max_bytes |
uint16
|
要讀取的位元組數上限,
選用。
預設值: |
ReadByTypeResult
定義於 fuchsia.bluetooth.gatt2/client.fidl
RemoteService.ReadByType
傳回的結果。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
handle |
Handle
|
特性或描述元控點。 |
2 |
value |
ReadValue
|
成功讀取的特徵或描述元值。 |
3 |
error |
Error
|
無法讀取該值的原因 (如果讀取後發生錯誤)。 |
ReadValue
定義於 fuchsia.bluetooth.gatt2/client.fidl
從伺服器接收到的可能遭到截斷值周圍的包裝函式。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
handle |
Handle
|
特性或描述元控點。一律顯示在所有人的主畫面上。 |
2 |
value |
vector<uint8>[512]
|
特徵或描述元的值。一律顯示在所有人的主畫面上。 |
3 |
maybe_truncated |
bool
|
如果 |
SecurityRequirements
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表能產生的加密、驗證和授權權限 指派給特定權限
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
encryption_required |
bool
|
如為 true,實體連結必須經過加密才能存取。不存在或 false,這個屬性允許未加密的存取權。 |
2 |
authentication_required |
bool
|
如果設為 true,實體連結必須通過驗證才能存取這個屬性。不存在或 false,這個屬性允許未經驗證的存取權。 |
3 |
authorization_required |
bool
|
如果值為 true,用戶端必須獲得授權才能存取這項屬性。不存在或 false,這個屬性允許未經授權的存取。 |
ServiceInfo
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表本機或遠端 GATT 服務。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
handle |
ServiceHandle
|
這項 GATT 服務的專屬 ID。
如果這個指標代表遠端服務,請一律顯示,在此情況下,每個位置的
傳回此 ServiceInfo 的用戶端。
以在地生活服務來說,此為必填屬性,在發布的所有服務中,均不得重複
單一伺服器執行個體可在其他 |
2 |
kind |
ServiceKind
|
指出這是主要或次要服務。 一律顯示在遠端服務中。如為本地服務,則為選用屬性 預設:ServiceKind::PRIMARY |
3 |
type |
fuchsia.bluetooth/Uuid
|
識別這項服務類型的 UUID。 可能有多項服務使用相同的 UUID。 一律顯示在遠端服務中。在地生活服務的必填屬性。 |
4 |
characteristics |
vector<Characteristic>[32767]
|
這項服務的特性。 在地生活服務的必填屬性。遠端服務一律不要顯示。 |
5 |
includes |
vector<ServiceHandle>[65535]
|
這項服務所含其他服務的處理方式。 如為本機服務,則為選用元素。不允許遠端服務顯示。 TODO(https://fxbug.dev/42147529):本機服務目前不支援此操作。 |
ValueChangedParameters
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
用來指出特徵值從 LocalService 變更為對等點的參數。
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
handle |
Handle
|
所發出信號的特徵值處理常式。 必要欄位。 |
2 |
value |
vector<uint8>[512]
|
特徵的更新值。
使用指示/通知取得高處理量的客戶請注意 (不建議):
雖然靜態限制為 |
3 |
peer_ids |
vector<fuchsia.bluetooth/PeerId>
|
只信號一部分的同類應用程式。
如果沒有出現或空白,表示所有可更新的同類群組都會發出信號。
如果納入此選項,系統只會傳送這份清單中的同類應用程式組合信號。
系統只會向您的同業發送信號,前提是他們須已設定每 |
WriteOptions
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表支援的寫入特徵/描述元值的選項 至伺服器
Ordinal | 欄位 | 類型 | 說明 |
---|---|---|---|
1 |
write_mode |
WriteMode
|
寫入作業的模式。就描述元來說 支援 WriteMode.DEFAULT 選用。 預設值:WriteMode.DEFAULT |
2 |
offset |
uint16
|
要求從指定的位元組開始寫入。
如果 |
聯合國
LocalService_ReadValue_Result 的 嚴格
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
LocalService_ReadValue_Response
|
|
2 |
err |
Error
|
LocalService_WriteValue_Result 嚴格
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
LocalService_WriteValue_Response
|
|
2 |
err |
Error
|
ReadOptions 彈性
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
代表讀取特徵或描述元的支援選項 值。
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
short_read |
ShortReadOptions
|
執行可能會截斷 (如 if_truncated 的結果中可能出現) GATT 服務中的大多數讀取作業都是短讀取 (<= 22 個位元組)。 |
2 |
long_read |
LongReadOptions
|
如果有出現,請使用指定的選項執行長時間讀取。 選用。 預設:系統會執行簡短的讀取作業。 |
RemoteService_ReadByType_Result 嚴格
定義於 fuchsia.bluetooth.gatt2/client.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
RemoteService_ReadByType_Response
|
|
2 |
err |
Error
|
RemoteService_ReadCharacteristic_Result 嚴格
定義於 fuchsia.bluetooth.gatt2/client.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
RemoteService_ReadCharacteristic_Response
|
|
2 |
err |
Error
|
RemoteService_ReadDescriptor_Result 嚴格
定義於 fuchsia.bluetooth.gatt2/client.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
RemoteService_ReadDescriptor_Response
|
|
2 |
err |
Error
|
RemoteService_RegisterCharacteristicNotifier_Result 嚴格
定義於 fuchsia.bluetooth.gatt2/client.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
RemoteService_RegisterCharacteristicNotifier_Response
|
|
2 |
err |
Error
|
RemoteService_WriteCharacteristic_Result 嚴格
定義於 fuchsia.bluetooth.gatt2/client.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
RemoteService_WriteCharacteristic_Response
|
|
2 |
err |
Error
|
RemoteService_WriteDescriptor_Result 嚴格
定義於 fuchsia.bluetooth.gatt2/client.fidl
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
RemoteService_WriteDescriptor_Response
|
|
2 |
err |
Error
|
Server_PublishService_Result 嚴格
在 fuchsia.bluetooth.gatt2/server.fidl 中定義
Ordinal | Variant | 類型 | 說明 |
---|---|---|---|
1 |
response |
Server_PublishService_Response
|
|
2 |
err |
PublishServiceError
|
商業智慧
CharacteristicPropertyBits 嚴格
類型:uint16
在 fuchsia.bluetooth.gatt2/types.fidl 中定義
特徵屬性 Bitfield 的可能值。用來指定 允許特定特徵使用的 GATT 程序。
名稱 | 值 | 說明 |
---|---|---|
廣播 |
1 | |
閱讀 |
2 | |
WRITE_WITHOUT_RESPONSE |
4 | |
寫入 |
8 | |
通知 |
16 | |
識別 |
32 | |
AUTHENTICATED_SIGNED_WRITES |
64 | |
RELIABLE_WRITE |
256 | |
WRITABLE_AUXILIARIES |
512 |
觀測站
名稱 | 值 | 類型 | 說明 |
---|---|---|---|
INITIAL_VALUE_CHANGED_CREDITS |
10
|
uint32 |
指定在特定情況下,可用來傳送指示/通知的抵免額 首次發布 LocalService。 |
MAX_ATTRIBUTE_COUNT |
65535
|
uint16 |
|
MAX_CHARACTERISTIC_COUNT |
32767
|
uint16 |
|
MAX_DESCRIPTOR_COUNT |
65532
|
uint16 |
|
MAX_SERVICE_COUNT |
MAX_ATTRIBUTE_COUNT
|
uint16 |
|
MAX_VALUE_LENGTH |
512
|
uint16 |