# Name of the plugin.
name=Network Find
category=Network Form and Join

# Any string is allowable here.  Generally it is either: Production Ready, Test Tool, or Requires Extending
qualityString=Deprecated
# This must be one of the following:  productionReady, testTool, extensionNeeded
quality=production

introducedIn=

# Description of the plugin.
description=(NOTE: This plugin is deprecated as it is not compliant to zigbee 3.0 requirements. See Network Creator and Network Steering plugins instead of zigbee 3.0-compliant implementations of this behavior.) Provides legacy Zigbee Home Automation (pre-3.0) implementation of routines for finding and joining any viable network via scanning, rather than joining a specific network. If you are planning to deploy your application in an environment where there are potentially lots of open networks you may wish to implement a mechanism for network blacklisting. Network blacklisting may be accomplished by implementing the emberAfPluginNetworkFindJoinCallback. To extend the functionality to sub-GHz channels, please also enable the Network Find (Sub-GHz) plugin.

# List of .c files that need to be compiled and linked in.
sourceFiles=network-find.c, network-find-cli.c

# List of callbacks implemented by this plugin
implementedCallbacks=emberAfPluginNetworkFindInitCallback,emberAfPluginNetworkFindStackStatusCallback,emberAfUnusedPanIdFoundCallback,emberAfPluginFormAndJoinUnusedPanIdFoundCallback,emberAfPluginFormAndJoinNetworkFoundCallback,emberAfScanErrorCallback,emberAfFindUnusedPanIdAndFormCallback,emberAfStartSearchForJoinableNetworkCallback,emberAfGetFormAndJoinExtendedPanIdCallback,emberAfSetFormAndJoinExtendedPanIdCallback

requiredPlugins=form-and-join

additionalMacros=EMBER_AF_DISABLE_FORM_AND_JOIN_TICK

options=channelMask,enableAllChannels,cutOffValue,radioTxPower,radioTxCallback,extendedPanId,duration,joinableScanTimeoutMinutes

channelMask.name=Channel mask
channelMask.description=The channels that the plugin will preferentially scan when forming and joining.
channelMask.type=CHANNELS
channelMask.default=0x0318C800UL

enableAllChannels.name=Enable scanning all channels
enableAllChannels.description=Enable scanning all channels when forming and joining if none of the preferred channels are found suitable. Use emberAfPluginNetworkFindGetEnableScanningAllChannelsCallback() to override this option.
enableAllChannels.type=BOOLEAN
enableAllChannels.default=conf.evaluateToken("SmartEnergySecurity") ? true : false

cutOffValue.name=Cut-off value (dBm)
cutOffValue.description=The maximum noise allowed on a channel to consider for forming a network. If the noise on all preferred channels is above this limit and "Enable scanning all channels" is ticked, the scan continues on all channels. Use emberAfPluginNetworkFindGetEnergyThresholdForChannelCallback() to override this value.
cutOffValue.type=NUMBER:-128,127
cutOffValue.default=-48

radioTxPower.name=Radio output power
radioTxPower.description=The radio output power (in dBm) at which the node will operate. Enabling getting the power from a callback overrides this option.
radioTxPower.type=POWER
radioTxPower.default=3

radioTxCallback.name=Get radio output power from callback
radioTxCallback.description=Use a tx power callback to determine radio tx power.
radioTxCallback.type=BOOLEAN
radioTxCallback.default=false

extendedPanId.name=Extended PAN ID
extendedPanId.description=The extended PAN ID to use when forming or joining networks.  If the extended PAN ID is set to all zeros, a random value will be used when forming and any network will be considered when joining.
extendedPanId.type=EUI64
extendedPanId.default=00 00 00 00 00 00 00 00

duration.name=Scan duration exponent
duration.description=The exponent of the number of scan periods, where a scan period is 960 symbols, and a symbol is 16 miscroseconds.  The scan will occur for ((2^duration) + 1) scan periods.
duration.type=NUMBER:0,14
duration.default=5

joinableScanTimeoutMinutes.name=Joinable scan timeout (minutes)
joinableScanTimeoutMinutes.description=The amount of time (in minutes) that the plugin will wait during a joinable network scan for the application to determine if the network joined to by the plugin is correct.  If the application leaves the network during this time, the plugin will automatically continue searching for other joinable networks.  If set to zero, the application will be unable to resume a joinable network search after successfully joining to a network.
joinableScanTimeoutMinutes.type=NUMBER:0,5
joinableScanTimeoutMinutes.default=1

events=tick
