应用程序找不到读取属性的GATT特性

时间:2017-01-27 22:10:17

标签: python bluetooth gatt

我正在尝试使用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特性。

我缺少什么?

1 个答案:

答案 0 :(得分:0)

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