blob: 2b139140540169fd4e1f9e8dbddebc6be9914ffa [file] [log] [blame]
// 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.lowpan;
protocol BeaconInfoStream {
/// Called to fetch the next set of received beacons.
///
/// The last set will have zero items. Once all received
/// beacons have been returned, this channel will close.
Next() -> (vector<BeaconInfo>:MAX_STREAM_SET_SIZE beacons) error Error;
};
/// Protocol for performing active network scans.
protocol NetworkScanner {
/// Sets which channels will be used for scanning.
///
/// If empty, all available channels will be scanned.
SetChannels(vector<uint16>:MAX_CHANNELS channel_indexes);
/// Gets the list of channels that will be scanned.
GetChannels() -> (vector<uint16>:MAX_CHANNELS channel_indexes);
/// Changes the transmit power (in dBm) to the
/// antenna for transmitting beacon requests.
///
/// Note that the actual transmit
/// power may differ in a way that is less than
/// the amount specified. Call `GetTxPower` to get
/// the actual transmit power.
SetTxPower(int32 power);
/// Gets the transmit power (in dBm) that will be
/// used for transmitting beacon requests.
GetTxPower() -> (int32 tx_power);
/// Starts a network scan operation.
///
/// If this method is called while a scan is in progress,
/// the error `INTERFACE_BUSY` will be returned by the
/// first call to `stream.Next()`.
StartScan(request<BeaconInfoStream> stream);
};