From 225b3e87dba71c65c2b0bad13111c073cd6b41b6 Mon Sep 17 00:00:00 2001 From: gongheng Date: Wed, 10 Dec 2025 14:13:40 +0800 Subject: [PATCH] Feat: [cpu] Add max boost clock item on special cpu type. -- Add max boost clock item on special cpu type. Log: add feature Task: https://pms.uniontech.com/task-view-384577.html --- .../assets/org.deepin.devicemanager.json | 10 ++++++++++ .../src/DeviceManager/DeviceCpu.cpp | 7 +++++++ .../src/DeviceManager/DeviceCpu.h | 3 +++ deepin-devicemanager/src/commonfunction.cpp | 1 + deepin-devicemanager/src/commonfunction.h | 7 +++++++ deepin-devicemanager/src/main.cpp | 17 +++++++++-------- 6 files changed, 37 insertions(+), 8 deletions(-) diff --git a/deepin-devicemanager/assets/org.deepin.devicemanager.json b/deepin-devicemanager/assets/org.deepin.devicemanager.json index 8f53b60a..d0051f52 100644 --- a/deepin-devicemanager/assets/org.deepin.devicemanager.json +++ b/deepin-devicemanager/assets/org.deepin.devicemanager.json @@ -25,6 +25,16 @@ "permissions": "readwrite", "visibility": "private" }, + "specialCpuType": { + "value": 0, + "serial": 0, + "flags": ["global"], + "name": "Special Cpu Type", + "name[zh_CN]": "定制CPU类型", + "description": "Special Cpu Type: Unknow cpu type(value:0)", + "permissions": "readwrite", + "visibility": "private" + }, "TomlFilesName": { "value": "tomlFilesName", "serial": 0, diff --git a/deepin-devicemanager/src/DeviceManager/DeviceCpu.cpp b/deepin-devicemanager/src/DeviceManager/DeviceCpu.cpp index 4b016dba..3e5065c3 100644 --- a/deepin-devicemanager/src/DeviceManager/DeviceCpu.cpp +++ b/deepin-devicemanager/src/DeviceManager/DeviceCpu.cpp @@ -271,6 +271,9 @@ void DeviceCpu::setInfoFromDmidecode(const QMap &mapInfo) // 飞腾架构由于无法通过lscpu获取当前频率,因此需要通过dmidecode获取 setAttribute(mapInfo, "Current Speed", m_CurFrequency, false); setAttribute(mapInfo, "Family", m_Familly, false); + // 特殊机型,通过 dmidecode 获取最大加速频率 + if (Common::curCpuType == Common::kSpecialCpuType1) + setAttribute(mapInfo, "Max Speed", m_MaxBoostClock); // 获取其他cpu信息 getOtherMapInfo(mapInfo); @@ -300,6 +303,8 @@ void DeviceCpu::loadTableHeader() m_TableHeader.append("Name"); m_TableHeader.append("Vendor"); m_TableHeader.append(frequencyIsRange() ? ("Frequency") : ("Max Frequency")); + if (Common::curCpuType == Common::kSpecialCpuType1) + m_TableHeader.append(tr("Max Boost Clock")); m_TableHeader.append("Architecture"); } @@ -309,6 +314,8 @@ void DeviceCpu::loadTableData() m_TableData.append(m_Name); m_TableData.append(m_Vendor); m_TableData.append(m_Frequency); + if (Common::curCpuType == Common::kSpecialCpuType1) + m_TableData.append(m_MaxBoostClock); m_TableData.append(m_Architecture); } diff --git a/deepin-devicemanager/src/DeviceManager/DeviceCpu.h b/deepin-devicemanager/src/DeviceManager/DeviceCpu.h index ea132ba8..b736dba1 100644 --- a/deepin-devicemanager/src/DeviceManager/DeviceCpu.h +++ b/deepin-devicemanager/src/DeviceManager/DeviceCpu.h @@ -171,6 +171,9 @@ class DeviceCpu : public DeviceBaseInfo bool m_FrequencyIsCur; // m_trNumber; + + // 特殊机型定制,显示最大加速频率 + QString m_MaxBoostClock; // 最大加速频率(睿频) }; #endif // DEVICECPU_H diff --git a/deepin-devicemanager/src/commonfunction.cpp b/deepin-devicemanager/src/commonfunction.cpp index d1a175d8..a02d47c4 100644 --- a/deepin-devicemanager/src/commonfunction.cpp +++ b/deepin-devicemanager/src/commonfunction.cpp @@ -33,6 +33,7 @@ static QMap mapArch = { static bool initBoardVendorFlag = false; static QString boardVendorKey = ""; int Common::specialComType = -1; +Common::SpecialCpuType Common::curCpuType = Common::SpecialCpuType::kUnknowCpuType; static QString tomlFilesName = "tomlFilesName"; QString Common::getArch() { diff --git a/deepin-devicemanager/src/commonfunction.h b/deepin-devicemanager/src/commonfunction.h index 52d571d6..1792170b 100644 --- a/deepin-devicemanager/src/commonfunction.h +++ b/deepin-devicemanager/src/commonfunction.h @@ -27,6 +27,12 @@ class Common kSpecialType7, kCustomType }; + + enum SpecialCpuType { + kUnknowCpuType = 0, + kSpecialCpuType1 + }; + static QString getArch(); static QString getArchStore(); @@ -45,6 +51,7 @@ class Common * special computer type:PGUW(value:1),KLVV/L540(value:2),KLVU(value:3),PGUV/W585(value:4) */ static int specialComType; + static SpecialCpuType curCpuType; static QByteArray executeClientCmd(const QString& cmd, const QStringList& args = QStringList(), const QString& workPath = QString(), int msecsWaiting = 30000); }; diff --git a/deepin-devicemanager/src/main.cpp b/deepin-devicemanager/src/main.cpp index 3cafae4c..f261edfd 100644 --- a/deepin-devicemanager/src/main.cpp +++ b/deepin-devicemanager/src/main.cpp @@ -113,14 +113,15 @@ int main(int argc, char *argv[]) //需要查询是否支持特殊机型静音恢复,例如hw机型 DConfig *dconfig = DConfig::create("org.deepin.devicemanager","org.deepin.devicemanager"); //需要判断Dconfig文件是否合法 - if(dconfig && dconfig->isValid() && dconfig->keyList().contains("specialComType")){ - Common::specialComType = dconfig->value("specialComType").toInt(); - } - qCInfo(appLog) << "Common::specialComType value is:" << Common::specialComType; - - if (dconfig && dconfig->isValid() && dconfig->keyList().contains("TomlFilesName")) { - QString tomlFilesName = dconfig->value("TomlFilesName").toString(); - Common::tomlFilesNameSet(tomlFilesName); + if(dconfig && dconfig->isValid()) { + if (dconfig->keyList().contains("specialComType")) + Common::specialComType = dconfig->value("specialComType").toInt(); + if (dconfig->keyList().contains("TomlFilesName")) { + QString tomlFilesName = dconfig->value("TomlFilesName").toString(); + Common::tomlFilesNameSet(tomlFilesName); + } + if (dconfig->keyList().contains("specialCpuType")) + Common::curCpuType = static_cast(dconfig->value("specialCpuType").toInt()); } // 特殊机型,提前缓存GPU信息