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