From: snickersun Date: Tue, 21 Apr 2026 06:59:25 +0000 (+0800) Subject: 添加4g信号判断界面调整参数 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=b4ee4bdb665b5db787fcd9cf9e92dcc686aa22f8;p=mirrors%2Ffactory_tool.git 添加4g信号判断界面调整参数 --- diff --git a/mainwindow.cpp b/mainwindow.cpp index c90e947..a6bcc62 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -37,7 +37,7 @@ MainWindow::MainWindow(QWidget *parent) , ui(new Ui::MainWindow) { ui->setupUi(this); - setWindowTitle("雷鸟产测工具 V1.8"); + setWindowTitle("雷鸟产测工具 V1.9"); // 确保控制台输出使用UTF-8编码 QTextCodec *utf8Codec = QTextCodec::codecForName("UTF-8"); @@ -946,6 +946,16 @@ bool MainWindow::isEGModem() const return result; } +double MainWindow::getCat1SignalThreshold() const +{ + const QString s = ui->cat1RSSILineEdit->text().trimmed(); + if (s.isEmpty()) + return 25.0; + bool ok = false; + const double v = s.toDouble(&ok); + return ok ? v : 25.0; +} + // 解析MESSAGE_4G_NETWORK_STAT_CHANGED格式数据 void MainWindow::parseNetworkStatChanged(const QString& data) { @@ -3596,13 +3606,14 @@ void MainWindow::checkSignalAndSimValues(const QString& data) } // 判断4G测试是否通过(这段代码理论上不会执行到) + const double cat1Th = getCat1SignalThreshold(); bool simOk = (simValue == 1); - bool signalOk = (signalValue > 25); + bool signalOk = (signalValue > cat1Th); bool testPassed = simOk && signalOk; qDebug() << "4G测试判断结果:"; qDebug() << " sim值:" << simValue << "(期望: 1)" << "检查结果:" << (simOk ? "通过" : "失败"); - qDebug() << " signal值:" << signalValue << "(期望: >25)" << "检查结果:" << (signalOk ? "通过" : "失败"); + qDebug() << " signal值:" << signalValue << "(期望: >" << cat1Th << ")" << "检查结果:" << (signalOk ? "通过" : "失败"); qDebug() << " 最终测试结果:" << (testPassed ? "通过" : "失败"); qDebug() << " 警告:此代码不应该执行到,因为已启动CAT1测试"; @@ -3620,8 +3631,8 @@ void MainWindow::checkSignalAndSimValues(const QString& data) } if (signalValue == 99) { failReason += QString("无效信号值(值:%1)").arg(signalValue); - } else if (signalValue <= 25) { - failReason += QString("信号强度不足(值:%1,期望:>25)").arg(signalValue); + } else if (signalValue <= cat1Th) { + failReason += QString("信号强度不足(值:%1,期望:>%2)").arg(signalValue).arg(cat1Th, 0, 'g', 10); } ui->statusbar->showMessage(QString("4G测试失败 - %1").arg(failReason), 3000); @@ -5280,7 +5291,7 @@ void MainWindow::checkCat1SignalResult(const QString& data) } else { // 累加有效信号值用于计算平均值 cat1SignalTotalValue += signalValue; - if (signalValue > 25) { + if (signalValue > getCat1SignalThreshold()) { cat1SignalGoodCount++; } @@ -5382,6 +5393,7 @@ void MainWindow::onCat1SignalTimer() // 计算平均信号值并判断测试结果 int validCount = cat1SignalReceivedCount - cat1Signal99Count; double averageSignal = validCount > 0 ? (double)cat1SignalTotalValue / validCount : 0; + const double signalThreshold = getCat1SignalThreshold(); qDebug() << "CAT1信号测试完成,统计结果:"; qDebug() << " 发送指令次数:" << cat1SignalTestCount; @@ -5390,6 +5402,7 @@ void MainWindow::onCat1SignalTimer() qDebug() << " 无效信号(99)次数:" << cat1Signal99Count; qDebug() << " 信号值总和:" << cat1SignalTotalValue; qDebug() << " 平均信号值:" << averageSignal; + qDebug() << " 门槛(4G Min Signal):" << signalThreshold; if (cat1Signal99Count >= 5) { // 连续5次都是99,判定为失败 @@ -5406,10 +5419,12 @@ void MainWindow::onCat1SignalTimer() updateTestStatus("fourg_signal", STATUS_FAILED); updateTestStatus("ping", STATUS_UNTESTED); } - } else if (validCount > 0 && averageSignal >= 25.0) { - // 平均信号值大于等于25,判定为通过 - qDebug() << "CAT1信号测试通过,平均信号值" << averageSignal << "大于等于25"; - ui->statusbar->showMessage(QString("CAT1信号测试通过 - 平均信号值:%1").arg(averageSignal, 0, 'f', 1), 3000); + } else if (validCount > 0 && averageSignal >= signalThreshold) { + // 平均信号值大于等于门槛,判定为通过 + qDebug() << "CAT1信号测试通过,平均信号值" << averageSignal << "大于等于门槛" << signalThreshold; + ui->statusbar->showMessage(QString("CAT1信号测试通过 - 平均:%1 门槛:%2") + .arg(averageSignal, 0, 'f', 1) + .arg(signalThreshold, 0, 'g', 10), 3000); updateTestStatus("fourg_signal", STATUS_SUCCESS); @@ -5422,12 +5437,14 @@ void MainWindow::onCat1SignalTimer() updateTestStatus("ping", STATUS_UNTESTED); } } else { - // 平均信号值小于25或没有有效数据,判定为失败 + // 平均信号值低于门槛或没有有效数据,判定为失败 QString failReason; if (validCount == 0) { failReason = "没有有效信号数据"; } else { - failReason = QString("平均信号值%1小于25").arg(averageSignal, 0, 'f', 1); + failReason = QString("平均信号值%1小于门槛%2") + .arg(averageSignal, 0, 'f', 1) + .arg(signalThreshold, 0, 'g', 10); } qDebug() << "CAT1信号测试失败," << failReason; diff --git a/mainwindow.h b/mainwindow.h index 2f74975..3c35dd3 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -127,6 +127,8 @@ private slots: void checkPingTestResult(const QString& data); // 检查Ping测试结果 void onPingTestTimeout(); // Ping测试超时 bool isEGModem() const; + /** 4G Min Signal:未填写时用 25,有填写时用输入数值 */ + double getCat1SignalThreshold() const; bool isValidIMEI(const QString& imei); bool isValidICCID(const QString& iccid); diff --git a/mainwindow.ui b/mainwindow.ui index 478a0e2..9b83cb2 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -91,6 +91,7 @@ background-color: #7B1FA2; Arial Black + 14 75 true @@ -224,6 +225,7 @@ background-color: #F57C00; Arial Black + 14 75 true @@ -419,6 +421,26 @@ background-color: #F57C00; + + + + 4G Min RSSI + + + + + + + + + + + + + 默认 25 + + + @@ -486,11 +508,35 @@ background-color: #F57C00; - - - 发送 - - + + + + + 发送 + + + + + + + + 0 + 0 + + + + + Arial + 10 + true + + + + 指令自动加回车 + + + + @@ -734,8 +780,8 @@ background-color: #F57C00; 0 0 - 552 - 630 + 503 + 592 @@ -1303,7 +1349,7 @@ background-color: #F57C00; 0 0 1309 - 21 + 36