25
25
#include < app/clusters/network-commissioning/network-commissioning.h>
26
26
#include < app/server/Server.h>
27
27
#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
28
37
#include < platform/Linux/NetworkCommissioningDriver.h>
38
+ #endif // CHIP_DEVICE_LAYER_TARGET_LINUX
29
39
30
40
#if defined(CHIP_IMGUI_ENABLED) && CHIP_IMGUI_ENABLED
31
41
#include < imgui_ui/ui.h>
@@ -39,12 +49,39 @@ using namespace chip;
39
49
using namespace chip ::app;
40
50
using namespace chip ::app::Clusters;
41
51
42
- #if CHIP_DEVICE_CONFIG_ENABLE_WPA
43
52
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
+
46
84
} // namespace
47
- #endif
48
85
49
86
void MatterPostAttributeChangeCallback (const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size,
50
87
uint8_t * value)
@@ -77,9 +114,45 @@ void emberAfOnOffClusterInitCallback(EndpointId endpoint)
77
114
78
115
void ApplicationInit ()
79
116
{
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 ();
82
150
#endif
151
+ }
152
+ else
153
+ {
154
+ sEthernetNetworkCommissioningInstance .Init ();
155
+ }
83
156
}
84
157
85
158
int main (int argc, char * argv[])
0 commit comments