class Device

Defined at line 6773 of file fidling/gen/sdk/fidl/fuchsia.lowpan.device/fuchsia.lowpan.device/hlcpp/fuchsia/lowpan/device/cpp/fidl.h

LoWPAN Device Protocol.

This protocol provides clients with a way to control and

monitor the device.

Note that aspects of the device that deal with PII must

be monitored and controlled via the [`DeviceExtra`] protocol.

Public Methods

void ~Device ()
void ProvisionNetwork (::fuchsia::lowpan::device::ProvisioningParams params, ProvisionNetworkCallback callback)

Provision the interface for the network described by identity

and credential. This is similar to `JoinNetwork`, except that

(assuming the identity and credential are valid) it will (assuming

all preconditions are met) always succeed, even if there are no

peers nearby.

The following fields of `ProvisioningParams` MUST

be specified:

* `identity.raw_name`

* `identity.xpanid`

* `identity.panid`

* `identity.channel_index`

* `credential`

If any of the required fields are unspecified, the

channel will be closed with the epitaph `ZX_ERR_INVALID_ARGUMENT`.

Additionally, if the `identity.net_type` field is present

and does not match a network type supported by this device,

the channel will also be closed with the epitaph `ZX_ERR_NOT_SUPPORTED`.

This method returns once the device has been reconfigured successfully.

The resulting change in state can be monitored via `WatchDeviceState()`.

Any error that prevents the operation from completing successfully

will result in the protocol being closed.

void LeaveNetwork (LeaveNetworkCallback callback)

Bring down the network interface and forget

all non-volatile details about the current network.

Upon completion, all non-volatile and transient state

about the current network is cleared and the interface

will be offline.

Specifically, calling this method will cause the following

observable effects:

* `DeviceState.connectivity_state` will transition

to `State::OFFLINE`, assuming it wasn't in that state already.

* `DeviceExtra::WatchIdentity` will emit an empty `Identity`,

assuming it wasn't already empty.

If the interface was not previously provisioned,

calling this method does nothing.

void SetActive (bool active, SetActiveCallback callback)

Activate ("bring-up") or deactivate ("shut-down") the

network interface.

Note that simply setting this to `true` does not mean that

the network interface will necessarily become online and usable,

see the `connectivity_state` field of the [`DeviceState`] table for

more information.

This method returns once the operation has completed successfully.

The resulting change in state can be monitored via `WatchDeviceState()`.

Any error that prevents the operation from completing successfully

will result in the protocol being closed.

void GetSupportedNetworkTypes (GetSupportedNetworkTypesCallback callback)

Returns the types of networks supported by this interface.

LoWPAN devices typically only support a single network type,

but some devices may support more than one. Up to `MAX_NETWORK_TYPES`

network types may be returned.

void WatchDeviceState (WatchDeviceStateCallback callback)

Observes changes to the [`DeviceState`].

First call always returns a snapshot of the current state.

Subsequent calls will block until the state has changed

and returns the delta against the device's internal state.

Changes are not queued. The returned value always represents

the latest and most accurate state values, even if several changes

had happened in-between calls.