# Name of the plugin.
name=Trust Center Keepalive
category=Smart Energy

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

introducedIn=se-1.2b-15-0131-02

# Description of the plugin.
description=Ember implementation of Trust Center Keepalive for SE 1.2b  The plugin will periodically send keepalive signals to the trust center to verify that it is accessible.  If the trust center fails to acknowledge a series of keepalive signals, the plugin will search for another instance of the trust center on a different channel or short PAN ID.  The frequency with which the plugin sends the keepalive signals has a default, but is ultimately determined by the attributes on the Trust Center.  This plugin will periodically read the "TC Keep-Alive Base" and "TC Keep-Alive Jitter" to determine the rate that it will send future keepalives.  Trust Center Keepalive is part of the optional Trust Center Swap-Out feature of Smart Energy 1.1.  Devices are not required to implement this functionality.  The trust center does not send keepalives, so this plugin should be disabled if the device is acting as the trust center.

providedApis=tc-connectivity

# List of .c files that need to be compiled and linked in.
sourceFiles=trust-center-keepalive.c

# List of callbacks implemented by this plugin
implementedCallbacks=emberAfPluginTrustCenterKeepaliveInitCallback, emberAfTrustCenterKeepaliveAbortCallback, emberAfPluginTrustCenterKeepaliveStackStatusCallback, emberAfKeepaliveClusterClientDefaultResponseCallback

# Turn this on by default
includedByDefault=false

# Which clusters does it depend on
dependsOnClusterClient=
dependsOnClusterServer=

options=defaultBasePeriodMinutes, defaultJitterPeriodSeconds

defaultBasePeriodMinutes.name=Default Keepalive Base (in minutes)
defaultBasePeriodMinutes.description=If the device does not know the "TC Keep-Alive Base" attribute of the Trust Center (for example if a reboot has occurred), it will fall back on this value.
defaultBasePeriodMinutes.type=NUMBER:1,255
defaultBasePeriodMinutes.default=2

defaultJitterPeriodSeconds.name=Default Jitter Period (in seconds)
defaultJitterPeriodSeconds.description=If the device does not know the "TC Keep-Alive Jitter" attribute of the Trust Center (for example if a reboot has occurred), it will fall back on this value.
defaultJitterPeriodSeconds.type=NUMBER:0,512
defaultJitterPeriodSeconds.default=60

events=tick
tick.type=network
