Intermittently Connected Devices are devices in a network that do not always need to be active. Matter has defined a cluster that helps capture this behavior; this configuration is ideal for devices that need to operate with low power consumption or do not have a need to always be on the network. Matter examples on the TI CC13x4_CC26x4 platform can be configured to act as ICDs.
To configure a TI example as an ICD, open up the args.gni
file of the example
and set the following parameter to true:
chip_enable_icd_server = true
TI examples have only been tested with the ICD Server configuration. To enable
the client configuration, set chip_enable_icd_client
to true.
Persistent subscriptions allow devices to attempt resuming existing subscriptions following a device reset. To enable persistent subscriptions, set the following parameter to true:
chip_persist_subscriptions = true
Subscription timeout resumption allows devices to attempt re-establishing subscriptions that may have expired. This feature is disabled out of box.
In addition, various ICD parameters such as idle/active mode duration, active
mode threshold, and polling intervals can be configured in
src/platform/cc13xx_26xx/cc13x4_26x4/CHIPPlatformConfig.h
#define CHIP_CONFIG_ICD_ACTIVE_MODE_DURATION_MS 1000
#define CHIP_CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS 500
#define CHIP_CONFIG_ICD_IDLE_MODE_DURATION_SEC 300
#define CHIP_DEVICE_CONFIG_ICD_SLOW_POLL_INTERVAL chip::System::Clock::Milliseconds32(5000)
#define CHIP_DEVICE_CONFIG_ICD_FAST_POLL_INTERVAL chip::System::Clock::Milliseconds32(100)
Open up the ZAP file (in examples/<example-name>/<example-name>-common
) for
the example being configured as an ICD. Add the ICD Management Cluster for
Endpoint 0.
Open up the .matter file (in examples/<example-name>/<example-name>-common
)
corresponding to the example and add in the ICDManagement cluster.
In addition, each endpoint has a list of clusters that it supports. Add the ICDManagement cluster to this list.
The lock-app example's .matter file can be used as a reference. These additions allow the ICDManagement cluster's callbacks to be accessed.