GATT Configurator 是 Simplicity Studio® 5 内置的可视化工具,提供直观的界面来访问 Bluetooth Specification 中定义的所有 Profiles、Services、Characteristics 和 Descriptors,并支持为 Bluetooth 应用创建、导入或导出自定义 GATT Profile,无需手动编辑 XML 文件。本指南适用于 Bluetooth SDK 3.x 和 Bluetooth Mesh SDK 2.x。Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt
Use this file to discover all available pages before exploring further.
打开 GATT Configurator
在 Simplicity Studio 5 中打开 GATT Configurator 有以下方式:- 通过 Project Configurator → Configuration Tools 选项卡 → 点击 Open
- 在 Project Explorer 中双击项目下的
config/btconfig/gatt_configuration.btconf文件
gatt_configuration.btconf 是 GATT 数据库的主干文件,位于项目的 config/btconfig 目录中。可在同一目录中添加其他 XML 文件来扩展 GATT 数据库,附加 XML 文件的内容会在 GATT Configurator UI 中显示为 Contributed Items。界面结构
GATT Configurator 由以下三个主要区域组成:Custom GATT Editor(左侧)
Custom GATT Editor(左侧)
显示当前项目中的 Profiles/Services/Characteristics/Descriptors 层级列表。层级顺序反映了它们在 GATT 数据库中的存在顺序。顶部工具栏菜单功能:
- 添加项(Add Item)
- 复制所选项(Duplicate)
- 向上移动所选项
- 向下移动所选项
- 导入 GATT 数据库
- 添加预定义(打开 SIG Selector)
- 删除所选项
SIG Selector(可切换)
SIG Selector(可切换)
显示预定义的 Profiles、Services、Characteristics 和 Descriptors 列表,支持过滤和标签页切换。
- 鼠标悬停在某项上,点击右侧 + 将其添加到 Custom GATT Editor
- 右侧窗格显示所选项的详细文本信息
- 点击 < BACK 返回 Settings Editor
Settings Editor(右侧)
Settings Editor(右侧)
配置所选项的 Properties,包括 Name、UUID、ID、Properties 和 Capabilities。所做更改会立即反映到所选项。一个 Service 的所有 Characteristics 包含在同一 Settings Editor 窗格中。
常见操作
添加标准 Service(Drag and Drop)
创建自定义 Service 和 Characteristic
添加自定义 Service
在 Custom GATT Editor 中选择 Profile (Custom BLE GATT),点击工具栏中的 添加(1) → 选择 New Service。在 Settings Editor 中填写 Service 名称和 UUID(128-bit 或 16-bit)。
配置 Characteristic
在 Settings Editor 右侧配置:
- Name:Characteristic 的显示名称
- ID:生成的 C 头文件中的宏名称(勾选 id 复选框后填写)
- UUID:16-bit 或 128-bit UUID
- Value Settings:选择数据类型(hex/utf-8/user)和长度
- Properties:设置访问属性(Read、Write、Notify、Indicate 等)
配置访问权限(Permissions)
选中一个 Characteristic 后,在 Settings Editor 中可设置以下属性:- 访问属性
- 安全要求
| 属性 | 说明 |
|---|---|
| Read | 允许远程设备读取该 Characteristic |
| Write | 允许远程设备写入该 Characteristic(带响应) |
| Write Without Response | 允许写入,无需 ATT 层确认 |
| Notify | 服务端可向客户端发送无需确认的值变化通知 |
| Indicate | 服务端可向客户端发送需要确认的值变化指示 |
| Reliable Write | 允许使用 Reliable Write 过程修改 Attribute |
添加 Capabilities(GATT 级可见性控制)
Capabilities 允许通过编程控制 Service 和 Characteristic 的可见性:为 Service/Characteristic 关联 Capabilities
在 Service 或 Characteristic 的设置中选择关联的 Capabilities。未声明任何 Capabilities 的 Service/Characteristic 将继承父级或全局的所有 Capabilities。
包含其他 Service(Service Includes)
Service Include 允许在一个 Service 中引用另一个 Service。在 Service 设置中使用 Service Includes 功能,通过 ID 引用已存在的 Service。导入与导出 GATT 数据库
- 导入:点击工具栏中的 导入(5) 按钮,可导入
.xml、.btconf或.bgproj格式的 GATT 数据库文件。 - 导出:在项目中保存后,GATT 数据库以
gatt_configuration.btconf格式保存,可直接共享给其他项目。
生成的代码文件
保存gatt_configuration.btconf 后,GATT 数据库会自动转换为以下文件(位于 autogen 目录):
| 文件 | 说明 |
|---|---|
gatt_db.c | GATT 数据库的结构和内容定义 |
gatt_db.h | 本地 Characteristics 和 Services 的 Handle 宏定义 |
动态 GATT 数据库
除静态 GATT 数据库外,SDK 还支持在运行时动态构建 GATT 数据库,适用于 NCP 场景以避免每次修改都重新构建目标固件。安装动态 GATT 组件
在 Project Configurator → Software Components 中搜索并安装 Dynamic GATT Database 组件。NCP 模式下推荐使用动态 GATT 数据库。在 Host 端可将静态 GATT 数据库代码转换为动态 API 调用,通过 UART 传输数据库结构。详见 AN1259: Using the v3.x Silicon Labs Bluetooth® Stack in Network Co-Processor Mode。
动态 GATT API 示例
以下示例展示如何将 Health Thermometer Service 和 Temperature Measurement Characteristic 动态添加到数据库中:静态 vs 动态 GATT 对比
| 对比项 | 静态 GATT(编译时) | 动态 GATT(运行时) |
|---|---|---|
| 数据库存储位置 | ROM | RAM |
| 启动时间 | 更快 | 稍慢 |
| 内存占用 | 更低 | 更高 |
| 灵活性 | 固定 | 可动态变更 |
| 推荐场景 | SoC 应用 | NCP Host 应用 |