【python】miaomiao (Smart Reader for Freestyle Libre) とのBLE 通信において、 「bytearraey(b'o')」
解決したいこと
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によるデータが送信されていないのかと感じました。
初心者で、質問の方法や用語の使い方等が不適切なども教えて欲しいです。
発生している問題・エラー
Connected to D8:DE:61:CC:0B:B4
Value for 6e400003-b5a3-f393-e0a9-e50e24dcca9e: bytearray(b'o')
python
async def read_characteristic(address, char_uuid):
async with BleakClient(address) as client:
if await client.is_connected():
print(f"Connected to {address}")
try:
value = await client.read_gatt_char(char_uuid)
print(f"Value for {char_uuid}: {value}")
except Exception as e:
print(f"Error: {e}")
else:
print(f"Failed to connect to {address}")
if __name__ == "__main__":
address = "D8:DE:61:CC:0B:B4" # BLE address
char_uuid = "6e400003-b5a3-f393-e0a9-e50e24dcca9e" # UUID of Nordic UART TX
loop = asyncio.get_event_loop()
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分に設定してみたが、効果なし。