Skip to content

Commit b6c47f6

Browse files
[Silabs] Refactor Silabs Test Event Trigger impl to be compliant with its requirements (project-chip#32927)
* refactor test event trigger for efr32 hardware * remove 917 specific code * port test event trigger changes to 917 build.gn * clean up * Fix build and remove test key when not in debug build * add missing dependency * fix syncing typo
1 parent 981de99 commit b6c47f6

17 files changed

+200
-247
lines changed

examples/light-switch-app/silabs/openthread.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ openthread_external_platform =
2828
# ICD Default configurations
2929
chip_enable_icd_server = true
3030
chip_subscription_timeout_resumption = false
31-
sl_use_subscription_synching = true
31+
sl_use_subscription_syncing = true
3232

3333
# Openthread Configuration flags
3434
sl_ot_idle_interval_ms = 15000 # 15s Idle Intervals

examples/lit-icd-app/silabs/build_for_wifi_args.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ app_data_model = "${chip_root}/examples/lit-icd-app/lit-icd-common"
2626
# ICD Default configurations
2727
chip_enable_icd_server = true
2828
chip_subscription_timeout_resumption = false
29-
sl_use_subscription_synching = true
29+
sl_use_subscription_syncing = true
3030
icd_enforce_sit_slow_poll_limit = true
3131
chip_enable_icd_lit = true
3232

examples/lit-icd-app/silabs/openthread.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ openthread_external_platform =
2929
# ICD Default configurations
3030
chip_enable_icd_server = true
3131
chip_subscription_timeout_resumption = false
32-
sl_use_subscription_synching = true
32+
sl_use_subscription_syncing = true
3333
icd_enforce_sit_slow_poll_limit = true
3434
chip_icd_report_on_active_mode = true
3535
chip_enable_icd_lit = true

examples/lock-app/silabs/build_for_wifi_args.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ app_data_model = "${chip_root}/examples/lock-app/lock-common"
2424
# ICD Default configurations
2525
chip_enable_icd_server = true
2626
chip_subscription_timeout_resumption = false
27-
sl_use_subscription_synching = true
27+
sl_use_subscription_syncing = true
2828

2929
# ICD Matter Configuration flags
3030
sl_idle_mode_duration_s = 600 # 10min Idle Mode Duration

examples/lock-app/silabs/openthread.gni

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ openthread_external_platform =
2828
# ICD Default configurations
2929
chip_enable_icd_server = true
3030
chip_subscription_timeout_resumption = false
31-
sl_use_subscription_synching = true
31+
sl_use_subscription_syncing = true
3232

3333
# Openthread Configuration flags
3434
sl_ot_idle_interval_ms = 5000 # 5s Idle Intervals

examples/platform/silabs/MatterConfig.cpp

+7-25
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,13 @@ static chip::DeviceLayer::Internal::Efr32PsaOperationalKeystore gOperationalKeys
5454
#endif
5555

5656
#include "SilabsDeviceDataProvider.h"
57-
#include "SilabsTestEventTriggerDelegate.h"
5857
#include <app/InteractionModelEngine.h>
5958
#include <app/TimerDelegates.h>
6059

60+
#ifdef SL_MATTER_TEST_EVENT_TRIGGER_ENABLED
61+
#include "SilabsTestEventTriggerDelegate.h" // nogncheck
62+
#endif
63+
6164
#if CHIP_CONFIG_SYNCHRONOUS_REPORTS_ENABLED
6265
#include <app/reporting/SynchronizedReportSchedulerImpl.h>
6366
#else
@@ -219,12 +222,6 @@ void SilabsMatterConfig::ConnectivityEventCallback(const ChipDeviceEvent * event
219222
}
220223
}
221224

222-
#if SILABS_TEST_EVENT_TRIGGER_ENABLED
223-
static uint8_t sTestEventTriggerEnableKey[TestEventTriggerDelegate::kEnableKeyLength] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55,
224-
0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb,
225-
0xcc, 0xdd, 0xee, 0xff };
226-
#endif // SILABS_TEST_EVENT_TRIGGER_ENABLED
227-
228225
CHIP_ERROR SilabsMatterConfig::InitMatter(const char * appName)
229226
{
230227
CHIP_ERROR err;
@@ -283,18 +280,10 @@ CHIP_ERROR SilabsMatterConfig::InitMatter(const char * appName)
283280

284281
initParams.reportScheduler = &sReportScheduler;
285282

286-
#if SILABS_TEST_EVENT_TRIGGER_ENABLED
287-
if (Encoding::HexToBytes(SILABS_TEST_EVENT_TRIGGER_ENABLE_KEY, strlen(SILABS_TEST_EVENT_TRIGGER_ENABLE_KEY),
288-
sTestEventTriggerEnableKey,
289-
TestEventTriggerDelegate::kEnableKeyLength) != TestEventTriggerDelegate::kEnableKeyLength)
290-
{
291-
SILABS_LOG("Failed to convert the EnableKey string to octstr type value");
292-
memset(sTestEventTriggerEnableKey, 0, sizeof(sTestEventTriggerEnableKey));
293-
}
294-
// TODO(#31723): Show to customers that they can do `Server::GetInstance().GetTestEventTriggerDelegate().AddHandler()`
295-
static SilabsTestEventTriggerDelegate sTestEventTriggerDelegate{ ByteSpan(sTestEventTriggerEnableKey) };
283+
#ifdef SL_MATTER_TEST_EVENT_TRIGGER_ENABLED
284+
static SilabsTestEventTriggerDelegate sTestEventTriggerDelegate;
296285
initParams.testEventTriggerDelegate = &sTestEventTriggerDelegate;
297-
#endif // SILABS_TEST_EVENT_TRIGGER_ENABLED
286+
#endif // SL_MATTER_TEST_EVENT_TRIGGER_ENABLED
298287

299288
#if CHIP_CRYPTO_PLATFORM && !(defined(SLI_SI91X_MCU_INTERFACE))
300289
// When building with EFR32 crypto, use the opaque key store
@@ -303,13 +292,6 @@ CHIP_ERROR SilabsMatterConfig::InitMatter(const char * appName)
303292
initParams.operationalKeystore = &gOperationalKeystore;
304293
#endif
305294

306-
#ifdef PERFORMANCE_TEST_ENABLED
307-
// Set up Test Event Trigger command of the General Diagnostics cluster. Used only in performance testing
308-
// TODO(#31723): Show to customers that they can do `Server::GetInstance().GetTestEventTriggerDelegate().AddHandler()`
309-
static SilabsTestEventTriggerDelegate sTestEventTriggerDelegate{ ByteSpan(kTestEventTriggerEnableKey) };
310-
initParams.testEventTriggerDelegate = &sTestEventTriggerDelegate;
311-
#endif
312-
313295
// Initialize the remaining (not overridden) providers to the SDK example defaults
314296
(void) initParams.InitializeStaticResourcesBeforeServerInit();
315297

examples/platform/silabs/SiWx917/BUILD.gn

+35-16
Original file line numberDiff line numberDiff line change
@@ -34,21 +34,18 @@ declare_args() {
3434
# Argument to force enable WPA3 security on rs91x
3535
rs91x_wpa3_transition = true
3636

37-
# use commissionable data for SiWx917
38-
siwx917_commissionable_data = false
39-
4037
#default WiFi SSID
4138
chip_default_wifi_ssid = ""
4239

4340
#default Wifi Password
4441
chip_default_wifi_psk = ""
4542

4643
# Enable TestEventTrigger in GeneralDiagnostics cluster
47-
silabs_test_event_trigger_enabled = false
44+
sl_enable_test_event_trigger = false
4845

4946
# The EnableKey in hex string format used by TestEventTrigger command in
50-
# GeneralDiagnostics cluster. The length of the string should be 32.
51-
silabs_test_event_trigger_enable_key = "00112233445566778899aabbccddeeff"
47+
# GeneralDiagnostics cluster. The length of the string should be 16 bytes.
48+
sl_test_event_trigger_enable_key = "00112233445566778899AABBCCDDEEFF"
5249
}
5350

5451
# Sanity check
@@ -80,6 +77,30 @@ config("chip_examples_project_config") {
8077
]
8178
}
8279

80+
config("test-event-trigger-config") {
81+
defines = [ "SL_MATTER_TEST_EVENT_TRIGGER_ENABLED" ]
82+
83+
if (is_debug) {
84+
defines += [ "SL_MATTER_TEST_EVENT_TRIGGER_ENABLE_KEY=\"${sl_test_event_trigger_enable_key}\"" ]
85+
}
86+
}
87+
88+
source_set("test-event-trigger") {
89+
sources = [
90+
"${silabs_common_plat_dir}/SilabsTestEventTriggerDelegate.cpp",
91+
"${silabs_common_plat_dir}/SilabsTestEventTriggerDelegate.h",
92+
]
93+
94+
public_configs = [ ":test-event-trigger-config" ]
95+
96+
public_deps = [
97+
":silabs-factory-data-provider",
98+
"${chip_root}/src/app:test-event-trigger",
99+
"${chip_root}/src/lib/core",
100+
"${chip_root}/src/lib/support",
101+
]
102+
}
103+
83104
source_set("siwx917-matter-shell") {
84105
if (chip_build_libshell) {
85106
defines = [ "ENABLE_CHIP_SHELL" ]
@@ -129,6 +150,10 @@ source_set("silabs-factory-data-provider") {
129150
]
130151

131152
public_configs = [ ":siwx917-common-config" ]
153+
154+
if (sl_enable_test_event_trigger) {
155+
public_configs += [ ":test-event-trigger-config" ]
156+
}
132157
}
133158

134159
config("siwx917-common-config") {
@@ -152,10 +177,6 @@ config("siwx917-common-config") {
152177
defines += [ "HEAP_MONITORING" ]
153178
}
154179

155-
if (siwx917_commissionable_data) {
156-
defines += [ "SIWX917_USE_COMISSIONABLE_DATA=1" ]
157-
}
158-
159180
ldflags = [ "-Wl,--no-warn-rwx-segment" ]
160181
}
161182

@@ -274,18 +295,16 @@ source_set("siwx917-common") {
274295
public_deps += [ ":silabs-factory-data-provider" ]
275296
}
276297

277-
if (silabs_test_event_trigger_enabled) {
278-
sources +=
279-
[ "${silabs_common_plat_dir}/SilabsTestEventTriggerDelegate.cpp" ]
280-
defines += [ "SILABS_TEST_EVENT_TRIGGER_ENABLE_KEY=\"${silabs_test_event_trigger_enable_key}\"" ]
281-
}
282-
283298
public_deps += [
284299
"${chip_root}/examples/providers:device_info_provider",
285300
"${chip_root}/src/lib",
286301
"${chip_root}/src/setup_payload",
287302
]
288303

304+
if (sl_enable_test_event_trigger) {
305+
public_deps += [ ":test-event-trigger" ]
306+
}
307+
289308
if (app_data_model != "") {
290309
public_deps += [ app_data_model ]
291310
}

0 commit comments

Comments
 (0)