From ac6c41c557ad7d508ce2dbf956d70bf9c2825cbe Mon Sep 17 00:00:00 2001 From: Thamim Razith Date: Wed, 9 Oct 2024 00:15:36 +0000 Subject: [PATCH] Update the required changes --- NetworkManagerGnomeEvents.cpp | 2 +- NetworkManagerImplementation.cpp | 52 +++++++++++++++++++++++- NetworkManagerImplementation.h | 2 +- NetworkManagerJsonRpc.cpp | 68 ++++++++++++++------------------ NetworkManagerRDKProxy.cpp | 50 +---------------------- 5 files changed, 84 insertions(+), 90 deletions(-) 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