From f38f60508e0ca035993658478ca91e2609a3ca52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E6=96=8C?= Date: Wed, 28 May 2025 15:30:15 +0800 Subject: [PATCH 1/2] center Signed-off-by: chensong --- .../native/src/wifi_device_proxy.cpp | 3 +++ wifi/interfaces/inner_api/wifi_msg.h | 4 ++++ .../wifi_sta_sa/wifi_device_stub.cpp | 2 ++ .../config/wifi_config_center.cpp | 19 +++++++++++++++++++ 4 files changed, 28 insertions(+) diff --git a/wifi/frameworks/native/src/wifi_device_proxy.cpp b/wifi/frameworks/native/src/wifi_device_proxy.cpp index 9a2b7eccd..dd77e1fbc 100644 --- a/wifi/frameworks/native/src/wifi_device_proxy.cpp +++ b/wifi/frameworks/native/src/wifi_device_proxy.cpp @@ -1320,6 +1320,9 @@ void WifiDeviceProxy::ReadLinkedInfo(MessageParcel &reply, WifiLinkedInfo &info) info.rssi = reply.ReadInt32(); info.band = reply.ReadInt32(); info.frequency = reply.ReadInt32(); + info.centerFrequency0 = reply.ReadInt32(); + info.centerFrequency1 = reply.ReadInt32(); + info.frequency = reply.ReadInt32(); info.linkSpeed = reply.ReadInt32(); info.macAddress = reply.ReadString(); info.macType = reply.ReadInt32(); diff --git a/wifi/interfaces/inner_api/wifi_msg.h b/wifi/interfaces/inner_api/wifi_msg.h index 1098bfcca..78e480834 100644 --- a/wifi/interfaces/inner_api/wifi_msg.h +++ b/wifi/interfaces/inner_api/wifi_msg.h @@ -252,6 +252,8 @@ struct WifiLinkedInfo { int rssi; /* signal level */ int band; /* 2.4G / 5G */ int frequency; + int centerFrequency0; + int centerFrequency1; int linkSpeed; /* units: Mbps */ std::string macAddress; int macType; @@ -289,6 +291,8 @@ struct WifiLinkedInfo { rssi = 0; band = 0; frequency = 0; + centerFrequency0 = 0; + centerFrequency1 = 0; linkSpeed = 0; macType = 0; ipAddress = 0; diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp index 2ccfb2d2f..cc22e50a9 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp @@ -927,6 +927,8 @@ void WifiDeviceStub::WriteWifiLinkedInfo(MessageParcel &reply, const WifiLinkedI reply.WriteInt32(wifiInfo.rssi); reply.WriteInt32(wifiInfo.band); reply.WriteInt32(wifiInfo.frequency); + reply.WriteInt32(wifiInfo.centerFrequency0); + reply.WriteInt32(wifiInfo.centerFrequency1); reply.WriteInt32(wifiInfo.linkSpeed); reply.WriteString(wifiInfo.macAddress); reply.WriteInt32(wifiInfo.macType); diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp index 6643df592..8412e465e 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp @@ -351,6 +351,7 @@ int WifiConfigCenter::SaveLinkedInfo(const WifiLinkedInfo &info, int instId) } else { mWifiLinkedInfo.emplace(instId, info); } + UpdateCenterFrquencyInfo(instId); return 0; } @@ -1362,6 +1363,24 @@ void WifiConfigCenter::UpdateLinkedInfo(int instId) LOGD("WifiSettings UpdateLinkedInfo."); } +void WifiConfigCenter::UpdateCenterFrquencyInfo(int instId) +{ + std::vector wifiScanInfoList; + wifiScanConfig->GetScanInfoListInner(wifiScanInfoList); + for (auto iter = wifiScanConfig.begin(); iter != wifiScanConfig.end(); ++iter) { + if (iter->bssid == mWifiLinkedInfo[instId].bssid) { + LOGD("centerFrequency0:%{public}d, centerFrequency1:%{public}d.", + iter->centerFrequency0, iter->centerFrequency1); + if (mWifiLinkedInfo[instId].centerFrequency0 == 0 || ((iter->centerFrequency0 != 0) && + mWifiLinkedInfo[instId].centerFrequency0 != iter->centerFrequency0)) { + mWifiLinkedInfo[instId].centerFrequency0 = iter->centerFrequency0; + mWifiLinkedInfo[instId].centerFrequency1 = iter->centerFrequency1; + } + break; + } + } +} + void WifiConfigCenter::SetPersistWifiState(int state, int instId) { if (instId < 0 || instId >= STA_INSTANCE_MAX_NUM) { -- Gitee From 8fb7c0449a6155b856fc43546bd11039df970497 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E6=96=8C?= Date: Wed, 28 May 2025 15:30:15 +0800 Subject: [PATCH 2/2] center Signed-off-by: chensong MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 罗斌 --- .../native/src/wifi_device_proxy.cpp | 3 +++ wifi/interfaces/inner_api/wifi_msg.h | 4 ++++ .../wifi_sta_sa/wifi_device_stub.cpp | 2 ++ .../config/wifi_config_center.cpp | 19 +++++++++++++++++++ .../wifi_toolkit/config/wifi_config_center.h | 2 ++ 5 files changed, 30 insertions(+) diff --git a/wifi/frameworks/native/src/wifi_device_proxy.cpp b/wifi/frameworks/native/src/wifi_device_proxy.cpp index 9a2b7eccd..dd77e1fbc 100644 --- a/wifi/frameworks/native/src/wifi_device_proxy.cpp +++ b/wifi/frameworks/native/src/wifi_device_proxy.cpp @@ -1320,6 +1320,9 @@ void WifiDeviceProxy::ReadLinkedInfo(MessageParcel &reply, WifiLinkedInfo &info) info.rssi = reply.ReadInt32(); info.band = reply.ReadInt32(); info.frequency = reply.ReadInt32(); + info.centerFrequency0 = reply.ReadInt32(); + info.centerFrequency1 = reply.ReadInt32(); + info.frequency = reply.ReadInt32(); info.linkSpeed = reply.ReadInt32(); info.macAddress = reply.ReadString(); info.macType = reply.ReadInt32(); diff --git a/wifi/interfaces/inner_api/wifi_msg.h b/wifi/interfaces/inner_api/wifi_msg.h index 1098bfcca..78e480834 100644 --- a/wifi/interfaces/inner_api/wifi_msg.h +++ b/wifi/interfaces/inner_api/wifi_msg.h @@ -252,6 +252,8 @@ struct WifiLinkedInfo { int rssi; /* signal level */ int band; /* 2.4G / 5G */ int frequency; + int centerFrequency0; + int centerFrequency1; int linkSpeed; /* units: Mbps */ std::string macAddress; int macType; @@ -289,6 +291,8 @@ struct WifiLinkedInfo { rssi = 0; band = 0; frequency = 0; + centerFrequency0 = 0; + centerFrequency1 = 0; linkSpeed = 0; macType = 0; ipAddress = 0; diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp index 2ccfb2d2f..cc22e50a9 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_stub.cpp @@ -927,6 +927,8 @@ void WifiDeviceStub::WriteWifiLinkedInfo(MessageParcel &reply, const WifiLinkedI reply.WriteInt32(wifiInfo.rssi); reply.WriteInt32(wifiInfo.band); reply.WriteInt32(wifiInfo.frequency); + reply.WriteInt32(wifiInfo.centerFrequency0); + reply.WriteInt32(wifiInfo.centerFrequency1); reply.WriteInt32(wifiInfo.linkSpeed); reply.WriteString(wifiInfo.macAddress); reply.WriteInt32(wifiInfo.macType); diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp index 6643df592..fe58727fc 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.cpp @@ -351,6 +351,7 @@ int WifiConfigCenter::SaveLinkedInfo(const WifiLinkedInfo &info, int instId) } else { mWifiLinkedInfo.emplace(instId, info); } + UpdateCenterFrequencyInfo(instId); return 0; } @@ -1362,6 +1363,24 @@ void WifiConfigCenter::UpdateLinkedInfo(int instId) LOGD("WifiSettings UpdateLinkedInfo."); } +void WifiConfigCenter::UpdateCenterFrequencyInfo(int instId) +{ + std::vector wifiScanInfoList; + wifiScanConfig->GetScanInfoListInner(wifiScanInfoList); + for (auto iter = wifiScanConfig.begin(); iter != wifiScanConfig.end(); ++iter) { + if (iter->bssid == mWifiLinkedInfo[instId].bssid) { + LOGD("centerFrequency0:%{public}d, centerFrequency1:%{public}d.", + iter->centerFrequency0, iter->centerFrequency1); + if (mWifiLinkedInfo[instId].centerFrequency0 == 0 || ((iter->centerFrequency0 != 0) && + mWifiLinkedInfo[instId].centerFrequency0 != iter->centerFrequency0)) { + mWifiLinkedInfo[instId].centerFrequency0 = iter->centerFrequency0; + mWifiLinkedInfo[instId].centerFrequency1 = iter->centerFrequency1; + } + break; + } + } +} + void WifiConfigCenter::SetPersistWifiState(int state, int instId) { if (instId < 0 || instId >= STA_INSTANCE_MAX_NUM) { diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.h b/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.h index 1a0fd4fbd..3e4c28c74 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_toolkit/config/wifi_config_center.h @@ -343,6 +343,8 @@ public: void UpdateLinkedInfo(int instId = 0); + void UpdateCenterFrequencyInfo(int instId = 0); + void SetSystemMode(int systemMode); int GetSystemMode(); -- Gitee