Skip to main content

Bluetooth device types

IntegratedDevices is the SDK's enum of recognized device keys. It is not, by itself, a promise that every advertised name in the enum has a decoder. Device matching and protocol decoding are separate: a name can be recognized for display while a connection still requires a protocol implementation.

Use the supported catalog first​

SUPPORTED_DEVICES contains ready-to-use declarations for catalog entries. Each entry has an acceptedDevices array for BTProvider. Some display entries have an empty array; do not present those entries as connectable.

import { SUPPORTED_DEVICES } from "@ovok/native/bt-device";

const selection = SUPPORTED_DEVICES.find(
(entry) => entry.id === selectedId,
);
const acceptedDevices = selection?.acceptedDevices ?? [];

The manager currently has built-in device classes for BP2, F4, OxySmart, Oxyfit, mySense, BC01, TAIDOC TD4216, GlucoCheck, BGM, and the three Veroval integrations: duo control, ECG, and activity. The catalog also includes ready-to-use standard GATT declarations for blood pressure, heart rate, pulse oximetry, temperature, and body weight profiles.

A standard GATT profile is a protocol declaration, not a wildcard. The declaration still needs the device's advertised name or service match. Use the catalog's accepted declarations so the profile, device match, and measurement metadata stay together.

Add a custom protocol​

When the SDK has no matching implementation, define a custom device and pass the resulting declaration alongside built-in entries. See Custom devices for the frame, field, checksum, and registration rules.

The declarative API supports service and characteristic matching, frame selection, result/stream/idle cases, validated measurement fields, optional static writes, and the specialized Lepu/Viatom declaration. A protocol that requires a handshake or command sequence outside those shapes needs an SDK driver.

See Supported devices, Bluetooth types, and the Bluetooth guide.