mirror of
https://github.com/mattintech/pyBTMCP.git
synced 2026-07-11 10:41:54 +00:00
- Fix HR variation to use smooth sinusoidal algorithm instead of erratic jumps - Clamp HR values to ±3 of target (was exceeding bounds) - Add Pydantic Field validation for device values in API - Add runtime BPM validation in MCP server - Add battery slider control for HR monitor - Add distance display and reset button for treadmill - Add UI/API version display in header - Firmware: web portal improvements, battery/distance controls Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
71 lines
1.6 KiB
C
71 lines
1.6 KiB
C
#ifndef BLE_SERVICES_H
|
|
#define BLE_SERVICES_H
|
|
|
|
#include <Arduino.h>
|
|
|
|
// ============================================
|
|
// BLE Service UUIDs (Bluetooth SIG standard)
|
|
// ============================================
|
|
|
|
// Heart Rate Service
|
|
#define HEART_RATE_SERVICE_UUID "180D"
|
|
#define HEART_RATE_MEASUREMENT_UUID "2A37"
|
|
#define BODY_SENSOR_LOCATION_UUID "2A38"
|
|
|
|
// Battery Service
|
|
#define BATTERY_SERVICE_UUID "180F"
|
|
#define BATTERY_LEVEL_UUID "2A19"
|
|
|
|
// Fitness Machine Service
|
|
#define FITNESS_MACHINE_SERVICE_UUID "1826"
|
|
#define TREADMILL_DATA_UUID "2ACD"
|
|
#define FITNESS_MACHINE_FEATURE_UUID "2ACC"
|
|
|
|
// ============================================
|
|
// Function Prototypes
|
|
// ============================================
|
|
|
|
/**
|
|
* Initialize NimBLE stack (call once at startup)
|
|
*/
|
|
void initBLE();
|
|
|
|
/**
|
|
* Stop BLE advertising and deinit
|
|
*/
|
|
void stopBLE();
|
|
|
|
/**
|
|
* Setup BLE as Heart Rate Monitor
|
|
* Creates Heart Rate Service with measurement characteristic
|
|
*/
|
|
void setupBLE_HeartRate();
|
|
|
|
/**
|
|
* Setup BLE as Treadmill (Fitness Machine)
|
|
* Creates Fitness Machine Service with treadmill data
|
|
*/
|
|
void setupBLE_Treadmill();
|
|
|
|
/**
|
|
* Send heart rate notification
|
|
* @param bpm Heart rate in beats per minute
|
|
*/
|
|
void notifyHeartRate(uint8_t bpm);
|
|
|
|
/**
|
|
* Update battery level
|
|
* @param level Battery level 0-100%
|
|
*/
|
|
void updateBatteryLevel(uint8_t level);
|
|
|
|
/**
|
|
* Send treadmill data notification
|
|
* @param speed Speed in 0.01 km/h units
|
|
* @param incline Incline in 0.1% units
|
|
* @param distance Total distance in meters
|
|
*/
|
|
void notifyTreadmill(uint16_t speed, int16_t incline, uint32_t distance);
|
|
|
|
#endif // BLE_SERVICES_H
|