# 执行低功耗蓝牙 GATT 服务器功能

您可以使用 **GATT 子菜单**选项和 `bluetoothctl` 命令执行低功耗蓝牙 GATT 服务器功能。

开始之前，请按照[设置设备以使用低功耗蓝牙 GATT 功能](https://docs.qualcomm.com/doc/80-70020-13SC/topic/bluez-gatt.html#section-ajz-mss-lcc-navyanka-08-21-24-1419-1-422)中所述设置设备。

## 连接到远程设备

要连接到远程设备，请从 `bluetoothctl` 菜单运行以下命令：

connect <bt_address>
    Copy to clipboard

**参数**

`<bt_address>` 是远程设备的蓝牙地址。

Note

要获取远程设备的蓝牙地址，请运行[蓝牙低功耗 GATT 扫描](https://docs.qualcomm.com/doc/80-70020-13SC/topic/bluez-perform-bluetooth-low-energy-gatt-client-functions.html#section-oyf-kts-lcc-navyanka-08-21-24-1425-50-130)。

**示例**

要使用 `<bt_address>` `6D:38:AF:C6:B5:62` 连接到客户端，请运行以下命令：

connect 6D:38:AF:C6:B5:62
    Copy to clipboard

## 添加主要服务

要将主服务添加到 GATT 服务器，请从 `menu gatt` 菜单：运行以下命令

register-service <UUID> [handle]
    Copy to clipboard

**示例**

如果服务的 UUID 为 `FF01` 且句柄为 `30`，则运行以下命令：

register-service FF01 30
    Copy to clipboard

**示例输出**

[MyDeviceB:/service0001/char0008]# register-service FF01 30
    [NEW] Primary Service (Handle 0x001e)
          /org/bluez/app/service0
          FF01
    [/org/bluez/app/service0] Primary (yes/no): yes
    Copy to clipboard

## 添加一个特征

要向服务器的服务添加特征，请从 `menu gatt` 菜单运行以下命令：

register-characteristic <UUID> <Flags=read,write,notify...> [handle]
    Copy to clipboard

**参数**

`<Flags>` 是特征的标志值。有关值，请参阅 [标志值](https://docs.qualcomm.com/doc/80-70020-13SC/topic/bluez-perform-bluetooth-low-energy-gatt-server-functions.html#section-oxp-rwr-mcc-navyanka-08-25-24-121-25-224)。

**示例**

服务的 UUID 为 `FF02`，标志为 `read,write,notify`，句柄为 `31`。要添加特征，请运行以下命令：

register-characteristic FF02 read,write,notify 31
    Copy to clipboard

**示例输出**

[MyDeviceB]# register-characteristic FF02 read,write,notify 31
    [NEW] Characteristic (Handle 0x001f)
          /org/bluez/app/service0/chrc0
          FF02
    <egister-characteristic FF02 read,write,notify 31[/org/bluez/app/service0/chrc0] Enter value: 20
    Copy to clipboard

## 添加描述符

要将描述符添加到服务器中的特征，请从 `menu gatt` 菜单运行以下命令：

register-descriptor <UUID> <Flags=read,write...> [handle]
    Copy to clipboard

**参数**

`<Flags>` 是描述符的标志值。有关值，请参阅 [标志值](https://docs.qualcomm.com/doc/80-70020-13SC/topic/bluez-perform-bluetooth-low-energy-gatt-server-functions.html#section-oxp-rwr-mcc-navyanka-08-25-24-121-25-224)。

**示例**

服务的 UUID 为 `FF03`，标志为 `read,write`，句柄为 `33`。要添加描述符，请运行以下命令：

register-descriptor FF03 read,write 33
    Copy to clipboard

**示例输出**

[MyDeviceB]# register-descriptor FF03 read,write 33
    [NEW] Descriptor (Handle 0x0021)
       /org/bluez/app/service0/chrc0/desc0
       FF03
    <egister-descriptor FF03 read,write 33[/org/bluez/app/service0/chrc0/desc0] Enter value: 21
    Copy to clipboard

## 添加包含的服务

开始之前，将所需服务添加为[主要服务](https://docs.qualcomm.com/doc/80-70020-13SC/topic/bluez-perform-bluetooth-low-energy-gatt-server-functions.html#section-nxh-kss-lcc-navyanka-08-21-24-1418-14-479)。

要将包含的服务添加到其他服务，请从 `menu gatt` 菜单运行以下命令：

register-includes <UUID> <UUID>
    Copy to clipboard

**示例**

考虑两个主要服务，其 UUID 分别为 `FF01` 和 `1112`。要将服务 `1112` 添加为服务 `FF01` 中包含的服务，请运行以下命令：

register-includes FF01 1112
    Copy to clipboard

**示例输出**

[MyDeviceB]# register-includes FF01 1112
    [NEW] Primary Service (Handle 0x001e)
          /org/bluez/app/service0
          FF01
    [NEW] Primary Included Service (Handle 0x0000)
          /org/bluez/app/service1
          1112
          Unknown
    Copy to clipboard

## 注册申请

要发布可用或添加到服务器的服务，请从 `menu gatt` 菜单运行以下命令：

register-application [UUID]
    Copy to clipboard

**示例**

该服务的 UUID 是 `FF01`。要发布可用或添加到服务器的服务，请运行以下命令：

register-application FF01
    Copy to clipboard

**示例输出**

[MyDeviceB]# register-application FF01
    [CHG] Secondary Service (Handle 0x0015)
       /org/bluez/app/service2
       1112
       Unknown
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001200-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001108-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001800-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001801-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001112-0000-1000-8000-00805f9b34fb
    [CHG] Primary Service (Handle 0x0016)
       /org/bluez/app/service1
       FF01
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001200-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001108-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001800-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001801-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000ff01-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001112-0000-1000-8000-00805f9b34fb
    Application registered
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001200-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000111f-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001108-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001800-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000110a-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 00001801-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000ff01-0000-1000-8000-00805f9b34fb
    [CHG] Controller 22:22:9B:2C:79:1E UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
    Copy to clipboard

## 开始广播

要启动 GATT 广播，请从 `bluetoothctl` 菜单运行以下命令：

advertise on
    Copy to clipboard

**示例输出**

[MyDeviceB]# advertise on
    [CHG] Controller 22:22:9B:2C:79:1E SupportedInstances: 0x0f (15)
    [CHG] Controller 22:22:9B:2C:79:1E ActiveInstances: 0x01 (1)
    Advertising object registered
    Tx Power: off
    Name: off
    Appearance: off
    Discoverable: on
    Copy to clipboard

## 断开远程设备的连接

要断开远程设备的连接，请从 `bluetoothctl` 菜单运行以下命令：

disconnect <bt_address>
    Copy to clipboard

**参数**

`<bt_address>` 是远程设备的蓝牙地址。

**示例**

要断开客户端与 `<bt_address>` `6D:38:AF:C6:B5:62` 的连接，请运行以下命令：

disconnect 6D:38:AF:C6:B5:62
    Copy to clipboard

## 标志值

`<Flags>` 的值可以为：

| `broadcast` | `authenticated-signed-writes` | `encrypt-authenticated-read` | `encrypt-authenticated-notify` |
| --- | --- | --- | --- |
| `read` | `extended-properties` | `encrypt-authenticated-write` | `secure-notify` |
| `write` | `reliable-write` | `secure-read` | `encrypt-indicate` |
| `write-without-response` | `writable-auxiliaries` | `secure-write` | `encrypt-authenticated-indicate` |
| `notify` | `encrypt-read` | `authorize` | `secure-indicate` |
| `indicate` | `encrypt-write` | `encrypt-notify` |  |

Last Published: Jul 22, 2025

[Previous Topic
通用属性 Profile (General Attribute Profile)](https://docs.qualcomm.com/bundle/publicresource/80-70020-13SC/topics/bluez-gatt.md) [Next Topic
执行低功耗蓝牙 GATT 客户端功能](https://docs.qualcomm.com/bundle/publicresource/80-70020-13SC/topics/bluez-perform-bluetooth-low-energy-gatt-client-functions.md)