BlueZ пример Гатт-сервер - PullRequest
       61

BlueZ пример Гатт-сервер

1 голос
/ 18 марта 2019

Я изучаю BlueZ и BLE.В каталоге bluez / test находится «пример сервера gatt» на python.Я прочитал код и почти понял, как он работает, но что-то не понятно.Например, есть этот метод, который уведомляет, когда значение характеристики изменяется (в данном примере это значение уровня заряда батареи):

    def notify_battery_level(self):
    if not self.notifying:
        return
    self.PropertiesChanged(
            GATT_CHRC_IFACE,
            { 'Value': [dbus.Byte(self.battery_lvl)] }, [])

Метод PropertiesChanged определен так:

@dbus.service.signal(DBUS_PROP_IFACE,
                     signature='sa{sv}as')
def PropertiesChanged(self, interface, changed, invalidated):
    pass

I 'Начинаю рекламу и запускаю этот пример, затем я использую на своем смартфоне приложение сканера BLE для считывания характеристики (в данном случае уровня заряда батареи).Ну, self.battery_lvl - это целое число (например, 24), но на самом сканере в качестве значения характеристики я вижу «уровень заряда батареи 24%».Проблема в том, что нигде в коде не добавлен «% уровень заряда батареи» к self.battery_lvl (просто 24).Так, где эта дополнительная информация добавлена?Извините за мой английский.Если вам нужна дополнительная информация, пожалуйста, скажите мне

1 Ответ

0 голосов
/ 19 марта 2019

Пример уровня заряда батареи использует принятый UUID службы Bluetooth (0x180F) и формат атрибута (см. this ). Таким образом, когда приложение для мобильного телефона находит службу и видит UUID, оно будет знать, что это служба батареи, и добавит% при чтении значения. Это является основным преимуществом при использовании принятых услуг / характеристик по сравнению с пользовательскими, вы можете добавить интеллектуальные данные на удаленном конце, потому что локальный конец имеет предопределенный формат. Обратите внимание, что это также относится к принятой службе / характеристике сердечного ритма (приложение сразу добавит уд / мин), принятой службе температуры / характеристике (приложение немедленно добавит (° C) и т. Д.

Полный список принятых услуг и характеристик можно найти по следующим ссылкам: -

Для дальнейшего чтения по этому вопросу: -

Надеюсь, это поможет.

...