A TypeScript library for managing multiple Bluetooth heart rate monitor devices simultaneously.
This package is based on the following:
npm install multidevice-bluetooth-heart-rate-monitor
Here's a basic example of how to use the library:
import {
MultiDeviceBluetoothHeartRateMonitor,
BluetoothHeartRateDevice,
DeviceData,
} from "multidevice-bluetooth-heart-rate-monitor";
const monitor = new MultiDeviceBluetoothHeartRateMonitor();
const discoveredDevices: Map<string, BluetoothHeartRateDevice> = new Map();
monitor.on("data", (data: DeviceData) => {
console.log(
`Heart rate for device ${data.deviceId}: ${JSON.stringify(data)}`
);
});
monitor.on("deviceDiscovered", async (device: BluetoothHeartRateDevice) => {
if (discoveredDevices.has(device.getDeviceInfo().deviceId)) {
return;
}
discoveredDevices.set(device.getDeviceInfo().deviceId, device);
console.log(`Device discovered: ${device.getDeviceInfo().deviceId}`);
try {
setTimeout(async () => {
console.log("connecting to device...");
try {
await monitor.connectDevice(device);
} catch (error) {
console.error(error);
}
}, 10000);
} catch (error) {
console.error(error);
}
});
monitor.startScanning();
MultiDeviceBluetoothHeartRateMonitorThe main class for managing multiple heart rate monitor devices.
startScanning(): Start scanning for Bluetooth heart rate monitors.stopScanning(): Stop scanning for devices.getDiscoveredDevices(): Get an array of currently discovered devices.getConnectedDevices(): Get an array of currently connected devices.connectDevice(DeviceData): Connect a discovered device.disconnectDeviceId(deviceId): Disconnected a device by id.'deviceDiscovered': Emitted when a new device is discovered.'discoveredDeviceLost': Emitted when a discovered device isn't available anymore.'data': Emitted when heart rate data is received from a device.'deviceConnected': Emitted when a known device is reconnected.'deviceDisconnected': Emitted when a known device is reconnected.'scanStart': Emitted when scanning starts.'scanStop': Emitted when scanning stops.'error': Emitted when an error occurs.'adapterReady': Emitted when the bluetooth adapter is ready.BluetoothHeartRateDeviceRepresents a single Bluetooth heart rate monitor device.
getDeviceInfo(): Get information about the device.connect(): Connects to a device.disconnect(): Disconnect from the device.Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.