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.