0

BLED112 を iBEacon のように動作させ、さらにいくつかの GATT サービスを宣伝しようとしています。Bluegiga の例のように iBeacon のユーザー データをアドバタイズすることはできますが、利用可能な GATT サービスのリストもアドバタイズする方法がわかりません。どんなアイデアでも大歓迎です!

4

2 に答える 2

0

1 つのアプローチは、Bluegiga デュアルモード広告をガイドとして使用し、物理 Web ビーコンの代わりに 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 に答える
0

BLED112 および Bluegiga ツールの使用に関する潜在的なヘルプについては、私の Web サイトをご覧ください: http://www.sureshjoshi.com/tag/bluegiga/

そうでなければ、何かを明示的に宣伝するべきではありません。gatt.xml を正しく設定すると、GATT 特性が本質的にアドバタイズされます (明示的なものではなく、BLE のものです)。

それらを正しく設定していますか?特にgatt.xmlを扱っている私のBLE113の例を見て、そこに役立つものがあるかどうかを確認してください:https://github.com/sureshjoshi/ble113-firmware-examples

于 2015-08-07T07:57:11.367 に答える