35 lines
891 B
Python
35 lines
891 B
Python
import asyncio
|
|
import struct
|
|
|
|
import numpy as np
|
|
from bleak import BleakClient
|
|
from matplotlib import pyplot as plt
|
|
|
|
address = "65:72:31:D7:E2:12"
|
|
MODEL_NBR_UUID = "2A24"
|
|
|
|
batt = []
|
|
|
|
|
|
async def main(address):
|
|
async with BleakClient(address) as client:
|
|
model_number = await client.read_gatt_char(MODEL_NBR_UUID)
|
|
print("Model Number: {0}".format("".join(map(chr, model_number))))
|
|
while True:
|
|
# batt.append(ord(await client.read_gatt_char("2A19")))
|
|
batt.append(struct.unpack("b", (await client.read_gatt_char("2A19")))[0])
|
|
print(batt[-1])
|
|
|
|
|
|
try:
|
|
asyncio.run(main(address))
|
|
except KeyboardInterrupt:
|
|
changed = np.diff(batt) != 0
|
|
print(
|
|
f"{np.sum(changed)} changes (seconds) in {len(changed)} samples ({len(changed) / np.sum(changed)} samples per second)"
|
|
)
|
|
|
|
plt.plot(batt)
|
|
plt.show()
|
|
plt.show()
|