【python】miaomiao (Smart Reader for Freestyle Libre) とのBLE 通信において、 「bytearraey(b'o')」

実現したいこと

miaomiaoにより、データを発信させたい。何が原因か知りたい。
miaomiao (Smart Reader for Freestyle Libre) とのBLE 通信を python programで行い、グルコースセンサーの値を検出したい。

発生している問題・分からないこと

miaomiao (Smart Reader for Freestyle Libre) という、リブレセンサーの値を拾うデバイスがあります。そのデバイスはBLE通信により、値をアプリに送信します。
pycharmにて、BLE通信を行う、python programを書きました。
uuidはNordic UART TX の特性uuid"6e400003-b5a3-f393-e0a9-e50e24dcca9e" を扱いました。

結果として、Connected to D8:DE:61:CC:0B:B4
Value for 6e400003-b5a3-f393-e0a9-e50e24dcca9e: bytearray(b'o')
となりました。
'o'以外の情報を受け取らないので、miaomiaoによるデータが送信されていないのかと感じました。

初心者で、質問の方法や用語の使い方等が不適切なども教えて欲しいです。

該当のソースコード

python

1async def read_characteristic(address, char_uuid):2 async with BleakClient(address) as client:3 if await client.is_connected():4 print(f"Connected to {address}")5 try:6 value = await client.read_gatt_char(char_uuid)7 print(f"Value for {char_uuid}: {value}")8 except Exception as e:9 print(f"Error: {e}")10 else:11 print(f"Failed to connect to {address}")12 13if __name__ == "__main__":14 address = "D8:DE:61:CC:0B:B4" # BLE address15 char_uuid = "6e400003-b5a3-f393-e0a9-e50e24dcca9e" # UUID of Nordic UART TX16 17 loop = asyncio.get_event_loop()18 loop.run_until_complete(read_characteristic(address, char_uuid))

試したこと・調べたこと

上記の詳細・結果

以下の原因を考えました。

1.デバイスがデータを送信していない
→bytearray(b'o') である以上、受け取っているのではないかと思いました。
しかし、血糖値0は変だと思いました。

2:選択したUUIDが不適切: 使用しているUUIDが、期待するデータを提供する特性のものでない可能性
→uuidのプロパティを調べたところ、
6e400001-b5a3-f393-e0a9-e50e24dcca9e: Nordic UART Service:
["['write-without-response', 'write'],
6e400002-b5a3-f393-e0a9-e50e24dcca9e",
"['notify'],6e400003-b5a3-f393-e0a9-e50e24dcca9e"]

3.待機時間が不足: asyncio.sleep(10)は、通知を待つために10秒間待機している、この時間が短すぎる可能性→10分に設定してみたが、効果なし。

補足

特になし

コメントを投稿

0 コメント