BLE gatttool читает последовательные данные из bluno? - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь отправить данные по BLE из Bluno в Raspberry Pi (Raspian), bluez 5.50.

Пока связь в порядке.Я поражен тем, что не могу получить серийные данные из дескриптора уведомления.

Ниже я попробовал.

pi@raspberrypi:~ $ sudo gatttool -b <BLE-MAC-ADDRESS> -I
<BLE-MAC-ADDRESS>[LE]> connect
Attempting to connect to <BLE-MAC-ADDRESS>
Connection successful
[<BLE-MAC-ADDRESS>][LE]>
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
[<BLE-MAC-ADDRESS>][LE]>char-read-hnd 0x0025
handle : 0x0025 value : 01
Notification handle = 0x0025 value : 32
Notification handle = 0x0025 value : 32
[<BLE-MAC-ADDRESS>][LE]>

Итак, проблема в том, что слушатель дескриптора уведомлений «слушает»к последовательным данным и возвращает значение (2 -> Hex: 32) каждую 1 секунду от Bluno (как запрограммировано в Adurinosketch).

Но когда я пытаюсь получить это значение с помощью команды char-read (пробовал как handle & uuid), она всегда возвращает 01? !!!

В конечном итоге я хочу получить это значение вмой код Python (для этого я использую Pexpect)

Любая помощь / указания приветствуются.

1 Ответ

0 голосов
/ 24 июня 2018

Хорошо, вот что я сделал в своем коде Python для получения значения

`

child = pexpect.spawn("sudo gatttool -b <BLUNO-MAC-ADDR> -I")
# Connect to the device.
print("Connecting to Bluno...")
child.sendline("connect")
child.expect("Connection successful", timeout=5)
print(" Connected!")

while True: 
    child.expect("Notification handle = 0x0025 value: ", timeout=10)
    child.expect("\r\n", timeout=10)
    resp = child.before
    print(process_my_data(bytearray.fromhex(resp.decode("utf-8")).decode()))

`

...