BLE gatttool читает последовательные данные из bluno?

Я пытаюсь отправить данные через 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 ответ

Хорошо, вот что я закончил делать в своем коде 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()))

`

Другие вопросы по тегам