| // Copyright 2019 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.sys; |
| |
| using fuchsia.bluetooth as bt; |
| |
| type TechnologyType = strict enum { |
| LOW_ENERGY = 1; |
| CLASSIC = 2; |
| DUAL_MODE = 3; |
| }; |
| |
| /// Maximum number of discovered services for each transport. Currently set to the number of valid |
| /// 16-bit handles or PSMs used to access services. |
| const MAX_PEER_SERVICES uint16 = 65535; |
| |
| /// Represents a remote BR/EDR, LE, or dual-mode BR/EDR/LE peer. |
| type Peer = table { |
| /// Uniquely identifies this peer on the current system. |
| /// |
| /// This field is always present. |
| 1: id bt.PeerId; |
| |
| /// Bluetooth device address that identifies this peer. Clients |
| /// should display this field to the user when `name` is not available. |
| /// |
| /// This field is always present. |
| /// |
| /// NOTE: Clients should use the `identifier` field to keep track of peers instead of their |
| /// address. |
| 2: address bt.Address; |
| |
| /// The Bluetooth technologies that are supported by this peer. |
| /// |
| /// This field is always present. |
| 3: technology TechnologyType; |
| |
| /// Whether or not a BR/EDR and/or LE connection exists to this peer. |
| /// |
| /// This field is always present. |
| 4: connected bool; |
| |
| /// Whether or not this peer is bonded. |
| /// |
| /// This field is always present. |
| 5: bonded bool; |
| |
| /// The name of the peer, if known. |
| 6: name bt.DeviceName; |
| |
| /// The LE appearance property. Present if this peer supports LE and the |
| /// appearance information was obtained over advertising and/or GATT. |
| 7: appearance bt.Appearance; |
| |
| /// The class of device for this device, if known. |
| 8: device_class bt.DeviceClass; |
| |
| /// The most recently obtained advertising signal strength for this peer. Present if known. |
| 9: rssi int8; |
| |
| /// The most recently obtained transmission power for this peer. Present if known. |
| 10: tx_power int8; |
| |
| /// The list of service UUIDs known to be available on this peer. |
| /// |
| /// This is a legacy field that should not be depended on for new code. |
| @deprecated |
| 11: services vector<bt.Uuid>:MAX_PEER_SERVICES; |
| |
| /// The list of service UUIDs known to be available on the LE transport. |
| /// |
| /// Never present if technology is CLASSIC. |
| 12: le_services vector<bt.Uuid>:MAX_PEER_SERVICES; |
| |
| /// The cached list of service UUIDs previously discovered on the BR/EDR transport. |
| /// Services are not removed if peer is disconnected if subsequent searches don't find them. |
| /// |
| /// Never present if technology is LOW_ENERGY. |
| /// |
| /// This is a legacy field that should not be depended on for new code. |
| @deprecated |
| 13: bredr_services vector<bt.Uuid>:MAX_PEER_SERVICES; |
| }; |