GATT服务清单



我正试图使BLED112表现得像iBEacon,并宣传更多的GATT服务。虽然广告用户数据的iBeacon在Bluegiga的例子工作得很好,我不知道如何也广告可用的GATT服务的列表。任何想法都非常感谢!

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

否则,你不应该明确地宣传任何东西。如果您正确地设置了GATT .xml,那么GATT特性将被固有地宣传(这是一个BLE的东西,而不是一个显式的东西)。

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

一种方法是使用Bluegiga双模式广告作为指导,而不是物理Web Beacon,在那里为您的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服务,但是在不了解更多关于您的特定用例的情况下,很难说这是否适合您。

相关内容

  • 没有找到相关文章

最新更新