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