BLED112 рекламирует список услуг ГАТТ

Я пытаюсь заставить BLED112 вести себя как iBEacon, а также рекламировать еще несколько сервисов GATT. Хотя реклама пользовательских данных для iBeacon, как в примерах Bluegiga, работает нормально, я не знаю, как рекламировать также список доступных сервисов GATT. Любые идеи высоко ценятся!

2 ответа

Посмотрите на мой веб-сайт потенциальную помощь в использовании инструментов BLED112 и Bluegiga: http://www.sureshjoshi.com/tag/bluegiga/

В противном случае вы не должны явно ничего рекламировать. Если вы правильно настроили свой gatt.xml, характеристики GATT объявляются по своей сути (это вещь BLE, а не явная вещь).

Вы уверены, что настраиваете их правильно? Взгляните на мои примеры BLE113, конкретно посвященные gatt.xml, и посмотрите, есть ли там что-нибудь полезное: https://github.com/sureshjoshi/ble113-firmware-examples

Один из подходов заключается в том, чтобы использовать двухрежимную рекламу 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 в ответе на сканирование, но, не зная больше о вашем конкретном случае использования, трудно сказать, подходит ли вам этот вариант.

Другие вопросы по тегам