1.1.5 • Published 9 months ago

multidevice-bluetooth-heart-rate-monitor v1.1.5

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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.

1.1.5

9 months ago

1.1.4

9 months ago

1.1.3

9 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.1

10 months ago

1.1.2

10 months ago

1.0.0

10 months ago

0.1.11

10 months ago

0.1.10

10 months ago

0.1.8

10 months ago

0.1.5

10 months ago

0.1.4

10 months ago

0.1.3

10 months ago

0.1.2

10 months ago