Fuchsia.bluetooth.gatt2

已添加:NEXT

协议

CharacteristicNotifier

fuchsia.bluetooth.gatt2/client.fidl 中定义

收听特色通知以及指示。

OnNotification

在以下情况下调用:特征值通知或指示: 。

  • value 请求更新后的特征的值。
  • 响应 空响应应立即作为 确认已收到通知(用于流控制)。

请求

名称类型
value ReadValue

响应

<空>

客户端

fuchsia.bluetooth.gatt2/client.fidl 中定义

ConnectToService

将 RemoteService 与给定的标识符连接起来。仅 1 个连接 所有项目允许。

如果出现错误,service 将被关闭,并附有一份介绍性说明 原因。

  • error 如果 handle 无效,则返回 ZX_ERR_INVALID_ARGS
  • error 如果未找到该服务,则返回 ZX_ERR_NOT_FOUND
  • error 若移除服务,则返回 ZX_ERR_CONNECTION_RESET
  • error 如果对等体断开连接,则返回 ZX_ERR_NOT_CONNECTED
  • 错误:如果服务已连接,则返回 ZX_ERR_ALREADY_EXISTS

请求

名称类型
handle ServiceHandle
service server_end<RemoteService>

WatchServices

枚举在此客户端代表的对等设备上找到的服务。

您可以通过在 uuids 中指定 UUID 列表来过滤结果。这个 方法遵循挂起的 get 模式。在初始请求中, 完整快照。使用相同集的后续调用 的 uuids 人只有在收到一项或多项服务后才会收到响应 自最长 近期通话。使用新值 uuids 的调用会重置过滤条件并 获得完整的快照

标识名可以跨服务重复使用,因此标识名可能同时存在于 updatedremoved。因此,我们建议您 在更新服务之前已移除的服务。

要进一步与服务交互,客户端必须获取 RemoteService 调用 ConnectToService() 协议。

  • 请求 uuids UUID 许可名单。如果留空,所有服务都将 返回。
  • 回复 updated 之后添加或修改的服务 上次调用 WatchServices()。返回的 ServiceInfo 表 仅包含每项服务的基本信息 characteristicsincludes 字段将为 null。如果某项服务 添加/修改过,然后又从上次调用后删除, 存在于 removed 中,而不是 updated 中。 如果因包含新的 uuids 值的新调用而结束,则 updated 将为空。
  • 响应 removed 已移除服务的句柄 自上次调用 WatchServices() 之后。

请求

名称类型
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。
  • 请求 handlenotifyindicate 参数。
  • 请求 notify 如果客户端已启用通知,则为 True,否则为 false。
  • 请求 indicate;如果客户端已启用指示,则为 True,否则为 false。
  • response empty 返回任何内容以确认特征配置。

请求

名称类型
peer_id fuchsia.bluetooth/PeerId
handle Handle
notify bool
indicate bool

响应

<空>

OnIndicateValue

此事件用于向对等方发送指示。应使用指示标志,而不是 在服务需要对等方确认更新时发送通知。

指示不应发送给尚未启用特定指示 特征 - 如果发送,它们将不会传播。蓝牙堆栈 在服务的生命周期内一直跟踪此配置。

本地生活服务必须跟踪由ValueChangedCredit提供的可用赠金 方法,并最多发送这么多 OnNotifyValueOnIndicateValue 事件。如果 发送的事件数多于可用赠送金额,或者参数无效,则协议只能 已关闭。

  • 请求 update:与已更改的特征相关联的参数。
  • 请求 confirmation 当将要更新的所有对等体都确认了指示时, confirmation 收到了 ZX_EVENTPAIR_SIGNALLED 信号。如果发生以下情况,confirmation将会停业: 表示任何对等体发生故障(例如,对等体尚未配置指示) 连接,或未在 30 秒的 ATT 事务超时内确认(蓝牙 5.3 卷3 F 3.3.3 部分)。要跟踪每个对等体的指示确认, 实现可以在 update.peer_ids 中使用单个 ID 发送此事件。

响应

名称类型
update ValueChangedParameters
confirmation handle<eventpair>

OnNotifyValue

此事件用于向对等端发送通知。应使用通知,而不是 当服务不需要对等方确认更新时,用于指明这一点。

不应向尚未启用通知功能的同行发送通知。 特定特征 - 如果发送,它们将不会传播。蓝牙 会在服务的生命周期内跟踪此配置。

本地生活服务必须跟踪由ValueChangedCredit提供的可用赠金 方法,并最多发送这么多 OnNotifyValueOnIndicateValue 事件。如果 发送的事件数多于可用赠送金额,或者参数无效,则协议只能 已关闭。

响应

名称类型
payload ValueChangedParameters

OnSuppressDiscovery

此事件之后,新对等方将无法再发现该服务,但对等方 已发现此服务的该组织仍然可以访问该服务。此邮件应每发送一次 服务生命周期;发送多次会关闭协议并断开 GATT 客户端连接。

响应

<空>

PeerUpdate

调用以提供对等的 GATT 信息。除非 之前的调用收到了响应。因此,该实现可以直接忽略 如果对任何 PeerUpdate 字段都不感兴趣,则再次调用此函数。

在将任何其他交互从对等端传播到 LocalService (Write/ReadValue, CharacteristicConfiguration) 因为前面的所有 PeerUpdate 均已确认。

当前未发送。如需寻求支持,请在 https://fxbug.dev/42178509 上发表评论

  • 请求 peer_id 更新涉及的 PeerId。始终存在。
  • 请求 mtu 适用于此通知/指示的字节数上限 对等设备超出此限制的所有字节都会被静默截断。大多数客户无需担心 除非他们使用通知/指示来实现高吞吐量。 可选。
  • response 空响应,用于确认已收到更新。

请求

名称类型
payload LocalServicePeerUpdateRequest

响应

<空>

ReadValue

在对等方请求读取特征或描述符的值时调用。时间是 可以保证对等网络满足与此属性相关联的权限。

  • request peer_id 发出读取请求的 GATT 客户端的 PeerId。
  • request handle:所请求描述符/特征的句柄。
  • 请求 offset:从哪个偏移量开始读取请求的值。
  • response value 特征的值。
  • 错误。如需了解可能的错误,请参阅 gatt2.Error 文档。

请求

名称类型
peer_id fuchsia.bluetooth/PeerId
handle Handle
offset int32

响应

名称类型
payload LocalService_ReadValue_Result

ValueChangedCredit

为发送指示/通知充值。实现人员应从 在调用此方法之前,剩余 INITIAL_VALUE_CHANGED_CREDITS 笔赠金。实现人员必须 还能跟踪自己拥有的可用赠送金额实现人员只能发送一个 OnNotificationsValue 每个功劳。请注意,只有在调用 ValueChangedCredit 之后, 如果自上次通话后至少发送了一条指示/通知。

请求

名称类型
additional_credit uint8

WriteValue

在对等方发出写入特征或描述符值的请求时调用。它 可保证对等方满足与此属性关联的权限。

  • request peer_id 发出写入请求的 GATT 客户端的 PeerId。始终存在。
  • request handle:所请求描述符/特征的句柄。始终存在。
  • 请求 offset:开始写入值的偏移量。如果偏移为 0,则任何 现有值应被新值覆盖。否则, offset:(offset + len(value)) 应更改为 value。始终存在。
  • 请求 value 描述符/特征的新值。始终存在,但可能 为空字符串。
  • response 值更新后,实现必须发送空响应 进行确认。
  • 错误。如需了解可能的错误,请参阅 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 。考虑读取特征/描述符 执行发现操作后单独处理。
  • error 若服务器返回并非特定于该实例的错误,则返回 FAILURE 一个结果。

请求

名称类型
uuid fuchsia.bluetooth/Uuid

响应

名称类型
payload RemoteService_ReadByType_Result

ReadCharacteristic

读取具有指定 handle 的特征的值。

  • 请求 handle:要读取的特征句柄。
  • 请求 options 适用于读取的选项。
  • response value 特征的值。
  • error 如果 handle 无效,则返回 INVALID_HANDLE
  • error 如果 options 无效,则返回 INVALID_PARAMETERS
  • 错误,如果服务器返回 READ_NOT_PERMITTEDINSUFFICIENT_* 拒绝读取请求
  • error 如果服务器返回错误,则返回 FAILURE

请求

名称类型
handle Handle
options ReadOptions

响应

名称类型
payload RemoteService_ReadCharacteristic_Result

ReadDescriptor

使用 handle 和 并在回复中返回。

  • 请求 handle 要读取的描述符句柄。
  • 请求 options 适用于读取的选项。
  • response value 描述符的值。
  • error 如果 handle 无效,则返回 INVALID_HANDLE
  • error 如果 options 无效,则返回 INVALID_PARAMETERS
  • 错误,如果服务器返回 READ_NOT_PERMITTEDINSUFFICIENT_* 拒绝读取请求
  • error 如果服务器返回错误,则返回 FAILURE

请求

名称类型
handle Handle
options ReadOptions

响应

名称类型
payload RemoteService_ReadDescriptor_Result

RegisterCharacteristicNotifier

订阅通知和这些特征的 指定的 handle

系统会根据以下情况启用通知或指示: 特征属性。将优先选择符合以下条件的指示: 支持。如果特征没有 “通知”或“指示”属性。

系统将发出一个写入请求,以配置 如果包含客户端特征,则提供通知/指示 配置描述符。如果发生错误,则此方法会失败, 写入描述符。

成功完成时,可以使用 notifier 协议在发生以下情况时收到通知 对等体发送通知或指示。征兆 系统会自动确认该协议丢弃后, 可能会结束。

  • handle 请求特征句柄。
  • 请求 notifier 用于通知的协议。
  • 响应;如果注册,系统会立即发送空响应 成功。
  • error 如果该特征不支持,则返回 FAILURE 通知或指示。
  • error 如果 handle 无效,则返回 INVALID_HANDLE
  • error 针对某个对象返回WRITE_NOT_PERMITTEDINSUFFICIENT_* 描述符写入错误。

请求

名称类型
handle Handle
notifier CharacteristicNotifier

响应

名称类型
payload RemoteService_RegisterCharacteristicNotifier_Result

WriteCharacteristic

使用提供的 handlevalue 写入特征 options

当某写入操作已完成时,建议不要发送额外的写入操作 正在进行中(服务器可能会以任何顺序同时接收写入)。

  • 请求 handle 要写入的特征。
  • 请求 value 要写入的值。
  • 请求 options 适用于写入的选项。
  • 成功响应后,系统将发送空响应 (如果是 options.with_response 为 false)
  • error 如果 handle 无效,则返回 INVALID_HANDLE
  • error 如果 options 无效,则返回 INVALID_PARAMETERS
  • error,如果服务器返回 WRITE_NOT_PERMITTEDINSUFFICIENT_* 拒绝写入请求并说明原因。
  • error 如果服务器返回错误,则返回 FAILURE

请求

名称类型
handle Handle
value vector<uint8>[512]
options WriteOptions

响应

名称类型
payload RemoteService_WriteCharacteristic_Result

WriteDescriptor

使用 handlevalue 写入特征描述符。 当某写入操作已完成时,建议不要发送额外的写入操作 正在进行中(服务器可能会以任何顺序同时接收写入)。

  • 请求 handle:要写入的描述符句柄。
  • 请求 value 要写入的值。
  • 请求 options 适用于写入的选项。
  • 成功响应后,系统将发送空响应 (如果是 options.with_response 为 false)
  • error 如果 handle 无效或引用INVALID_HANDLE 内部保留的描述符类型(例如 特征配置描述符)。
  • error 如果 options 无效,则返回 INVALID_PARAMETERS
  • 错误,如果服务器返回 WRITE_NOT_PERMITTEDINSUFFICIENT_* 并说明原因。
  • error 如果服务器返回错误,则返回 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。这些标识符将用于发送给 service 的请求。

  • request info 定义 GATT 服务的结构。包括特征和 以及将提供给对等方的服务句柄 必须在发布到此服务器的所有服务中是唯一的。
  • 请求 service 根据载述的行为提供服务的实现 (针对 LocalService)。
  • response 空响应表示服务已成功发布。
  • 错误。如需了解可能的故障模式,请参阅 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 个字节。目前这是一个空占位符 没有选项。

<空>

精英

错误:strict

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

bluetooth.gatt2.* 方法返回的错误。

这些值与蓝牙 5.2 Vol 中的值相对应。3 G 部分表 3.4, 和蓝牙核心规范 v9 第 B 部分表 1.1 的补充, 但仅供参考客户端应该依赖 值保持恒定。系统会处理规范中省略的值 且不会返回给客户端。

LocalService 方法只能返回某些错误。这些是 在评论中。

名称说明
1

标识名所指示的属性无效。可能已被移除。

这可由 LocalService 方法返回。

2

此属性不可读取。

3

此属性不可写入。

4

表示从服务器收到的响应无效。

5

此属性要求进行身份验证,但客户端未经过身份验证。

7

表示读取或写入请求中使用的偏移量超过了 值的边界。

这可由 LocalService 方法返回。

8

此属性需要授权,但客户端未获得授权。

12

此属性要求使用更大的加密密钥加密的连接。

13

表示写入请求中指定的值将超过最大值 指定字符或描述符允许的长度。

这可由 LocalService 方法返回。

14

发生了无法归类为以上某种错误的常规错误 特定错误。

这可由 LocalService 方法返回。

15

此属性要求加密,但连接未加密。

17

服务器没有足够的资源来完成任务。

这可由 LocalService 方法返回。

19

不允许使用此值。

这可由 LocalService 方法返回。

128

应用错误。这些元素的用途是在应用中指定 。

这些可能全部都由 LocalService 方法返回。

129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
252

写入请求在配置文件或服务级别被拒绝。

253

客户端特征配置描述符不正确 配置。

254

配置文件或服务程序已在进行中。

255

配置文件或服务等级的值超出范围。

257

一个或多个 FIDL 调用参数无效。请参阅参数 文档。

258

表示读取的结果多于 FIDL 响应所能容纳的结果。 请考虑分别读取属性。

PublishServiceError 柔性

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

服务发布期间可能发生的错误。

名称说明
1

服务句柄无效或已在发布服务的服务器上使用。

2

提供的服务 UUID 无效。

3

ServiceInfo.characteristics”字段格式无效或缺失。如果服务 表示为空,则矢量应为空,但存在。

4

发生了无法归类为更具体的错误的常见错误。

ServiceKind 严格

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

GATT 服务的种类(“类型”),如蓝牙核心规范 v5.3 第 5 卷中所述。1 A 部分 6.5.1.

名称说明
1

“提供设备功能且可独立使用的服务”(同上)

2

“提供与主服务相关的额外功能 [...] 的服务 服务,并且包含至少一项主要服务(同上)

WriteMode flexible

类型:uint32

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示针对写入特征和 发送描述符。

名称说明
1

DEFAULT 模式下,等待服务器做出响应,然后再返回 并且不验证 echo 响应。 特征和描述符均支持。

2

RELIABLE 模式下,系统会根据 echo 验证每个值 blob 响应。如果值 blob 已 无法可靠地传送至对等端。 仅支持特征。

3

WITHOUT_RESPONSE模式下,系统不会提前确认送达情况 回访用户。只支持在没有响应的情况下写入 与 WRITE_WITHOUT_RESPONSE 属性相关联。值 必须适合放在一封邮件中。保证至少有 20 个字节 可以放在一封邮件中如果值不合适,则抛出 FAILURE 错误。该值将以偏移量 0 写入。 仅支持特征。

表格

AttributePermissions

fuchsia.bluetooth.gatt2/types.fidl 中定义

指定特定属性值的访问权限。

Ordinal字段类型说明
read SecurityRequirements

指定属性是否具有读取权限。如果不存在, 属性值无法读取。否则,只有在 是否满足 SecurityRequirements 表中指定的权限。

write SecurityRequirements

指定属性是否具有写入权限。如果不存在, 属性值无法写入。否则,只能写入 如果满足 SecurityRequirements 表中指定的权限,则会发生此错误。

update SecurityRequirements

指定客户端要订阅的安全要求 通知或特征指示。特征的 使用 NOTIFY 和 INDICATE 特征属性。如果局部特征具有 那么必须存在此字段。否则,此字段 。

对于“描述符”,系统会忽略此字段。

特征

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示本地或远程 GATT 特征。

Ordinal字段类型说明
handle Handle

在服务中唯一标识此特征。 对于局部特征,指定的标识名必须在 所有特征和描述符句柄。

始终存在。对于本地特征,此值是必填值。

type fuchsia.bluetooth/Uuid

用于标识此特征类型的 UUID。 始终存在。本地特征的必需属性。

properties CharacteristicPropertyBits

特征属性位字段。 始终存在。本地特征的必需属性。

permissions AttributePermissions

此特征的属性权限。遥控器用 因此只有在获得相关权限后, 通过读取和写入请求发现的数据。

对于本地特征,此值是必填值。

descriptors vector<Descriptor>[65532]

此特征的描述符。 仅在非空时显示。对于当地特征,此属性为可选属性。

Descriptor

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示本地或远程 GATT 特征描述符。

Ordinal字段类型说明
handle Handle

在服务中唯一标识此描述符。 对于本地描述符,指定的句柄必须是唯一的 所有特征和描述符句柄。

始终存在。对于本地描述符,此值是必需的。

type fuchsia.bluetooth/Uuid

用于标识此描述符类型的 UUID。 始终存在。对于本地描述符,此值是必需的。

permissions AttributePermissions

此描述符的属性权限。遥控器用 描述符,则只有在获得相关权限后,该值才会存在 通过读取和写入请求发现的数据。

对于本地描述符,此值是必需的。

LocalServicePeerUpdateRequest

fuchsia.bluetooth.gatt2/server.fidl 中定义

Ordinal字段类型说明
peer_id fuchsia.bluetooth/PeerId
mtu uint16

LocalServiceWriteValueRequest

fuchsia.bluetooth.gatt2/server.fidl 中定义

Ordinal字段类型说明
peer_id fuchsia.bluetooth/PeerId
handle Handle
offset uint32
value vector<uint8>[512]

LongReadOptions

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示用于读取长特征或描述符的受支持选项 值。长值是指不适合单独使用的值 消息(长度超过 22 个字节)。

Ordinal字段类型说明
offset uint16

开始读取的字节。必须小于值的长度。 选填。 默认值:0

max_bytes uint16

要读取的字节数上限。 选填。 默认值:MAX_VALUE_LENGTH

ReadByTypeResult

fuchsia.bluetooth.gatt2/client.fidl 中定义

RemoteService.ReadByType 返回的结果。

Ordinal字段类型说明
handle Handle

特征或描述符句柄。

value ReadValue

特征或描述符的值(如果读取成功)。

error Error

无法读取值的原因(如果读取该值导致错误)。

ReadValue

fuchsia.bluetooth.gatt2/client.fidl 中定义

用于封装从服务器收到的可能被截断的值。

Ordinal字段类型说明
handle Handle

特征或描述符句柄。始终存在。

value vector<uint8>[512]

特征或描述符的值。始终存在。

maybe_truncated bool

如果 value 可能被截断(缓冲区填满),则为 true 由服务器管理)。应使用 ReadCharacteristicReadDescriptor 读取完整值。 始终存在。

SecurityRequirements

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示加密、身份验证和授权权限, 为其分配特定访问权限

Ordinal字段类型说明
encryption_required bool

如果为 true,则必须对该实体链路进行加密才能访问此属性。如果不存在或 false,则此属性允许未加密的访问。

authentication_required bool

如果为 true,该实体链接必须经过身份验证才能访问此属性。如果不存在或 false,则此属性允许未经身份验证的访问。

authorization_required bool

如果为 true,则客户端需要获得授权才能访问此属性。如果不存在或 false,则此属性允许未经授权的访问。

ServiceInfo

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示本地或远程 GATT 服务。

Ordinal字段类型说明
handle ServiceHandle

此 GATT 服务的唯一标识符。 如果表示远程服务,则始终显示;在这种情况下,此名称在整个 返回此 ServiceInfo 的客户端。 对于本地服务而言是必需的,在这种情况下,它在已发布的所有服务中必须是唯一的 单个服务器实例可用于ServiceInfo.includes其他 PublishService 调用用于发布此服务的服务器。

kind ServiceKind

指明该服务是主要服务还是辅助服务。 对于远程服务,始终显示。对于本地服务,此属性为可选属性 默认值:ServiceKind::PRIMARY

type fuchsia.bluetooth/Uuid

用于标识此服务类型的 UUID。 可能有多个服务具有相同的 UUID。 对于远程服务,始终显示。对于本地服务而言是必需的。

characteristics vector<Characteristic>[32767]

此服务的特征。 对于本地服务而言是必需的。对于远程服务,一律不显示。

includes vector<ServiceHandle>[65535]

此服务包含的其他服务的句柄。 对于本地服务,此参数为可选参数。对于远程服务,一律不显示。 TODO(https://fxbug.dev/42147529):本地服务目前不支持此操作。

ValueChangedParameters

fuchsia.bluetooth.gatt2/server.fidl 中定义

用于指示特征值从 LocalService 更改为对等参数的参数。

Ordinal字段类型说明
handle Handle

接收信号的特征值的句柄。 必填。

value vector<uint8>[512]

更新后的特征值。 对于使用高吞吐量指示/通知的客户端,请注意(不推荐): 虽然静态限制为 MAX_VALUE_LENGTH,但实际限制取决于具体的 由 LocalService.PeerUpdate 通知的对等方的配置。超过该时长的任何字节数 上限会被堆栈在内部截断。 必填。

peer_ids vector<fuchsia.bluetooth/PeerId>

仅向一部分对等设备发出信号。 如果不存在或为空,则所有可更新的对等设备都会发出信号。 如果包含,则只有此列表中的对等设备会收到信号。 仅当对等方为每个LocalService.配置了更新或通知时,才会收到信号 CharacteristicConfigurationpeer_ids 中的其他对等网络将被忽略。

WriteOptions

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示用于写入特征/描述符值的支持选项 服务器

Ordinal字段类型说明
write_mode WriteMode

写入操作的模式。对于描述符,只有 支持 WriteMode.DEFAULT 选填。 默认值:WriteMode.DEFAULT

offset uint16

请求从指定字节开始写入。 如果 write_modeWriteMode.WITHOUT_RESPONSE,则必须缺失或 0。 选填。 默认值:0

联合体

LocalService_ReadValue_Result 严格

fuchsia.bluetooth.gatt2/server.fidl 中定义

Ordinal变体类型说明
response LocalService_ReadValue_Response
err Error

LocalService_WriteValue_Result 严格

fuchsia.bluetooth.gatt2/server.fidl 中定义

Ordinal变体类型说明
response LocalService_WriteValue_Response
err Error

ReadOptions 柔性环境

fuchsia.bluetooth.gatt2/types.fidl 中定义

表示用于读取特征或描述符的受支持选项 值。

Ordinal变体类型说明
short_read ShortReadOptions

执行短时间读取,此时可能会被截断(如 结果中可能被截断) GATT 服务中的大多数读取操作都是短时间读取(小于等于 22 字节)。

long_read LongReadOptions

如果存在,则使用指定的选项执行长读取。 选填。 默认:将执行短时间读取。

RemoteService_ReadByType_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

Ordinal变体类型说明
response RemoteService_ReadByType_Response
err Error

RemoteService_ReadCharacteristic_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

Ordinal变体类型说明
response RemoteService_ReadCharacteristic_Response
err Error

RemoteService_ReadDescriptor_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

Ordinal变体类型说明
response RemoteService_ReadDescriptor_Response
err Error

RemoteService_RegisterCharacteristicNotifier_Result(严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

Ordinal变体类型说明
response RemoteService_RegisterCharacteristicNotifier_Response
err Error

RemoteService_WriteCharacteristic_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

Ordinal变体类型说明
response RemoteService_WriteCharacteristic_Response
err Error

RemoteService_WriteDescriptor_Result 严格

fuchsia.bluetooth.gatt2/client.fidl 中定义

Ordinal变体类型说明
response RemoteService_WriteDescriptor_Response
err Error

Server_PublishService_Result 严格

fuchsia.bluetooth.gatt2/server.fidl 中定义

Ordinal变体类型说明
response Server_PublishService_Response
err PublishServiceError

CharacteristicPropertyBits strict

类型:uint16

fuchsia.bluetooth.gatt2/types.fidl 中定义

特征属性位字段的可能值。这些参数指定 针对特定特征允许的 GATT 流程。

名称说明
1
2
4
8
16
32
64
256
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