0

我试图让 BLED112 表现得像 iBEacon 并且还宣传更多 GATT 服务。虽然在 Bluegiga 示例中为 iBeacon 宣传用户数据工作正常,但我不知道如何宣传可用 GATT 服务的列表。任何想法都受到高度赞赏!

4

2 回答 2

0

查看我的网站,了解有关使用 BLED112 和 Bluegiga 工具的一些潜在帮助:http: //www.sureshjoshi.com/tag/bluegiga/

否则,您不应该真正明确地宣传任何东西。如果您正确设置了 gatt.xml,GATT 特性就会被固有地宣传(这是 BLE 的事情,而不是明确的事情)。

你确定你设置正确吗?看看我的 BLE113 示例,特别是处理 gatt.xml,看看那里是否有任何帮助:https ://github.com/sureshjoshi/ble113-firmware-examples

于 2015-08-07T07:57:11.367 回答
0

一种方法是使用Bluegiga 双模式广告作为指导,而不是物理网络信标,在那里宣传您的 GATT 服务。假设您的广告数据具有 128 位服务 UUID,112233-4455-6677-8899-00AABBCCDDEEFF如下所示:

procedure gatt_service_advertisement()

    # Beacon mode
    beaconMode = 1

    #Stop advertisement
    call gap_set_mode(0,0)

    # Length
    service_adv(0:1) = $11  

    # Incomplete list of 128 bit UUIDs (use $07 if the list is complete)
    service_adv(1:1) = $06  

    # GATT Service UUID - should be little endian I think
    service_adv(2:1) = $FF
    service_adv(3:1) = $EE
    ...
    service_adv(16:1) = $11
    service_adv(17:1) = $00

    # Set advertisement interval to 100ms.
    # Use all three advertisement channels
    call gap_set_adv_parameters(160, 160, 7)

    # Set advertisement data
    call gap_set_adv_data(0, 18, service_adv(0:18))

    #set to advertising mode - with user data
    call gap_set_mode(4, gap_undirected_connectable)

end

您可以使用该过程在 iBeacon 和您的 GATT 服务之间交替广播,方法是在重复计时器中调用它,就像在链接的双模式示例中一样。

另一种方法是在扫描响应中宣传 GATT 服务,但在不了解您的特定用例的情况下,很难说这是否适合您。

于 2015-08-07T12:35:51.110 回答