JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 2
  • Score
    100M100P100Q75834F
  • License MIT

A TypeScript library for managing multiple Bluetooth heart rate monitor devices

Package Exports

  • multidevice-bluetooth-heart-rate-monitor
  • multidevice-bluetooth-heart-rate-monitor/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (multidevice-bluetooth-heart-rate-monitor) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Multidevice Bluetooth Heart Rate Monitor

A TypeScript library for managing multiple Bluetooth heart rate monitor devices simultaneously.

Documentation: Documentation

This package is based on the following:

Features

  • Connect to multiple Bluetooth heart rate monitors
  • Real-time heart rate data streaming
  • Battery level monitoring (if supported by the device)
  • Automatic reconnection to known devices
  • Event-based architecture for easy integration

Installation

npm install multidevice-bluetooth-heart-rate-monitor

Usage

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();

API Reference

MultiDeviceBluetoothHeartRateMonitor

The main class for managing multiple heart rate monitor devices.

Methods

  • 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.

Events

  • '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.

BluetoothHeartRateDevice

Represents a single Bluetooth heart rate monitor device.

Methods

  • getDeviceInfo(): Get information about the device.
  • connect(): Connects to a device.
  • disconnect(): Disconnect from the device.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.