// Copyright 2017 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.le;
|
|
using fuchsia.bluetooth;
|
|
[Discoverable]
|
interface Peripheral {
|
// Starts sending advertisements based on the given parameters.
|
// - |advertising_data|: The advertising data that should be included in the payload.
|
// - |scan_result|: The scan result that will be returned when the advertisement is
|
// scanned. Setting this will mark the advertisement set as scannable.
|
// - |connectable|: when true, this advertisement will be marked as connectable.
|
// NOTE: connections can be made to a GATT server even if this is not set.
|
// - |interval_ms|: The requested interval to advertise this set at in milliseconds.
|
// minimum 20, maximum 10,000,000 (almost 3 hours). A reasonable
|
// default is 1 second (1000).
|
// - |anonymous|: if true, the address of this device will not be included
|
//
|
// If the |tx_power_level| is set in either AdvertisingData, it will be replaced with
|
// the actual TX Power level reported by the adapter, or included in the extended header
|
// of the Advertising PDU to save advertising space.
|
//
|
// If |scan_result| and |advertising_data| are both set, legacy advertising will be used,
|
// which limits the size of the advertising data.
|
//
|
// This request will fail if:
|
// - The |service_uuids| field of |advertising_data| contains a UUID that does not match
|
// a GATT service that was previously registered by this application;
|
// - If the provided advertising data cannot fit within the advertising payload MTU that
|
// is supported on the current platform and parameters.
|
// - If |anonymous| advertising is requested but the controller cannot support it.
|
1: StartAdvertising(AdvertisingData advertising_data, AdvertisingData? scan_result,
|
bool connectable, uint32 interval_ms, bool anonymous)
|
-> (fuchsia.bluetooth.Status status, string? advertisement_id);
|
|
// Stop a an advertising session that was previously started by this application.
|
2: StopAdvertising(string advertisement_id) -> (fuchsia.bluetooth.Status status);
|
|
// Called when a remote central device has connected to a connectable advertisement.
|
// Provides a GATT client handle which can be used to interact with GATT service
|
// on the central device.
|
//
|
// When this is called, the Advertisement will have stopped, and StartAdvertising
|
// should be called again to re-start advertising when the peripheral can accept
|
// another connection.
|
//
|
// Note: Centrals can connect to the local device and interact with the GATT server
|
// from an application without Peripheral.StartAdvertising() being called.
|
101: -> OnCentralConnected(string advertisement_id, RemoteDevice central);
|
|
// Called when a remote central previously connected to this application is disconnected.
|
102: -> OnCentralDisconnected(string device_id);
|
};
|