BLE (Bluetooth Smart) проблемы с подключением после обнаружения устройства
Я хочу собирать данные из Concept2 Indoor Rower через Python 3 Smart Bluetooth (BLE) в Ubuntu 18.04 с Bluetooth-аддатором 0x8 (BLE-совместимым). Для выполнения машин соединения BLE используйте протокол GATT, а в Python 3 это действие выполняется pybluez
, pygattlib
и все их зависимости.
После их установки я использовал pybluez
examples/ble/scan.py
файл для сканирования среды, и он обнаружил MAC-адрес машины. Затем я попытался открыть соединение с examples/ble/read_name.py
но появилась следующая ошибка:
Connecting... Traceback (most recent call last):
File "read_name.py", line 41, in <module>
Reader(sys.argv[1])
File "read_name.py", line 17, in __init__
self.connect()
File "read_name.py", line 24, in connect
self.requester.connect(True)
RuntimeError: Channel or attrib not ready
Когда появилась ошибка, я попытался отсканировать и подключиться к hcitool
а также gatttool
инструмент:
hcitool:
hcitool lecc [MAC]
Could not create connection: Connection time out.
gatttool:
gatttool -b [MAC] -I
[LE]> connect
Attempting to connect...
Он не может подключиться ни к одной команде, но все они обнаружили устройство.
Последний ресурс, который я пробовал, указан в документации gattlib, где указан следующий код:
from gattlib import GATTRequester
# Creating a requester for the specified MAC
req = GATTRequester(" MAC_ADDRESS ")
# Requesting the device name using UUID ***
name = req.read_by_uuid("00002a00-0000-1000-8000-00805f9b34fb")[0]
Segmentation fault (core dumped)
*** UUID, извлеченный из документации Concept2 Bluetooth (стр. 9, таблица 3)
Кажется, что в библиотеке произошел логический сбой из-за программирования или мой компьютер экспериментировал с проблемой низкого уровня.
Я хочу отменить ошибку связи, так как в App Store доступно приложение Concept2 Indoor Row, которое называется ErgData, и работать правильно. Кроме того, когда я подключаюсь через интерфейс Ubuntu Bluetooth Manager, соединение выполнено успешно, и Indoor Rower показывает сообщение "Succesfull Connected".