ESP 32 GATT SERVER 中的 GATT 服务 UUID (esp_gatt_srvc_id_t) 与 ADV DATA 服务 UUID (esp_ble_adv_data_t) 有什么区别?

问题描述 投票:0回答:1

我是 ESP32 和蓝牙编程的新手。我只是尝试使用 ESP IDF 中提供的示例代码来了解 ESP32 中的 GATT 服务器操作。

这是链接: https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/bluedroid/ble/gatt_server/

据我所知,服务的每个特征都有 UUID 和 UUIS。但是我可以找到两个不同的服务 UUID,一个在 esp_gatt_srvc_id_t 中,另一个在 esp_ble_adv_data_t 中。

esp_ble_gatts_create_service()中使用的esp_gatt_srvc_id_t和esp_ble_adv_data_t中使用的 esp_ble_gap_config_adv_data(&adv_data) APIs.

有人可以帮助我理解两者之间的区别是什么,每个的具体用例是什么。由于我们使用 esp_gatt_srvc_id_t uuid 进行连接,因此连接是否必须强制要求 esp_ble_adv_data_t 的用途是什么?

谢谢。

bluetooth-lowenergy esp32 gatt bluetooth-gatt esp-idf
1个回答
0
投票

GATT 服务 是代表您设备的某些服务的服务。设备可能有多个 GATT 服务,每个服务可能有一些特征——这就是当设备通过 GATT 连接时你正在使用的。 此 UUID 将在连接到设备并读取其属性后看到。 关贸总协定通信所需.

广告服务 UUID 是设备将广告的 UUID。通常它是主要服务的 UUID,因此客户端/中心可以通过检查 BLE 广告数据包中的 UUID 轻松找到您的设备。但是这个 UUID 可以不同,以指示客户端的某些内容。或者设备可能会通告一些 UUID 以表明它支持一些不同的服务。 这个 UUID 将在 BLE 发现期间看到。这不是必需的选项。设备可能会也可能不会宣传任何 UUID。

还有一个叫做 SOL 服务 UUID 的东西。这样的 UUID 可能包含一些数据,因此设备可以通过更改此数据来指示其状态,客户端可以在不连接到设备的情况下获取它。所以这可以被不可连接的 BLE 设备使用。

© www.soinside.com 2019 - 2024. All rights reserved.