blob: 34dbc36aec06f5185d26b75d93fb319d2fa036ef [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library fuchsia.bluetooth.control;
using fuchsia.bluetooth;
/// Possible values for the LE Appearance property which describes the external
/// appearance of a
/// device at a high level.
/// (See the Bluetooth assigned-numbers document:
/// https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.characteristic.gap.appearance.xml)
enum Appearance : uint16 {
UNKNOWN = 0;
PHONE = 64;
COMPUTER = 128;
WATCH = 192;
WATCH_SPORTS = 193;
CLOCK = 256;
DISPLAY = 320;
REMOTE_CONTROL = 384;
EYE_GLASSES = 448;
TAG = 512;
KEYRING = 576;
MEDIA_PLAYER = 640;
BARCODE_SCANNER = 704;
THERMOMETER = 768;
THERMOMETER_EAR = 769;
HEART_RATE_SENSOR = 832;
HEART_RATE_SENSOR_BELT = 833;
BLOOD_PRESSURE = 896;
BLOOD_PRESSURE_ARM = 897;
BLOOD_PRESSURE_WRIST = 898;
HID = 960;
HID_KEYBOARD = 961;
HID_MOUSE = 962;
HID_JOYSTICK = 963;
HID_GAMEPAD = 964;
HID_DIGITIZER_TABLET = 965;
HID_CARD_READER = 966;
HID_DIGITAL_PEN = 967;
HID_BARCODE_SCANNER = 968;
GLUCOSE_METER = 1024;
RUNNING_WALKING_SENSOR = 1088;
RUNNING_WALKING_SENSOR_IN_SHOE = 1089;
RUNNING_WALKING_SENSOR_ON_SHOE = 1090;
RUNNING_WALKING_SENSOR_ON_HIP = 1091;
CYCLING = 1152;
CYCLING_COMPUTER = 1153;
CYCLING_SPEED_SENSOR = 1154;
CYCLING_CADENCE_SENSOR = 1155;
CYCLING_POWER_SENSOR = 1156;
CYCLING_SPEED_AND_CADENCE_SENSOR = 1157;
PULSE_OXIMETER = 3136;
PULSE_OXIMETER_FINGERTIP = 3137;
PULSE_OXIMETER_WRIST = 3138;
WEIGHT_SCALE = 3200;
PERSONAL_MOBILITY = 3264;
PERSONAL_MOBILITY_WHEELCHAIR = 3265;
PERSONAL_MOBILITY_SCOOTER = 3266;
GLUCOSE_MONITOR = 3328;
SPORTS_ACTIVITY = 5184;
SPORTS_ACTIVITY_LOCATION_DISPLAY = 5185;
SPORTS_ACTIVITY_LOCATION_AND_NAV_DISPLAY = 5186;
SPORTS_ACTIVITY_LOCATION_POD = 5187;
SPORTS_ACTIVITY_LOCATION_AND_NAV_POD = 5188;
};
enum TechnologyType {
LOW_ENERGY = 0;
CLASSIC = 1;
DUAL_MODE = 2;
};
/// Represents a remote BR/EDR, LE, or dual-mode BR/EDR/LE device.
struct RemoteDevice {
/// Uniquely identifies this device on the current system.
string identifier;
/// Bluetooth device address that identifies this remote device. Clients
/// should display this field to the user when `name` is not available.
///
/// NOTE: Clients should use the `identifier` field to distinguish between
/// remote devices instead of using their address.
string address;
/// The Bluetooth technologies that are supported by this device.
TechnologyType technology;
/// The name of the remote device if present or known.
string? name;
/// The LE appearance property. Present if this is a LE device and the
/// appearance information was obtained over advertising and/or GATT.
Appearance appearance;
/// The most recently obtained advertising signal strength for this device.
fuchsia.bluetooth.Int8? rssi;
/// The most recently obtained transmission power for this device.
fuchsia.bluetooth.Int8? tx_power;
/// Whether or not a BR/EDR and/or LE connection exists between the local
/// adapter and this device.
bool connected;
/// Whether or not a bond exists between the local adapter and this device.
bool bonded;
/// The list of service UUIDs known to be published on this remote device.
vector<string> service_uuids;
};