Skip to content

Commit 03702d4

Browse files
bzbarsky-applepull[bot]
authored andcommitted
Fix network commissioning setup for linux lighting-app. (#26904)
1 parent e80a8f5 commit 03702d4

File tree

1 file changed

+79
-6
lines changed

1 file changed

+79
-6
lines changed

examples/lighting-app/linux/main.cpp

+79-6
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,17 @@
2525
#include <app/clusters/network-commissioning/network-commissioning.h>
2626
#include <app/server/Server.h>
2727
#include <lib/support/logging/CHIPLogging.h>
28+
29+
#if CHIP_DEVICE_LAYER_TARGET_DARWIN
30+
#include <platform/Darwin/NetworkCommissioningDriver.h>
31+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
32+
#include <platform/Darwin/WiFi/NetworkCommissioningWiFiDriver.h>
33+
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI
34+
#endif // CHIP_DEVICE_LAYER_TARGET_DARWIN
35+
36+
#if CHIP_DEVICE_LAYER_TARGET_LINUX
2837
#include <platform/Linux/NetworkCommissioningDriver.h>
38+
#endif // CHIP_DEVICE_LAYER_TARGET_LINUX
2939

3040
#if defined(CHIP_IMGUI_ENABLED) && CHIP_IMGUI_ENABLED
3141
#include <imgui_ui/ui.h>
@@ -39,12 +49,39 @@ using namespace chip;
3949
using namespace chip::app;
4050
using namespace chip::app::Clusters;
4151

42-
#if CHIP_DEVICE_CONFIG_ENABLE_WPA
4352
namespace {
44-
DeviceLayer::NetworkCommissioning::LinuxWiFiDriver sLinuxWiFiDriver;
45-
Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0, &sLinuxWiFiDriver);
53+
54+
#if CHIP_DEVICE_LAYER_TARGET_LINUX
55+
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
56+
DeviceLayer::NetworkCommissioning::LinuxThreadDriver sThreadDriver;
57+
#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD
58+
59+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
60+
DeviceLayer::NetworkCommissioning::LinuxWiFiDriver sWiFiDriver;
61+
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI
62+
63+
DeviceLayer::NetworkCommissioning::LinuxEthernetDriver sEthernetDriver;
64+
#endif // CHIP_DEVICE_LAYER_TARGET_LINUX
65+
66+
#if CHIP_DEVICE_LAYER_TARGET_DARWIN
67+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
68+
DeviceLayer::NetworkCommissioning::DarwinWiFiDriver sWiFiDriver;
69+
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI
70+
71+
DeviceLayer::NetworkCommissioning::DarwinEthernetDriver sEthernetDriver;
72+
#endif // CHIP_DEVICE_LAYER_TARGET_DARWIN
73+
74+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
75+
Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0, &sWiFiDriver);
76+
#endif // CHIP_DEVICE_CONFIG_ENABLE_WIFI
77+
78+
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
79+
Clusters::NetworkCommissioning::Instance sThreadNetworkCommissioningInstance(0, &sThreadDriver);
80+
#endif // CHIP_DEVICE_CONFIG_ENABLE_THREAD
81+
82+
Clusters::NetworkCommissioning::Instance sEthernetNetworkCommissioningInstance(0, &sEthernetDriver);
83+
4684
} // namespace
47-
#endif
4885

4986
void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size,
5087
uint8_t * value)
@@ -77,9 +114,45 @@ void emberAfOnOffClusterInitCallback(EndpointId endpoint)
77114

78115
void ApplicationInit()
79116
{
80-
#if CHIP_DEVICE_CONFIG_ENABLE_WPA
81-
sWiFiNetworkCommissioningInstance.Init();
117+
const bool kThreadEnabled = {
118+
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
119+
LinuxDeviceOptions::GetInstance().mThread
120+
#else
121+
false
122+
#endif
123+
};
124+
125+
const bool kWiFiEnabled = {
126+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
127+
LinuxDeviceOptions::GetInstance().mWiFi
128+
#else
129+
false
130+
#endif
131+
};
132+
133+
if (kThreadEnabled && kWiFiEnabled)
134+
{
135+
// Just use the Thread one.
136+
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
137+
sThreadNetworkCommissioningInstance.Init();
138+
#endif
139+
}
140+
else if (kThreadEnabled)
141+
{
142+
#if CHIP_DEVICE_CONFIG_ENABLE_THREAD
143+
sThreadNetworkCommissioningInstance.Init();
144+
#endif
145+
}
146+
else if (kWiFiEnabled)
147+
{
148+
#if CHIP_DEVICE_CONFIG_ENABLE_WIFI
149+
sWiFiNetworkCommissioningInstance.Init();
82150
#endif
151+
}
152+
else
153+
{
154+
sEthernetNetworkCommissioningInstance.Init();
155+
}
83156
}
84157

85158
int main(int argc, char * argv[])

0 commit comments

Comments
 (0)