Skip to content

Commit 2305728

Browse files
Thirsrinpull[bot]
authored andcommitted
wifi provisioning for efr32 in build command (#24036)
1 parent 0e4a757 commit 2305728

File tree

6 files changed

+111
-6
lines changed

6 files changed

+111
-6
lines changed

examples/light-switch-app/silabs/efr32/BUILD.gn

+20-1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ declare_args() {
6363

6464
# Argument to force enable WPA3 security
6565
rs91x_wpa3_only = false
66+
67+
#default WiFi SSID
68+
chip_default_wifi_ssid = ""
69+
70+
#default Wifi Password
71+
chip_default_wifi_psk = ""
6672
}
6773

6874
declare_args() {
@@ -90,8 +96,21 @@ if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" ||
9096
disable_lcd = true
9197
}
9298

99+
defines = []
100+
93101
# WiFi settings
94102
if (chip_enable_wifi) {
103+
if (chip_default_wifi_ssid != "") {
104+
defines += [
105+
"CHIP_ONNETWORK_PAIRING=1",
106+
"CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"",
107+
]
108+
}
109+
if (chip_default_wifi_psk != "") {
110+
assert(chip_default_wifi_ssid != "",
111+
"ssid can't be null if psk is provided")
112+
defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ]
113+
}
95114
wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
96115
efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
97116
if (lwip_ipv4) {
@@ -140,7 +159,7 @@ efr32_sdk("sdk") {
140159
"${examples_common_plat_dir}",
141160
]
142161

143-
defines = [
162+
defines += [
144163
"BOARD_ID=${silabs_board}",
145164
"OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}",
146165
]

examples/lighting-app/silabs/efr32/BUILD.gn

+20-1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ declare_args() {
6363

6464
# Argument to force enable WPA3 security on rs91x
6565
rs91x_wpa3_only = false
66+
67+
#default WiFi SSID
68+
chip_default_wifi_ssid = ""
69+
70+
#default Wifi Password
71+
chip_default_wifi_psk = ""
6672
}
6773

6874
declare_args() {
@@ -90,13 +96,26 @@ if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" ||
9096
disable_lcd = true
9197
}
9298

99+
defines = []
100+
93101
# WiFi settings
94102
if (chip_enable_wifi) {
95103
# disabling LCD for MG24 for wifi
96104
if (silabs_board == "BRD4186A" || silabs_board == "BRD4187A") {
97105
show_qr_code = false
98106
disable_lcd = true
99107
}
108+
if (chip_default_wifi_ssid != "") {
109+
defines += [
110+
"CHIP_ONNETWORK_PAIRING=1",
111+
"CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"",
112+
]
113+
}
114+
if (chip_default_wifi_psk != "") {
115+
assert(chip_default_wifi_ssid != "",
116+
"ssid can't be null if psk is provided")
117+
defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ]
118+
}
100119
wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
101120
efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
102121
if (lwip_ipv4) {
@@ -145,7 +164,7 @@ efr32_sdk("sdk") {
145164
"${examples_common_plat_dir}",
146165
]
147166

148-
defines = [
167+
defines += [
149168
"BOARD_ID=${silabs_board}",
150169
"OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}",
151170
]

examples/lock-app/silabs/efr32/BUILD.gn

+20-1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ declare_args() {
6363

6464
# Argument to force enable WPA3 security
6565
rs91x_wpa3_only = false
66+
67+
#default WiFi SSID
68+
chip_default_wifi_ssid = ""
69+
70+
#default Wifi Password
71+
chip_default_wifi_psk = ""
6672
}
6773

6874
declare_args() {
@@ -90,8 +96,21 @@ if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" ||
9096
disable_lcd = true
9197
}
9298

99+
defines = []
100+
93101
# WiFi settings
94102
if (chip_enable_wifi) {
103+
if (chip_default_wifi_ssid != "") {
104+
defines += [
105+
"CHIP_ONNETWORK_PAIRING=1",
106+
"CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"",
107+
]
108+
}
109+
if (chip_default_wifi_psk != "") {
110+
assert(chip_default_wifi_ssid != "",
111+
"ssid can't be null if psk is provided")
112+
defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ]
113+
}
95114
wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
96115
efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
97116
if (lwip_ipv4) {
@@ -140,7 +159,7 @@ efr32_sdk("sdk") {
140159
"${examples_common_plat_dir}",
141160
]
142161

143-
defines = [
162+
defines += [
144163
"BOARD_ID=${silabs_board}",
145164
"OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}",
146165
]

examples/thermostat/efr32/BUILD.gn

+20-1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@ declare_args() {
6161
# Argument to Disable IPv4 for wifi(rs911)
6262
chip_enable_wifi_ipv4 = false
6363

64+
#default WiFi SSID
65+
chip_default_wifi_ssid = ""
66+
67+
#default Wifi Password
68+
chip_default_wifi_psk = ""
69+
6470
# Enable the temperature sensor
6571
# Some boards do not have a temperature sensor
6672
use_temp_sensor = silabs_board != "BRD2703A" && silabs_board != "BRD4319A"
@@ -91,8 +97,21 @@ if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" ||
9197
disable_lcd = true
9298
}
9399

100+
defines = []
101+
94102
# WiFi settings
95103
if (chip_enable_wifi) {
104+
if (chip_default_wifi_ssid != "") {
105+
defines += [
106+
"CHIP_ONNETWORK_PAIRING=1",
107+
"CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"",
108+
]
109+
}
110+
if (chip_default_wifi_psk != "") {
111+
assert(chip_default_wifi_ssid != "",
112+
"ssid can't be null if psk is provided")
113+
defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ]
114+
}
96115
wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
97116
efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
98117
if (lwip_ipv4) {
@@ -141,7 +160,7 @@ efr32_sdk("sdk") {
141160
"${examples_common_plat_dir}",
142161
]
143162

144-
defines = [
163+
defines += [
145164
"BOARD_ID=${silabs_board}",
146165
"OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}",
147166
]

examples/window-app/silabs/efr32/BUILD.gn

+20-1
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ declare_args() {
5757

5858
# Argument to force enable WPA3 security
5959
rs91x_wpa3_only = false
60+
61+
#default WiFi SSID
62+
chip_default_wifi_ssid = ""
63+
64+
#default Wifi Password
65+
chip_default_wifi_psk = ""
6066
}
6167

6268
declare_args() {
@@ -84,13 +90,26 @@ if (silabs_board == "BRD4166A" || silabs_board == "BRD2601B" ||
8490
disable_lcd = true
8591
}
8692

93+
defines = []
94+
8795
# WiFi settings
8896
if (chip_enable_wifi) {
8997
# disabling LCD for MG24 for wifi
9098
if (silabs_board == "BRD4186C" || silabs_board == "BRD4187C") {
9199
show_qr_code = false
92100
disable_lcd = true
93101
}
102+
if (chip_default_wifi_ssid != "") {
103+
defines += [
104+
"CHIP_ONNETWORK_PAIRING=1",
105+
"CHIP_WIFI_SSID=\"${chip_default_wifi_ssid}\"",
106+
]
107+
}
108+
if (chip_default_wifi_psk != "") {
109+
assert(chip_default_wifi_ssid != "",
110+
"ssid can't be null if psk is provided")
111+
defines += [ "CHIP_WIFI_PSK=\"${chip_default_wifi_psk}\"" ]
112+
}
94113
wifi_sdk_dir = "${chip_root}/src/platform/silabs/EFR32/wifi"
95114
efr32_lwip_defs = [ "LWIP_NETIF_API=1" ]
96115
if (lwip_ipv4) {
@@ -139,7 +158,7 @@ efr32_sdk("sdk") {
139158
"${examples_common_plat_dir}",
140159
]
141160

142-
defines = [
161+
defines += [
143162
"BOARD_ID=${silabs_board}",
144163
"OTA_PERIODIC_TIMEOUT=${OTA_periodic_query_timeout}",
145164
]

src/platform/silabs/NetworkCommissioningWiFiDriver.cpp

+11-1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,16 @@ CHIP_ERROR SlWiFiDriver::Init(NetworkStatusChangeCallback * networkStatusChangeC
4343
mpScanCallback = nullptr;
4444
mpConnectCallback = nullptr;
4545

46+
#ifdef CHIP_ONNETWORK_PAIRING
47+
memcpy(&mSavedNetwork.ssid[0], CHIP_WIFI_SSID, sizeof(CHIP_WIFI_SSID));
48+
memcpy(&mSavedNetwork.credentials[0], CHIP_WIFI_PSK, sizeof(CHIP_WIFI_PSK));
49+
credentialsLen = sizeof(CHIP_WIFI_PSK);
50+
ssidLen = sizeof(CHIP_WIFI_SSID);
51+
mSavedNetwork.credentialsLen = credentialsLen;
52+
mSavedNetwork.ssidLen = ssidLen;
53+
mStagingNetwork = mSavedNetwork;
54+
err = CHIP_NO_ERROR;
55+
#else
4656
// If reading fails, wifi is not provisioned, no need to go further.
4757
err = SILABSConfig::ReadConfigValueStr(SILABSConfig::kConfigKey_WiFiSSID, mSavedNetwork.ssid, sizeof(mSavedNetwork.ssid),
4858
ssidLen);
@@ -55,7 +65,7 @@ CHIP_ERROR SlWiFiDriver::Init(NetworkStatusChangeCallback * networkStatusChangeC
5565
mSavedNetwork.credentialsLen = credentialsLen;
5666
mSavedNetwork.ssidLen = ssidLen;
5767
mStagingNetwork = mSavedNetwork;
58-
68+
#endif
5969
ConnectWiFiNetwork(mSavedNetwork.ssid, ssidLen, mSavedNetwork.credentials, credentialsLen);
6070
return err;
6171
}

0 commit comments

Comments
 (0)