Bluetooth device types
Understand integrated device keys, decodable protocols, standard profiles, and custom declarations.
- Stable unknown
- Release candidate since 1.16.1-rc.3
- Development since 1.16.1-dev.2111+9796905
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. It also has a class for Transtek's command protocol, shared by Transtek BPM, Transtek Scale, Transtek Scale 1525 and Transtek Tracker, which picks the A2 or A3 generation from the services the device exposes. The catalog also includes ready-to-use standard GATT declarations for blood pressure, blood glucose, heart rate, pulse oximetry, temperature, and body weight profiles. The glucose declaration (standardGlucoseDevice, Glucose Service 0x1808) asks the meter for its stored records once after connecting: every record, or only those after the newest one already read when the manager has a recordCursorStorage. It converts kg/L and mol/L concentrations to mg/dL with one decimal, keeps each record's own timestamp, and adds a GlucoseRecordDetails set (sequence number, reported unit, specimen, sample location, outOfRange and sensorStatus) to the reading. It withholds control-solution tests and records the meter flags as failed tests.
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.
Last updated on