应用程序未找到 read-属性 的 GATT 特性

GATT Characteristics with read-property not found by application

我正在尝试开发一个使用 BLE 与外部设备通信的应用程序。我决定将 pygatt (Python) 与 BGAPI 一起使用(使用 BlueGiga 加密狗)。

我正在与之通信的设备具有具有一组特征的自定义主要服务。根据他们的规格,他们有 2 个 READ 特征、8 个 NOTIFY 字符和 1 个 WRITE 字符。最初,我想读取两个 READ 字符之一,但我无法这样做。 他们的 UUID 不被识别为特征。 这怎么可能?我 100% 确定他们输入正确。

import pygatt
import bleconnect
import blelib
import logging


logging.basicConfig()
logging.getLogger('pygatt').setLevel(logging.DEBUG)

adapter = pygatt.BGAPIBackend(serial_port='/dev/tty.usbmodem1')
adapter.start()

# Find the device
result = adapter.scan(timeout=5)
for item in result:
    scan_name = item['name']
    scan_rssi = item['rssi']
    scan_address = item['address']
    if scan_name == bleconnect.TARGET_NAME:
        break

# Connect
device = adapter.connect(address=scan_address)
device.char_read(blelib.CHARACTERISTIC_DEVICE_FEATURES)

我可以在调试消息中看到找到了所有 NOTIFY 和 WRITE 特征,但没有找到两个 READ 特征。

我错过了什么?

这似乎是 pygatt API 中的某种缺点。我设法仅使用 bgapi 找到了实际值。