Skip to content

Commit 5ed409a

Browse files
committed
Silicon Labs Matter Extension v2.6.0
1 parent 33ed50a commit 5ed409a

File tree

2,936 files changed

+87677
-1417542
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,936 files changed

+87677
-1417542
lines changed

Jenkinsfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def pipeline()
2828
// export the NFS overlay
2929
sh 'sudo exportfs -af'
3030
}
31+
pipelineFunctions.runScript()
3132
}
3233
}
3334

examples/dishwasher-app/silabs/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ An example showing the use of Matter on the Silicon Labs EFR32 MG24 boards.
2222
## Introduction
2323

2424
The Silabs dishwasher example provides a baseline demonstration of a dishwasher
25-
control device, built using Matter and the Silicon Labs gecko SDK. It can be
25+
control device, built using Matter and the Silicon Labs simplicity SDK. It can be
2626
controlled by a Chip controller over an Openthread or Wifi network..
2727

2828
The Silabs device can be commissioned over Bluetooth Low Energy where the device

examples/dishwasher-app/silabs/include/AppConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
#define APP_TASK_NAME "DishWasher"
2727

28-
#define BLE_DEV_NAME "SL-Dishwasher"
28+
#define BLE_DEV_NAME "SL-" APP_TASK_NAME
2929

3030
// Time it takes in ms for the simulated actuator to move from one
3131
// state to another.

examples/dishwasher-app/silabs/include/AppTask.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@
3131
#include "DishwasherManager.h"
3232
#include "FreeRTOS.h"
3333
#include "timers.h" // provides FreeRTOS timer support
34-
#include <ble/BLEEndPoint.h>
3534
#include <app/clusters/operational-state-server/operational-state-server.h>
36-
#include <lib/core/ClusterEnums.h>
35+
#include <ble/BLEEndPoint.h>
3736
#include <lib/core/CHIPError.h>
37+
#include <lib/core/ClusterEnums.h>
3838
#include <platform/CHIPDeviceLayer.h>
3939

4040
/**********************************************************
@@ -84,11 +84,11 @@ class AppTask : public BaseApplication
8484
private:
8585
static AppTask sAppTask;
8686
/**
87-
* @brief AppTask initialisation function
87+
* @brief Override of BaseApplication::AppInit() virtual method, called by BaseApplication::Init()
8888
*
8989
* @return CHIP_ERROR
9090
*/
91-
CHIP_ERROR Init();
91+
CHIP_ERROR AppInit() override;
9292

9393
/**
9494
* @brief PB0 Button event processing function
@@ -104,7 +104,7 @@ class AppTask : public BaseApplication
104104
* Function triggers a switch action sent to the CHIP task
105105
*
106106
* @param aEvent button event being processed
107-
*/
107+
*/
108108
static void DishwasherActionEventHandler(AppEvent * aEvent);
109109

110110
static void ActionInitiated(OperationalStateEnum action);

examples/dishwasher-app/silabs/src/AppTask.cpp

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
#include "AppEvent.h"
2323
#include "operational-state-delegate-impl.h"
2424

25+
#include <app-common/zap-generated/attribute-type.h>
26+
#include <app-common/zap-generated/ids/Attributes.h>
2527
#include <app/server/OnboardingCodesUtil.h>
2628
#include <app/server/Server.h>
2729
#include <app/util/attribute-storage.h>
28-
#include <app-common/zap-generated/ids/Attributes.h>
29-
#include <app-common/zap-generated/attribute-type.h>
3030

3131
#include <assert.h>
3232

@@ -52,22 +52,11 @@ using namespace ::chip::DeviceLayer;
5252

5353
AppTask AppTask::sAppTask;
5454

55-
CHIP_ERROR AppTask::Init()
55+
CHIP_ERROR AppTask::AppInit()
5656
{
5757
CHIP_ERROR err = CHIP_NO_ERROR;
5858
chip::DeviceLayer::Silabs::GetPlatform().SetButtonsCb(AppTask::ButtonEventHandler);
5959

60-
#ifdef DISPLAY_ENABLED
61-
GetLCD().Init((uint8_t *) "Dishwasher-App");
62-
#endif
63-
64-
err = BaseApplication::Init();
65-
if (err != CHIP_NO_ERROR)
66-
{
67-
SILABS_LOG("BaseApplication::Init() failed");
68-
appError(err);
69-
}
70-
7160
err = DishwasherMgr().Init();
7261
if (err != CHIP_NO_ERROR)
7362
{
@@ -179,7 +168,7 @@ void AppTask::ActionInitiated(OperationalStateEnum action)
179168
}
180169
else
181170
{
182-
SILABS_LOG("Action error");
171+
SILABS_LOG("Action error");
183172
action = OperationalStateEnum::kError;
184173
}
185174

@@ -193,7 +182,7 @@ void AppTask::ActionInitiated(OperationalStateEnum action)
193182
else
194183
{
195184
DishwasherMgr().UpdateOperationState(action);
196-
}
185+
}
197186
}
198187

199188
void AppTask::ActionCompleted()

examples/fan-control-app/silabs/include/AppConfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
#define APP_TASK_NAME "Fan"
2727

28-
#define BLE_DEV_NAME "SiLabs-Fan"
28+
#define BLE_DEV_NAME "SL-" APP_TASK_NAME
2929

3030
// Time it takes in ms for the simulated actuator to move from one
3131
// state to another.

examples/fan-control-app/silabs/include/AppTask.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,12 @@ class AppTask : public BaseApplication
8080
void UpdateFanControlUI();
8181

8282
private:
83-
8483
/**
85-
* @brief AppTask initialisation function
84+
* @brief Override of BaseApplication::AppInit() virtual method, called by BaseApplication::Init()
8685
*
8786
* @return CHIP_ERROR
8887
*/
89-
CHIP_ERROR Init();
88+
CHIP_ERROR AppInit() override;
9089

9190
static AppTask sAppTask;
9291

@@ -100,5 +99,4 @@ class AppTask : public BaseApplication
10099
* @param aEvent button event being processed
101100
*/
102101
static void ButtonHandler(AppEvent * aEvent);
103-
104102
};

examples/fan-control-app/silabs/src/AppTask.cpp

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,23 +67,15 @@ using namespace chip::app::Clusters;
6767
AppTask AppTask::sAppTask;
6868

6969

70-
CHIP_ERROR AppTask::Init()
70+
CHIP_ERROR AppTask::AppInit()
7171
{
7272
CHIP_ERROR err = CHIP_NO_ERROR;
7373
chip::DeviceLayer::Silabs::GetPlatform().SetButtonsCb(AppTask::ButtonEventHandler);
7474

7575
#ifdef DISPLAY_ENABLED
76-
GetLCD().Init((uint8_t *) "Fan-App");
7776
GetLCD().SetCustomUI(FanControlUI::DrawUI);
7877
#endif
7978

80-
err = BaseApplication::Init();
81-
if (err != CHIP_NO_ERROR)
82-
{
83-
ChipLogError(AppServer, "BaseApplication::Init() failed");
84-
appError(err);
85-
}
86-
8779
err = FanControlMgr().Init();
8880
if (err != CHIP_NO_ERROR)
8981
{

examples/multi-sensor-app/data_model/multi-sensor-wifi-app.matter

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1568,6 +1568,104 @@ cluster UserLabel = 65 {
15681568
readonly attribute int16u clusterRevision = 65533;
15691569
}
15701570

1571+
/** Allows servers to ensure that listed clients are notified when a server is available for communication. */
1572+
cluster IcdManagement = 70 {
1573+
revision 3;
1574+
1575+
enum ClientTypeEnum : enum8 {
1576+
kPermanent = 0;
1577+
kEphemeral = 1;
1578+
}
1579+
1580+
enum OperatingModeEnum : enum8 {
1581+
kSIT = 0;
1582+
kLIT = 1;
1583+
}
1584+
1585+
bitmap Feature : bitmap32 {
1586+
kCheckInProtocolSupport = 0x1;
1587+
kUserActiveModeTrigger = 0x2;
1588+
kLongIdleTimeSupport = 0x4;
1589+
kDynamicSitLitSupport = 0x8;
1590+
}
1591+
1592+
bitmap UserActiveModeTriggerBitmap : bitmap32 {
1593+
kPowerCycle = 0x1;
1594+
kSettingsMenu = 0x2;
1595+
kCustomInstruction = 0x4;
1596+
kDeviceManual = 0x8;
1597+
kActuateSensor = 0x10;
1598+
kActuateSensorSeconds = 0x20;
1599+
kActuateSensorTimes = 0x40;
1600+
kActuateSensorLightsBlink = 0x80;
1601+
kResetButton = 0x100;
1602+
kResetButtonLightsBlink = 0x200;
1603+
kResetButtonSeconds = 0x400;
1604+
kResetButtonTimes = 0x800;
1605+
kSetupButton = 0x1000;
1606+
kSetupButtonSeconds = 0x2000;
1607+
kSetupButtonLightsBlink = 0x4000;
1608+
kSetupButtonTimes = 0x8000;
1609+
kAppDefinedButton = 0x10000;
1610+
}
1611+
1612+
fabric_scoped struct MonitoringRegistrationStruct {
1613+
fabric_sensitive node_id checkInNodeID = 1;
1614+
fabric_sensitive int64u monitoredSubject = 2;
1615+
fabric_sensitive ClientTypeEnum clientType = 4;
1616+
fabric_idx fabricIndex = 254;
1617+
}
1618+
1619+
readonly attribute int32u idleModeDuration = 0;
1620+
readonly attribute int32u activeModeDuration = 1;
1621+
readonly attribute int16u activeModeThreshold = 2;
1622+
readonly attribute access(read: administer) optional MonitoringRegistrationStruct registeredClients[] = 3;
1623+
readonly attribute access(read: administer) optional int32u ICDCounter = 4;
1624+
readonly attribute optional int16u clientsSupportedPerFabric = 5;
1625+
provisional readonly attribute optional UserActiveModeTriggerBitmap userActiveModeTriggerHint = 6;
1626+
provisional readonly attribute optional char_string<128> userActiveModeTriggerInstruction = 7;
1627+
provisional readonly attribute optional OperatingModeEnum operatingMode = 8;
1628+
provisional readonly attribute optional int32u maximumCheckInBackOff = 9;
1629+
readonly attribute command_id generatedCommandList[] = 65528;
1630+
readonly attribute command_id acceptedCommandList[] = 65529;
1631+
readonly attribute event_id eventList[] = 65530;
1632+
readonly attribute attrib_id attributeList[] = 65531;
1633+
readonly attribute bitmap32 featureMap = 65532;
1634+
readonly attribute int16u clusterRevision = 65533;
1635+
1636+
request struct RegisterClientRequest {
1637+
node_id checkInNodeID = 0;
1638+
int64u monitoredSubject = 1;
1639+
octet_string<16> key = 2;
1640+
optional octet_string<16> verificationKey = 3;
1641+
ClientTypeEnum clientType = 4;
1642+
}
1643+
1644+
response struct RegisterClientResponse = 1 {
1645+
int32u ICDCounter = 0;
1646+
}
1647+
1648+
request struct UnregisterClientRequest {
1649+
node_id checkInNodeID = 0;
1650+
optional octet_string<16> verificationKey = 1;
1651+
}
1652+
1653+
request struct StayActiveRequestRequest {
1654+
int32u stayActiveDuration = 0;
1655+
}
1656+
1657+
response struct StayActiveResponse = 4 {
1658+
int32u promisedActiveDuration = 0;
1659+
}
1660+
1661+
/** Register a client to the end device */
1662+
fabric command access(invoke: manage) RegisterClient(RegisterClientRequest): RegisterClientResponse = 0;
1663+
/** Unregister a client from an end device */
1664+
fabric command access(invoke: manage) UnregisterClient(UnregisterClientRequest): DefaultSuccess = 2;
1665+
/** Request the end device to stay in Active Mode for an additional ActiveModeThreshold */
1666+
command access(invoke: manage) StayActiveRequest(StayActiveRequestRequest): StayActiveResponse = 3;
1667+
}
1668+
15711669
/** Attributes and commands for configuring the measurement of temperature, and reporting temperature measurements. */
15721670
cluster TemperatureMeasurement = 1026 {
15731671
revision 1; // NOTE: Default/not specifically set
@@ -1895,6 +1993,14 @@ endpoint 0 {
18951993
ram attribute featureMap default = 0;
18961994
ram attribute clusterRevision default = 1;
18971995
}
1996+
1997+
server cluster IcdManagement {
1998+
callback attribute idleModeDuration;
1999+
callback attribute activeModeDuration;
2000+
callback attribute activeModeThreshold;
2001+
ram attribute featureMap default = 0x0000;
2002+
ram attribute clusterRevision default = 3;
2003+
}
18982004
}
18992005
endpoint 1 {
19002006
device type ma_occupancysensor = 263, version 1;

examples/multi-sensor-app/data_model/multi-sensor-wifi-app.zap

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2756,6 +2756,96 @@
27562756
"reportableChange": 0
27572757
}
27582758
]
2759+
},
2760+
{
2761+
"name": "ICD Management",
2762+
"code": 70,
2763+
"mfgCode": null,
2764+
"define": "ICD_MANAGEMENT_CLUSTER",
2765+
"side": "server",
2766+
"enabled": 1,
2767+
"attributes": [
2768+
{
2769+
"name": "IdleModeDuration",
2770+
"code": 0,
2771+
"mfgCode": null,
2772+
"side": "server",
2773+
"type": "int32u",
2774+
"included": 1,
2775+
"storageOption": "External",
2776+
"singleton": 0,
2777+
"bounded": 0,
2778+
"defaultValue": null,
2779+
"reportable": 1,
2780+
"minInterval": 1,
2781+
"maxInterval": 65534,
2782+
"reportableChange": 0
2783+
},
2784+
{
2785+
"name": "ActiveModeDuration",
2786+
"code": 1,
2787+
"mfgCode": null,
2788+
"side": "server",
2789+
"type": "int32u",
2790+
"included": 1,
2791+
"storageOption": "External",
2792+
"singleton": 0,
2793+
"bounded": 0,
2794+
"defaultValue": null,
2795+
"reportable": 1,
2796+
"minInterval": 1,
2797+
"maxInterval": 65534,
2798+
"reportableChange": 0
2799+
},
2800+
{
2801+
"name": "ActiveModeThreshold",
2802+
"code": 2,
2803+
"mfgCode": null,
2804+
"side": "server",
2805+
"type": "int16u",
2806+
"included": 1,
2807+
"storageOption": "External",
2808+
"singleton": 0,
2809+
"bounded": 0,
2810+
"defaultValue": null,
2811+
"reportable": 1,
2812+
"minInterval": 1,
2813+
"maxInterval": 65534,
2814+
"reportableChange": 0
2815+
},
2816+
{
2817+
"name": "FeatureMap",
2818+
"code": 65532,
2819+
"mfgCode": null,
2820+
"side": "server",
2821+
"type": "bitmap32",
2822+
"included": 1,
2823+
"storageOption": "RAM",
2824+
"singleton": 0,
2825+
"bounded": 0,
2826+
"defaultValue": "0x0000",
2827+
"reportable": 1,
2828+
"minInterval": 1,
2829+
"maxInterval": 65534,
2830+
"reportableChange": 0
2831+
},
2832+
{
2833+
"name": "ClusterRevision",
2834+
"code": 65533,
2835+
"mfgCode": null,
2836+
"side": "server",
2837+
"type": "int16u",
2838+
"included": 1,
2839+
"storageOption": "RAM",
2840+
"singleton": 0,
2841+
"bounded": 0,
2842+
"defaultValue": "3",
2843+
"reportable": 1,
2844+
"minInterval": 1,
2845+
"maxInterval": 65534,
2846+
"reportableChange": 0
2847+
}
2848+
]
27592849
}
27602850
]
27612851
},

0 commit comments

Comments
 (0)