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