From 2639426727c6d522500a121d07bfa3433e89581b Mon Sep 17 00:00:00 2001 From: shuaijie Date: Wed, 17 Jan 2024 15:08:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86cid?= =?UTF-8?q?=E7=A3=81=E7=9B=98=E8=AE=BE=E5=A4=87=E7=AE=A1=E7=90=86=E5=99=A8?= =?UTF-8?q?=E7=9A=84=E5=BA=8F=E5=88=97=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit smartctl的serial number和设备管理器的序列号不一样 Log: 取smartctl保持一致 Bug: https://pms.uniontech.com/bug-view-230865.html --- .../src/DeviceManager/DeviceStorage.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/deepin-devicemanager/src/DeviceManager/DeviceStorage.cpp b/deepin-devicemanager/src/DeviceManager/DeviceStorage.cpp index 4bf89673..0f86ad47 100644 --- a/deepin-devicemanager/src/DeviceManager/DeviceStorage.cpp +++ b/deepin-devicemanager/src/DeviceManager/DeviceStorage.cpp @@ -515,6 +515,17 @@ void DeviceStorage::loadOtherDeviceInfo() addOtherDeviceInfo(tr("Firmware Version"), m_FirmwareVersion); addOtherDeviceInfo(tr("Speed"), m_Speed); addOtherDeviceInfo(tr("Description"), m_Description); + + for(int i = 0 ; i < m_SerialNumber.count(); i++) { + QChar cha = m_SerialNumber.at(i); + ushort uni = cha.unicode(); + if(uni < 33 || uni > 126) { + qWarning()<<"smartctl Serial number is not LetterOrNumber "<< m_SerialNumber; + m_SerialNumber.clear(); + break; + } + } + addOtherDeviceInfo(tr("Serial Number"), m_SerialNumber); addOtherDeviceInfo(tr("Interface"), m_Interface); addOtherDeviceInfo(tr("Rotation Rate"), m_RotationRate); @@ -617,7 +628,11 @@ void DeviceStorage::getInfoFromsmartctl(const QMap &mapInfo) if (mapInfo.find("Model Number") != mapInfo.end()) m_Name = mapInfo["Model Number"]; - setAttribute(mapInfo, "Serial Number", m_SerialNumber, true); + if (mapInfo.find("Serial Number") != mapInfo.end()) + setAttribute(mapInfo, "Serial Number", m_SerialNumber, true); + else if (mapInfo.find("Serial number") != mapInfo.end()) { + setAttribute(mapInfo, "Serial number", m_SerialNumber, true); + } // 修正数值 if(Common::boardVendorType() != "KLVV" && Common::boardVendorType() != "KLVU" \