From 30c8ac946ea31e69f9cf0e31661caea8a2303db2 Mon Sep 17 00:00:00 2001 From: Spiros Date: Sat, 1 Jun 2024 15:44:14 +0300 Subject: [PATCH] Support NVMe reads/writes --- mainwindow.cpp | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index f41c4c3..d60ff57 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -208,8 +208,8 @@ void MainWindow::populateWindow(const QJsonObject &localObj, const QString &heal unsigned int logicalBlockSize = localObj["logical_block_size"].toInt(); unsigned long long lbaWritten = attrObj["raw"].toObject()["value"].toVariant().toLongLong(); unsigned long long oneGB = static_cast(std::pow(2, 30)); - unsigned long long totalGbWriten = (lbaWritten * logicalBlockSize) / oneGB; - totalWrites = QString::number(static_cast(totalGbWriten)) + " GB"; + unsigned long long totalGbWritten = (lbaWritten * logicalBlockSize) / oneGB; + totalWrites = QString::number(static_cast(totalGbWritten)) + " GB"; } } else if (attrObj["id"] == 242) { if (attrObj["name"] == "Total_Reads_GB") { @@ -221,19 +221,33 @@ void MainWindow::populateWindow(const QJsonObject &localObj, const QString &heal unsigned int logicalBlockSize = localObj["logical_block_size"].toInt(); unsigned long long lbaRead = attrObj["raw"].toObject()["value"].toVariant().toLongLong(); unsigned long long oneGB = static_cast(std::pow(2, 30)); - unsigned long long totalGbWriten = (lbaRead * logicalBlockSize) / oneGB; - totalReads = QString::number(static_cast(totalGbWriten)) + " GB"; + unsigned long long totalGbRead = (lbaRead * logicalBlockSize) / oneGB; + totalReads = QString::number(static_cast(totalGbRead)) + " GB"; } } else if (attrObj["id"] == 246) { // MX500 if (attrObj["name"] == "Total_LBAs_Written") { unsigned int logicalBlockSize = localObj["logical_block_size"].toInt(); unsigned long long lbaWritten = attrObj["raw"].toObject()["value"].toVariant().toLongLong(); unsigned long long oneGB = static_cast(std::pow(2, 30)); - unsigned long long totalGbWriten = (lbaWritten * logicalBlockSize) / oneGB; - totalWrites = QString::number(static_cast(totalGbWriten)) + " GB"; + unsigned long long totalGbWritten = (lbaWritten * logicalBlockSize) / oneGB; + totalWrites = QString::number(static_cast(totalGbWritten)) + " GB"; } } } + } else { + for (auto smartItem = nvmeLog.begin(); smartItem != nvmeLog.end(); ++smartItem) { + QString key = smartItem.key(); + QJsonValue value = smartItem.value(); + if (key == "data_units_written") { + double dataUnitsWritten = value.toDouble(); + double totalGbWritten = (dataUnitsWritten * 512) / 1'000'000; + totalWrites = QString::number(static_cast(totalGbWritten)) + " GB"; + } else if (key == "data_units_read") { + double dataUnitsRead = value.toDouble(); + double totalGbRead = (dataUnitsRead * 512) / 1'000'000; + totalReads = QString::number(static_cast(totalGbRead)) + " GB"; + } + } } totalReadsLineEdit->setText(totalReads);