|
|
@@ -0,0 +1,47 @@
|
|
|
+import asyncio
|
|
|
+from bleak import BleakScanner
|
|
|
+from bleak import BleakClient
|
|
|
+import time
|
|
|
+
|
|
|
+target_name = "Long name works now"
|
|
|
+global target_address
|
|
|
+target_address = None
|
|
|
+
|
|
|
+SERVICE_UUID= "d86aecf2-d87d-489f-b664-b02de82b2fc0"
|
|
|
+CHARACTERISTIC_UUID= "d86aecf2-d87d-489f-b664-b02de82b2fc0"
|
|
|
+
|
|
|
+async def connect():
|
|
|
+ devices = await BleakScanner.discover()
|
|
|
+ for d in devices:
|
|
|
+ print(d)
|
|
|
+ if target_name == d.name:
|
|
|
+ target_address = d.address
|
|
|
+ print("found target {} bluetooth device with address {} ".format(target_name,target_address))
|
|
|
+ return target_address
|
|
|
+ break
|
|
|
+ else:
|
|
|
+ print("could not find device")
|
|
|
+
|
|
|
+async def getData():
|
|
|
+ target_address = await connect()
|
|
|
+ if target_address is not None:
|
|
|
+ async with BleakClient(target_address) as client:
|
|
|
+ print(f"Connected: {client.is_connected}")
|
|
|
+
|
|
|
+ while 1:
|
|
|
+ try:
|
|
|
+ data = await client.read_gatt_char(CHARACTERISTIC_UUID)
|
|
|
+ datastr = data.decode('utf-8') #convert byte to str
|
|
|
+ dataarr = convertToNumbers(datastr)
|
|
|
+ print("time: {} ||| numbers: {}".format(time.time(), dataarr))
|
|
|
+ except Exception:
|
|
|
+ print("failed to get data, restarting connection.")
|
|
|
+
|
|
|
+def convertToNumbers(stringlist):
|
|
|
+ dlist = stringlist.split(",")
|
|
|
+ dlist = dlist[0:-1]
|
|
|
+ intlist = []
|
|
|
+
|
|
|
+ for string in dlist:
|
|
|
+ intlist.append(float(string))
|
|
|
+ return intlist
|