feat: Add HR data visualization and CSV conversion scripts

This commit is contained in:
2025-06-10 17:09:14 +08:00
parent 884a575d7d
commit 1d1170f19c
10 changed files with 1323 additions and 38 deletions

View File

@ -6,11 +6,11 @@ from typing import Final, Optional
from loguru import logger
from anyio import create_udp_socket, create_connected_udp_socket
DEVICE_NAME: Final[str] = "MAX-HUB"
DEVICE_NAME: Final[str] = "Polar Sense E4E71028"
UDP_SERVER_HOST: Final[str] = "localhost"
UDP_SERVER_PORT: Final[int] = 50_000
BLE_HR_SERVICE_UUID: Final[str] = "180D"
BLE_HR_CHARACTERISTIC_RAW_UUID: Final[str] = "ff241160-8a02-4626-b499-b1572d2b5a29"
BLE_HR_MEASUREMENT_CHARACTERISTIC_UUID: Final[str] = "2A37"
async def main():
@ -45,16 +45,16 @@ async def main():
raise ValueError(f"Characteristic not found: {char_uuid}")
return char
hr_raw_char = await find_char(
BLE_HR_SERVICE_UUID, BLE_HR_CHARACTERISTIC_RAW_UUID
hr_measurement_char = await find_char(
BLE_HR_SERVICE_UUID, BLE_HR_MEASUREMENT_CHARACTERISTIC_UUID
)
async def on_hr_data(char: BleakGATTCharacteristic, data: bytearray):
logger.info("raw={}", data.hex())
logger.info("hr_measurement={}", data.hex())
await udp.send(data)
logger.info("Starting notify")
await client.start_notify(hr_raw_char, on_hr_data)
await client.start_notify(hr_measurement_char, on_hr_data)
ev = anyio.Event()
await ev.wait()