Supported devices and catalog
The device catalog is exported from @ovok/native and is the source of truth for the device-picker UI:
import {
SUPPORTED_ACCEPTED_DEVICES,
SUPPORTED_DEVICES,
Devices,
} from "@ovok/native";
Each display entry has the shape:
const device = {
name: "",
nameKey: "",
manufacturer: "",
manufacturerKey: "",
logo: "",
creditsForImage: "",
};
The joined SUPPORTED_DEVICES entries also include:
- id: stable catalog identifier;
- acceptedDevices: declarations ready for BTProvider.acceptedDevices;
- measurementTypes: the decoded Ovok measurement keys;
- manualUrl, when a manual is available.
Devices is the display metadata list. SUPPORTED_DEVICES is the joined list. The de-duplicated SUPPORTED_ACCEPTED_DEVICES list is useful for broad device discovery.
Current families represented
The source catalog covers:
- Viatom/Lepu blood-pressure declarations, including BP2 variants and the BP3 model vocabulary;
- Viatom/Lepu oximeters including O2Ring and Oxyfit model names;
- Viatom ER1, ER2, and ER3 ECG recorders and Lepod/LepodPro;
- Viatom F4/Lescale scales;
- Contec BC401/BC01;
- HARTMANN Veroval duo control, ECG, compact+ BPU26/BPW26, and Activity;
- boso medicus system;
- UEBE visomat comfort soft BT and cyclotest mySense;
- AOJ-20A thermometer;
- TaiDoc, GlucoCheck, Andesfit, FORA, cosinuss, Transtek, Pulmo80B, Lepu Le S5, AliveCor KardiaMobile, and TeleBGM entries;
- standard Bluetooth SIG blood-pressure, thermometer, weight-scale, pulse-oximeter, and heart-rate profiles.
The Lepu/Viatom vocabulary is deliberately exposed as exact advertisement names. The family name alone is not a reliable matcher because several names are prefixes of other models. Select the catalog entry instead of inventing a broad prefix matcher.
Localized labels
nameKey and manufacturerKey are translation keys. The catalog data is intentionally not translated in the SDK source. The host app's i18next resources must provide the keys for every locale it supports, with a fallback locale for missing keys.
The source also contains localized device-list labels used by the built-in device-list UI. Keep those keys aligned with the catalog when adding a new device.
Images and credits
Every catalog entry has an image value and a non-empty creditsForImage value. Some assets are bundled data URLs; others are official manufacturer URLs. The credit string is part of the public data and should be rendered in the device list or an accessible credits section.
Do not copy an image to a new page without copying its exact credit. Do not replace an official product image with a search-result thumbnail. When adding a device:
- verify the advertisement name and protocol;
- use an official image or an explicitly licensed bundled asset;
- add the exact source/credit string;
- add nameKey and manufacturerKey;
- add the ready-to-use declaration and measurement types;
- add a manual URL only when it is stable;
- test the device before calling it supported.
Catalog example
import { BTProvider, SUPPORTED_DEVICES } from "@ovok/native";
const bp2 = SUPPORTED_DEVICES.find((entry) => entry.id === "catalog-viatom-bp2");
export function CatalogBluetoothFlow() {
if (!bp2) {
return null;
}
return (
<BTProvider
bleManager={bleManager}
acceptedDevices={bp2.acceptedDevices}
onResult={handleResult}
>
<DeviceCard
titleKey={bp2.nameKey}
manufacturerKey={bp2.manufacturerKey}
imageUri={bp2.logo}
imageCredit={bp2.creditsForImage}
/>
</BTProvider>
);
}