diff --git a/CHANGELOG.md b/CHANGELOG.md index f33591e..a0071cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ All notable changes to this RDK Service will be documented in this file. * Changes in CHANGELOG should be updated when commits are added to the main or release branches. There should be one CHANGELOG entry per JIRA Ticket. This is not enforced on sprint branches since there could be multiple changes for the same JIRA ticket during development. -## [0.5.0] - 2024-10-08 +## [0.4.1] - 2024-10-08 - Added Fitler Frequency logic in StartWifiScan ## [0.4.0] - 2024-10-04 diff --git a/CMakeLists.txt b/CMakeLists.txt index dd61f17..2c52435 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,8 @@ find_package(WPEFramework) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") set(VERSION_MAJOR 0) -set(VERSION_MINOR 5) -set(VERSION_PATCH 0) +set(VERSION_MINOR 4) +set(VERSION_PATCH 1) add_compile_definitions(NETWORKMANAGER_MAJOR_VERSION=${VERSION_MAJOR}) add_compile_definitions(NETWORKMANAGER_MINOR_VERSION=${VERSION_MINOR}) diff --git a/NetworkManager.json b/NetworkManager.json index 2309272..0096bdd 100644 --- a/NetworkManager.json +++ b/NetworkManager.json @@ -8,7 +8,7 @@ "locator": "libWPEFrameworkNetworkManager.so", "status": "production", "description": "A Unified `NetworkManager` plugin that allows you to manage Ethernet and Wifi interfaces on the device.", - "version": "0.5.0" + "version": "0.4.0" }, "common": { "$ref": "../../common/common.json" diff --git a/NetworkManagerGnomeEvents.cpp b/NetworkManagerGnomeEvents.cpp index b7f1706..49cb632 100644 --- a/NetworkManagerGnomeEvents.cpp +++ b/NetworkManagerGnomeEvents.cpp @@ -597,7 +597,7 @@ namespace WPEFramework if(_nmEventInstance->doScanNotify) { _nmEventInstance->doScanNotify = false; - _instance->ReportAvailableSSIDsEvent(ssidListJson); + _instance->ReportAvailableSSIDsEvent(ssidList); } } diff --git a/NetworkManagerImplementation.cpp b/NetworkManagerImplementation.cpp index 7315ca0..c46d7ff 100644 --- a/NetworkManagerImplementation.cpp +++ b/NetworkManagerImplementation.cpp @@ -456,6 +456,49 @@ namespace WPEFramework return; } + void NetworkManagerImplementation::filterScanResults(JsonArray &ssids) + { + JsonArray result; + + if (scanForFreq != WIFI_FREQUENCY_WHATEVER) + { + for(int i=0; ionAvailableSSIDs(jsonOfWiFiScanResults); diff --git a/NetworkManagerImplementation.h b/NetworkManagerImplementation.h index a2966e0..2b67858 100644 --- a/NetworkManagerImplementation.h +++ b/NetworkManagerImplementation.h @@ -219,7 +219,7 @@ namespace WPEFramework void ReportIPAddressChangedEvent(const string& interface, bool isAcquired, bool isIPv6, const string& ipAddress); void ReportActiveInterfaceChangedEvent(const string prevActiveInterface, const string currentActiveinterface); void ReportInternetStatusChangedEvent(const InternetStatus oldState, const InternetStatus newstate); - void ReportAvailableSSIDsEvent(const string jsonOfWiFiScanResults); + void ReportAvailableSSIDsEvent(JsonArray &arrayofWiFiScanResults); void ReportWiFiStateChangedEvent(const INetworkManager::WiFiState state); void ReportWiFiSignalStrengthChangedEvent(const string ssid , const string signalLevel , const WiFiSignalQuality signalQuality); diff --git a/NetworkManagerJsonRpc.cpp b/NetworkManagerJsonRpc.cpp index 04318ae..97b1396 100644 --- a/NetworkManagerJsonRpc.cpp +++ b/NetworkManagerJsonRpc.cpp @@ -769,47 +769,39 @@ namespace WPEFramework { LOG_INPARAM(); uint32_t rc = Core::ERROR_GENERAL; - double frequencyValue = 0.0; Exchange::INetworkManager::WiFiFrequency frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_WHATEVER; - if (parameters.HasLabel("frequency")) + string freqString = parameters["frequency"].String(); + + NMLOG_INFO("Received frequency string: %s", freqString.c_str()); + + if (freqString == "2.4") { + frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_2_4_GHZ; + } + else if (freqString == "5") { + frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_5_GHZ; + } + else if (freqString == "6") { + frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_6_GHZ; + } + else { + NMLOG_ERROR("Invalid frequency value received: %s", freqString.c_str()); + frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_WHATEVER; + } + + NMLOG_INFO("Frequency value mapped to enum: %d", frequency); + + if (_networkManager) + rc = _networkManager->StartWiFiScan(frequency); + else + rc = Core::ERROR_UNAVAILABLE; + + if (Core::ERROR_NONE == rc) { - if (parameters["frequency"].Content() == Core::JSON::Variant::type::NUMBER) - frequencyValue = parameters["frequency"].Number(); - else if (parameters["frequency"].Content() == Core::JSON::Variant::type::STRING) - frequencyValue = stod(parameters["frequency"].String()); // Use stod converts a string to double, handles decimals - - NMLOG_INFO("Frequency value received: %f", frequencyValue); - - //Map the double value to WiFiFrequency enum - if (frequencyValue == 2.4) { - frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_2_4_GHZ; - } - else if (frequencyValue == 5.0) { - frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_5_GHZ; - } - else if (frequencyValue == 6.0) { - frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_6_GHZ; - } - else { - NMLOG_INFO("Invalid frequency value: %f\n", frequencyValue); - frequency = Exchange::INetworkManager::WiFiFrequency::WIFI_FREQUENCY_WHATEVER; - } - } - - NMLOG_INFO("Mapped frequency to enum value: %d", static_cast(frequency)); - - if (_networkManager) - rc = _networkManager->StartWiFiScan(static_cast(frequency)); - else - rc = Core::ERROR_UNAVAILABLE; - - if (Core::ERROR_NONE == rc) - { - response["success"] = true; - } - LOG_OUTPARAM(); - return rc; + response["success"] = true; + } + LOG_OUTPARAM(); + return rc; } uint32_t NetworkManager::StopWiFiScan(const JsonObject& parameters, JsonObject& response) diff --git a/NetworkManagerRDKProxy.cpp b/NetworkManagerRDKProxy.cpp index 14c7fa4..1f1bd92 100644 --- a/NetworkManagerRDKProxy.cpp +++ b/NetworkManagerRDKProxy.cpp @@ -333,8 +333,6 @@ typedef struct _IARM_Bus_WiFiSrvMgr_SsidList_Param_t { } IARM_Bus_WiFiSrvMgr_SsidList_Param_t; -uint32_t NetworkManagerImplementation::currentFrequency = 0; - #define IARM_BUS_NETSRVMGR_API_getInterfaceList "getInterfaceList" #define IARM_BUS_NETSRVMGR_API_getDefaultInterface "getDefaultInterface" #define IARM_BUS_NETSRVMGR_API_setDefaultInterface "setDefaultInterface" @@ -500,11 +498,8 @@ namespace WPEFramework } JsonArray ssids = eventDocument["getAvailableSSIDs"].Array(); - ::_instance->FilterWiFiByFrequency(ssids); - string json; - ssids.ToString(json); - ::_instance->ReportAvailableSSIDsEvent(json); + ::_instance->ReportAvailableSSIDsEvent(ssids); } case IARM_BUS_WIFI_MGR_EVENT_onWIFIStateChanged: { @@ -534,49 +529,6 @@ namespace WPEFramework NMLOG_WARNING("WARNING - cannot handle IARM events without a Network plugin instance!"); } - void NetworkManagerImplementation::FilterWiFiByFrequency(JsonArray &ssids) - { - JsonArray result; - - if (NetworkManagerImplementation::currentFrequency != WIFI_FREQUENCY_WHATEVER) - { - for(int i=0; i