From c0162def45cc689b029aa29e9097c8cf7fa44fc9 Mon Sep 17 00:00:00 2001 From: Jakub Latusek Date: Thu, 16 Feb 2023 15:00:39 +0100 Subject: [PATCH 1/7] Add missing privileges --- examples/lighting-app/tizen/tizen-manifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/lighting-app/tizen/tizen-manifest.xml b/examples/lighting-app/tizen/tizen-manifest.xml index 68b034c9fd66cc..4cb6047b528173 100644 --- a/examples/lighting-app/tizen/tizen-manifest.xml +++ b/examples/lighting-app/tizen/tizen-manifest.xml @@ -9,6 +9,7 @@ http://tizen.org/privilege/internet http://tizen.org/privilege/network.get http://tizen.org/privilege/network.set + http://tizen.org/privilege/network.profile true true From 53d2a7d18071e5b953b8dd28820646ae81f0b20f Mon Sep 17 00:00:00 2001 From: Jakub Latusek Date: Thu, 16 Feb 2023 15:14:18 +0100 Subject: [PATCH 2/7] Init network commissioning interface --- examples/lighting-app/tizen/src/main.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/examples/lighting-app/tizen/src/main.cpp b/examples/lighting-app/tizen/src/main.cpp index 5c9ba03b675bd1..e69bc25fdc1c7a 100644 --- a/examples/lighting-app/tizen/src/main.cpp +++ b/examples/lighting-app/tizen/src/main.cpp @@ -19,6 +19,8 @@ #include #include #include +#include +#include #include #include @@ -27,6 +29,13 @@ using namespace chip; using namespace chip::app; using namespace chip::app::Clusters; +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI +namespace { +DeviceLayer::NetworkCommissioning::TizenWiFiDriver sTizenWiFiDriver; +Clusters::NetworkCommissioning::Instance sWiFiNetworkCommissioningInstance(0, &sTizenWiFiDriver); +} // namespace +#endif + void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & attributePath, uint8_t type, uint16_t size, uint8_t * value) { @@ -36,7 +45,12 @@ void MatterPostAttributeChangeCallback(const chip::app::ConcreteAttributePath & } } -void ApplicationInit() {} +void ApplicationInit() +{ +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI + sWiFiNetworkCommissioningInstance.Init(); +#endif +} int main(int argc, char * argv[]) { From 9f9d2d023389641768784d4e9c14aacf0e698644 Mon Sep 17 00:00:00 2001 From: Jakub Latusek Date: Thu, 16 Feb 2023 15:16:09 +0100 Subject: [PATCH 3/7] add LockChipStack wifi in callback thread --- src/platform/Tizen/WiFiManager.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/platform/Tizen/WiFiManager.cpp b/src/platform/Tizen/WiFiManager.cpp index 10678d271dbdfd..e6c724a33be286 100644 --- a/src/platform/Tizen/WiFiManager.cpp +++ b/src/platform/Tizen/WiFiManager.cpp @@ -31,6 +31,7 @@ #include #include "MainLoop.h" +#include "platform/PlatformManager.h" namespace { static constexpr const char * __WiFiDeviceStateToStr(wifi_manager_device_state_e state) @@ -277,8 +278,11 @@ void WiFiManager::_ConnectedCb(wifi_manager_error_e wifiErr, void * userData) ChipLogProgress(DeviceLayer, "WiFi is connected"); if (sInstance.mpConnectCallback != nullptr) { + + chip::DeviceLayer::PlatformMgr().LockChipStack(); sInstance.mpConnectCallback->OnResult(NetworkCommissioning::Status::kSuccess, CharSpan(), 0); sInstance.mpConnectCallback = nullptr; + chip::DeviceLayer::PlatformMgr().UnlockChipStack(); } } else @@ -286,8 +290,10 @@ void WiFiManager::_ConnectedCb(wifi_manager_error_e wifiErr, void * userData) ChipLogError(DeviceLayer, "FAIL: connect WiFi [%s]", get_error_message(wifiErr)); if (sInstance.mpConnectCallback != nullptr) { + chip::DeviceLayer::PlatformMgr().LockChipStack(); sInstance.mpConnectCallback->OnResult(NetworkCommissioning::Status::kUnknownError, CharSpan(), 0); sInstance.mpConnectCallback = nullptr; + chip::DeviceLayer::PlatformMgr().UnlockChipStack(); } } From 5fe4baef78dccc3f86cd496b3b6d9e9b54b0db31 Mon Sep 17 00:00:00 2001 From: Jakub Latusek Date: Mon, 20 Feb 2023 08:40:04 +0100 Subject: [PATCH 4/7] Advertise device name --- src/platform/Tizen/BLEManagerImpl.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/platform/Tizen/BLEManagerImpl.cpp b/src/platform/Tizen/BLEManagerImpl.cpp index 9b2d5e2537fe51..c33326f659a9ee 100644 --- a/src/platform/Tizen/BLEManagerImpl.cpp +++ b/src/platform/Tizen/BLEManagerImpl.cpp @@ -668,6 +668,10 @@ int BLEManagerImpl::StartBLEAdvertising() VerifyOrExit(ret == BT_ERROR_NONE, ChipLogError(DeviceLayer, "bt_adapter_le_add_advertising_service_data() failed. ret: %d", ret)); + ret = bt_adapter_le_set_advertising_device_name(mAdvertiser, BT_ADAPTER_LE_PACKET_ADVERTISING, true); + VerifyOrExit(ret == BT_ERROR_NONE, + ChipLogError(DeviceLayer, "bt_adapter_le_set_advertising_device_name() failed. ret: %d", ret)); + BLEManagerImpl::NotifyBLEPeripheralAdvConfiguredComplete(true, nullptr); ret = bt_adapter_le_start_advertising_new(mAdvertiser, AdvertisingStateChangedCb, nullptr); From 1f365370fec603cb8bf52091d9719b72b8e44f45 Mon Sep 17 00:00:00 2001 From: Jakub Latusek Date: Mon, 20 Feb 2023 08:45:15 +0100 Subject: [PATCH 5/7] Add privilege to allow wifi managment in app --- examples/all-clusters-app/tizen/tizen-manifest.xml | 1 + examples/all-clusters-minimal-app/tizen/tizen-manifest.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/examples/all-clusters-app/tizen/tizen-manifest.xml b/examples/all-clusters-app/tizen/tizen-manifest.xml index c96e765d907f09..5ad377712037e7 100644 --- a/examples/all-clusters-app/tizen/tizen-manifest.xml +++ b/examples/all-clusters-app/tizen/tizen-manifest.xml @@ -9,6 +9,7 @@ http://tizen.org/privilege/internet http://tizen.org/privilege/network.get http://tizen.org/privilege/network.set + http://tizen.org/privilege/network.profile true true diff --git a/examples/all-clusters-minimal-app/tizen/tizen-manifest.xml b/examples/all-clusters-minimal-app/tizen/tizen-manifest.xml index f97f57a53591fe..cbd365aec78e74 100644 --- a/examples/all-clusters-minimal-app/tizen/tizen-manifest.xml +++ b/examples/all-clusters-minimal-app/tizen/tizen-manifest.xml @@ -9,6 +9,7 @@ http://tizen.org/privilege/internet http://tizen.org/privilege/network.get http://tizen.org/privilege/network.set + http://tizen.org/privilege/network.profile true true From 0eed26508882466b320f5e74c8a89c8420c15074 Mon Sep 17 00:00:00 2001 From: Jakub Latusek Date: Mon, 20 Feb 2023 09:10:07 +0100 Subject: [PATCH 6/7] Allow the device to be already connected to the wifi --- src/platform/Tizen/WiFiManager.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/platform/Tizen/WiFiManager.cpp b/src/platform/Tizen/WiFiManager.cpp index e6c724a33be286..7c388ba8916bb0 100644 --- a/src/platform/Tizen/WiFiManager.cpp +++ b/src/platform/Tizen/WiFiManager.cpp @@ -273,12 +273,11 @@ void WiFiManager::_ConnectedCb(wifi_manager_error_e wifiErr, void * userData) { auto loop = reinterpret_cast(userData); - if (wifiErr == WIFI_MANAGER_ERROR_NONE) + if (wifiErr == WIFI_MANAGER_ERROR_NONE || wifiErr == WIFI_MANAGER_ERROR_ALREADY_EXISTS) { ChipLogProgress(DeviceLayer, "WiFi is connected"); if (sInstance.mpConnectCallback != nullptr) { - chip::DeviceLayer::PlatformMgr().LockChipStack(); sInstance.mpConnectCallback->OnResult(NetworkCommissioning::Status::kSuccess, CharSpan(), 0); sInstance.mpConnectCallback = nullptr; From 3808ff34c7c18d3057c4180225b156189007b1af Mon Sep 17 00:00:00 2001 From: Jakub Latusek Date: Mon, 20 Feb 2023 13:08:27 +0100 Subject: [PATCH 7/7] Fix includes --- src/platform/Tizen/WiFiManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/platform/Tizen/WiFiManager.cpp b/src/platform/Tizen/WiFiManager.cpp index 7c388ba8916bb0..13c27dd541576e 100644 --- a/src/platform/Tizen/WiFiManager.cpp +++ b/src/platform/Tizen/WiFiManager.cpp @@ -29,9 +29,9 @@ #include #include #include +#include #include "MainLoop.h" -#include "platform/PlatformManager.h" namespace { static constexpr const char * __WiFiDeviceStateToStr(wifi_manager_device_state_e state)