parent
200224f0d6
commit
7df0a9a413
@ -0,0 +1,48 @@
|
|||||||
|
const GATT = Object.freeze({
|
||||||
|
Battery: Object.freeze({
|
||||||
|
service: 0x180f,
|
||||||
|
level: "0x2A19", // Battery Level (Read / Notify)
|
||||||
|
}),
|
||||||
|
|
||||||
|
HeartRate: Object.freeze({
|
||||||
|
service: 0x180d,
|
||||||
|
measurement: "0x2A37", // Heart Rate Measurement (Notify)
|
||||||
|
bodySensorLocation: "0x2A38", // Body Sensor Location (Read)
|
||||||
|
controlPoint: "0x2A39", // Heart Rate Control Point (Write)
|
||||||
|
}),
|
||||||
|
|
||||||
|
Cadence: Object.freeze({
|
||||||
|
service: "0x1816",
|
||||||
|
measurement: "0x2A5B", // CSC Measurement (Notify)
|
||||||
|
feature: "0x2A5C", // CSC Feature (Read)
|
||||||
|
location: "0x2A5D", // Sensor Location (Read)
|
||||||
|
}),
|
||||||
|
|
||||||
|
PowerMeter: Object.freeze({
|
||||||
|
service: "0x1818",
|
||||||
|
measurement: "0x2A63", // Cycling Power Measurement (Notify)
|
||||||
|
feature: "0x2A64", // Cycling Power Feature (Read)
|
||||||
|
controlPoint: "0x2A65", // Cycling Power Control Point (Write)
|
||||||
|
location: "0x2A66", // Sensor Location (Read)
|
||||||
|
}),
|
||||||
|
|
||||||
|
SmartTrainer: Object.freeze({
|
||||||
|
service: "0x1826", // Fitness Machine Service
|
||||||
|
status: "0x2AD9", // Fitness Machine Status (Notify)
|
||||||
|
controlPoint: "0x2ACC", // Fitness Machine Control Point (Write/Indicate)
|
||||||
|
feature: "0x2ADA", // Fitness Machine Feature (Read)
|
||||||
|
indoorBikeData: "0x2ADB", // Indoor Bike Data (Notify)
|
||||||
|
trainingStatus: "0x2ADC", // Training Status (Notify)
|
||||||
|
supportedResistance: "0x2ADD", // Supported Resistance Level (Read)
|
||||||
|
}),
|
||||||
|
|
||||||
|
DeviceInfo: Object.freeze({
|
||||||
|
service: 0x180a, // Device Information Service
|
||||||
|
manufacturerName: "0x2A29", // Manufacturer Name String (Read)
|
||||||
|
modelNumber: "0x2A24", // Model Number String (Read)
|
||||||
|
serialNumber: "0x2A25", // Serial Number String (Read)
|
||||||
|
firmwareRevision: "0x2A26", // Firmware Revision String (Read)
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
export { GATT };
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
import { GATT } from "./gatt.js";
|
||||||
|
|
||||||
|
const hrSensorOptions = {
|
||||||
|
filters: [{ services: [GATT.HeartRate.service] }],
|
||||||
|
optionalServices: [GATT.DeviceInfo.service, GATT.Battery.service],
|
||||||
|
};
|
||||||
|
|
||||||
|
const requestHRSensor = async () => {
|
||||||
|
try {
|
||||||
|
return await navigator.bluetooth.requestDevice(hrSensorOptions);
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export { requestHRSensor };
|
||||||
@ -0,0 +1,5 @@
|
|||||||
|
const connectHRSensor = () => {};
|
||||||
|
const connectCadenceSensor = () => {};
|
||||||
|
const connectTrainer = () => {};
|
||||||
|
|
||||||
|
export { connectHRSensor, connectCadenceSensor, connectTrainer };
|
||||||
Loading…
Reference in new issue