From 3328270250c719c43d90693566906580d5d52eba Mon Sep 17 00:00:00 2001 From: ElvenWang Date: Sat, 10 Dec 2022 06:11:58 +0800 Subject: [PATCH] Add Network Commissioning cluster setup for bridge app Linux (#23906) Based on change #16222, the bridge app on Linux need support WiFi network for commissioning. Signed-off-by: Haoran Wang Signed-off-by: Haoran Wang --- examples/bridge-app/linux/main.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/examples/bridge-app/linux/main.cpp b/examples/bridge-app/linux/main.cpp index 22dbeb1ac9f522..2c7c513a2cf0b5 100644 --- a/examples/bridge-app/linux/main.cpp +++ b/examples/bridge-app/linux/main.cpp @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -38,6 +39,7 @@ #include #include #include +#include #include #include @@ -54,6 +56,7 @@ #include using namespace chip; +using namespace chip::app; using namespace chip::Credentials; using namespace chip::Inet; using namespace chip::Transport; @@ -71,6 +74,10 @@ EndpointId gFirstDynamicEndpointId; Device * gDevices[CHIP_DEVICE_CONFIG_DYNAMIC_ENDPOINT_COUNT]; std::vector gRooms; std::vector gActions; +#if defined(CHIP_DEVICE_CONFIG_ENABLE_WIFI) && defined(CHIP_DEVICE_LAYER_TARGET_LINUX) +DeviceLayer::NetworkCommissioning::LinuxWiFiDriver sLinuxWiFiDriver; +Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0, &sLinuxWiFiDriver); +#endif const int16_t minMeasuredValue = -27315; const int16_t maxMeasuredValue = 32766; @@ -719,7 +726,12 @@ bool emberAfActionsClusterInstantActionCallback(app::CommandHandler * commandObj return true; } -void ApplicationInit() {} +void ApplicationInit() +{ +#if defined(CHIP_DEVICE_CONFIG_ENABLE_WIFI) && defined(CHIP_DEVICE_LAYER_TARGET_LINUX) + sWiFiNetworkCommissioningInstance.Init(); +#endif +} const EmberAfDeviceType gBridgedOnOffDeviceTypes[] = { { DEVICE_TYPE_LO_ON_OFF_LIGHT, DEVICE_VERSION_DEFAULT }, { DEVICE_TYPE_BRIDGED_NODE, DEVICE_VERSION_DEFAULT } }; @@ -995,6 +1007,7 @@ int main(int argc, char * argv[]) // Run CHIP + ApplicationInit(); chip::DeviceLayer::PlatformMgr().RunEventLoop(); return 0;