diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/common/utils/QSerialPortUtil.cpp b/common/utils/QSerialPortUtil.cpp index 4faa3a1..a641d86 100644 --- a/common/utils/QSerialPortUtil.cpp +++ b/common/utils/QSerialPortUtil.cpp @@ -22,17 +22,17 @@ open = serial.open(QIODevice::ReadWrite); qDebug() << portName << baudRate << open; - if (open == true) - { +// if (open == true) +// { // 绑定信号与槽 connect(&serial, &QSerialPort::readyRead, this, &QSerialPortUtil::readData); // // mock data received per second -// QTimer * timer = new QTimer(this); -// lastValue = new double[16] {0.0}; -// connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); -// timer->start(1000); - } + QTimer * timer = new QTimer(this); + lastValue = new int[16] {0}; + connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); + timer->start(1000); +// } } void QSerialPortUtil::sendData(QByteArray data) @@ -60,7 +60,7 @@ { QDateTime now = QDateTime::currentDateTime(); - QString frameId = now.toString("HHmmsszzz"); + QString frameId = now.toString("ddHHmmss"); QByteArray buffer; buffer.append(QByteUtil::hexStringToBytes(frameId.mid(0, 8))); diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/common/utils/QSerialPortUtil.cpp b/common/utils/QSerialPortUtil.cpp index 4faa3a1..a641d86 100644 --- a/common/utils/QSerialPortUtil.cpp +++ b/common/utils/QSerialPortUtil.cpp @@ -22,17 +22,17 @@ open = serial.open(QIODevice::ReadWrite); qDebug() << portName << baudRate << open; - if (open == true) - { +// if (open == true) +// { // 绑定信号与槽 connect(&serial, &QSerialPort::readyRead, this, &QSerialPortUtil::readData); // // mock data received per second -// QTimer * timer = new QTimer(this); -// lastValue = new double[16] {0.0}; -// connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); -// timer->start(1000); - } + QTimer * timer = new QTimer(this); + lastValue = new int[16] {0}; + connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); + timer->start(1000); +// } } void QSerialPortUtil::sendData(QByteArray data) @@ -60,7 +60,7 @@ { QDateTime now = QDateTime::currentDateTime(); - QString frameId = now.toString("HHmmsszzz"); + QString frameId = now.toString("ddHHmmss"); QByteArray buffer; buffer.append(QByteUtil::hexStringToBytes(frameId.mid(0, 8))); diff --git a/common/utils/QSerialPortUtil.h b/common/utils/QSerialPortUtil.h index a1db0e4..44fbd60 100644 --- a/common/utils/QSerialPortUtil.h +++ b/common/utils/QSerialPortUtil.h @@ -19,7 +19,7 @@ private: QSerialPort serial; - double * lastValue; + int * lastValue; bool open; diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/common/utils/QSerialPortUtil.cpp b/common/utils/QSerialPortUtil.cpp index 4faa3a1..a641d86 100644 --- a/common/utils/QSerialPortUtil.cpp +++ b/common/utils/QSerialPortUtil.cpp @@ -22,17 +22,17 @@ open = serial.open(QIODevice::ReadWrite); qDebug() << portName << baudRate << open; - if (open == true) - { +// if (open == true) +// { // 绑定信号与槽 connect(&serial, &QSerialPort::readyRead, this, &QSerialPortUtil::readData); // // mock data received per second -// QTimer * timer = new QTimer(this); -// lastValue = new double[16] {0.0}; -// connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); -// timer->start(1000); - } + QTimer * timer = new QTimer(this); + lastValue = new int[16] {0}; + connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); + timer->start(1000); +// } } void QSerialPortUtil::sendData(QByteArray data) @@ -60,7 +60,7 @@ { QDateTime now = QDateTime::currentDateTime(); - QString frameId = now.toString("HHmmsszzz"); + QString frameId = now.toString("ddHHmmss"); QByteArray buffer; buffer.append(QByteUtil::hexStringToBytes(frameId.mid(0, 8))); diff --git a/common/utils/QSerialPortUtil.h b/common/utils/QSerialPortUtil.h index a1db0e4..44fbd60 100644 --- a/common/utils/QSerialPortUtil.h +++ b/common/utils/QSerialPortUtil.h @@ -19,7 +19,7 @@ private: QSerialPort serial; - double * lastValue; + int * lastValue; bool open; diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 8d48bd7..d4919b4 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -28,8 +28,6 @@ NET_TYPE = getProperty("dev", "type").toInt(); CHANNEL_COUNT = getProperty("dev", "channelCount").toUInt(); SKIP_HEADER = getProperty("dev", "skipHeader").toUInt(); - MAX_COUNT = getProperty("dev", "maxCount").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); - DELAY_ARR = getProperty("delay", "delayArr").toString().split(","); } diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/common/utils/QSerialPortUtil.cpp b/common/utils/QSerialPortUtil.cpp index 4faa3a1..a641d86 100644 --- a/common/utils/QSerialPortUtil.cpp +++ b/common/utils/QSerialPortUtil.cpp @@ -22,17 +22,17 @@ open = serial.open(QIODevice::ReadWrite); qDebug() << portName << baudRate << open; - if (open == true) - { +// if (open == true) +// { // 绑定信号与槽 connect(&serial, &QSerialPort::readyRead, this, &QSerialPortUtil::readData); // // mock data received per second -// QTimer * timer = new QTimer(this); -// lastValue = new double[16] {0.0}; -// connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); -// timer->start(1000); - } + QTimer * timer = new QTimer(this); + lastValue = new int[16] {0}; + connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); + timer->start(1000); +// } } void QSerialPortUtil::sendData(QByteArray data) @@ -60,7 +60,7 @@ { QDateTime now = QDateTime::currentDateTime(); - QString frameId = now.toString("HHmmsszzz"); + QString frameId = now.toString("ddHHmmss"); QByteArray buffer; buffer.append(QByteUtil::hexStringToBytes(frameId.mid(0, 8))); diff --git a/common/utils/QSerialPortUtil.h b/common/utils/QSerialPortUtil.h index a1db0e4..44fbd60 100644 --- a/common/utils/QSerialPortUtil.h +++ b/common/utils/QSerialPortUtil.h @@ -19,7 +19,7 @@ private: QSerialPort serial; - double * lastValue; + int * lastValue; bool open; diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 8d48bd7..d4919b4 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -28,8 +28,6 @@ NET_TYPE = getProperty("dev", "type").toInt(); CHANNEL_COUNT = getProperty("dev", "channelCount").toUInt(); SKIP_HEADER = getProperty("dev", "skipHeader").toUInt(); - MAX_COUNT = getProperty("dev", "maxCount").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); - DELAY_ARR = getProperty("delay", "delayArr").toString().split(","); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index cb9c75b..3a74617 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -38,12 +38,9 @@ quint8 CHANNEL_COUNT; quint8 SKIP_HEADER; - quint16 MAX_COUNT; QString BASE_LOG_PATH; - QStringList DELAY_ARR; - private: SettingConfig(); diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/common/utils/QSerialPortUtil.cpp b/common/utils/QSerialPortUtil.cpp index 4faa3a1..a641d86 100644 --- a/common/utils/QSerialPortUtil.cpp +++ b/common/utils/QSerialPortUtil.cpp @@ -22,17 +22,17 @@ open = serial.open(QIODevice::ReadWrite); qDebug() << portName << baudRate << open; - if (open == true) - { +// if (open == true) +// { // 绑定信号与槽 connect(&serial, &QSerialPort::readyRead, this, &QSerialPortUtil::readData); // // mock data received per second -// QTimer * timer = new QTimer(this); -// lastValue = new double[16] {0.0}; -// connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); -// timer->start(1000); - } + QTimer * timer = new QTimer(this); + lastValue = new int[16] {0}; + connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); + timer->start(1000); +// } } void QSerialPortUtil::sendData(QByteArray data) @@ -60,7 +60,7 @@ { QDateTime now = QDateTime::currentDateTime(); - QString frameId = now.toString("HHmmsszzz"); + QString frameId = now.toString("ddHHmmss"); QByteArray buffer; buffer.append(QByteUtil::hexStringToBytes(frameId.mid(0, 8))); diff --git a/common/utils/QSerialPortUtil.h b/common/utils/QSerialPortUtil.h index a1db0e4..44fbd60 100644 --- a/common/utils/QSerialPortUtil.h +++ b/common/utils/QSerialPortUtil.h @@ -19,7 +19,7 @@ private: QSerialPort serial; - double * lastValue; + int * lastValue; bool open; diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 8d48bd7..d4919b4 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -28,8 +28,6 @@ NET_TYPE = getProperty("dev", "type").toInt(); CHANNEL_COUNT = getProperty("dev", "channelCount").toUInt(); SKIP_HEADER = getProperty("dev", "skipHeader").toUInt(); - MAX_COUNT = getProperty("dev", "maxCount").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); - DELAY_ARR = getProperty("delay", "delayArr").toString().split(","); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index cb9c75b..3a74617 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -38,12 +38,9 @@ quint8 CHANNEL_COUNT; quint8 SKIP_HEADER; - quint16 MAX_COUNT; QString BASE_LOG_PATH; - QStringList DELAY_ARR; - private: SettingConfig(); diff --git a/conf/config.ini b/conf/config.ini index d840662..3d60894 100644 --- a/conf/config.ini +++ b/conf/config.ini @@ -11,10 +11,6 @@ type=0 channelCount=16 skipHeader=5 -maxCount=86400 [log] basePath=C:/casic/logs/ - -[delay] -delayArr="178,200,0.00,0.00,0.00,0.00,0.00,0.00,-26,0.00,0.00,0.00,0.00,0.00,0.00,0.00" diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/common/utils/QSerialPortUtil.cpp b/common/utils/QSerialPortUtil.cpp index 4faa3a1..a641d86 100644 --- a/common/utils/QSerialPortUtil.cpp +++ b/common/utils/QSerialPortUtil.cpp @@ -22,17 +22,17 @@ open = serial.open(QIODevice::ReadWrite); qDebug() << portName << baudRate << open; - if (open == true) - { +// if (open == true) +// { // 绑定信号与槽 connect(&serial, &QSerialPort::readyRead, this, &QSerialPortUtil::readData); // // mock data received per second -// QTimer * timer = new QTimer(this); -// lastValue = new double[16] {0.0}; -// connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); -// timer->start(1000); - } + QTimer * timer = new QTimer(this); + lastValue = new int[16] {0}; + connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); + timer->start(1000); +// } } void QSerialPortUtil::sendData(QByteArray data) @@ -60,7 +60,7 @@ { QDateTime now = QDateTime::currentDateTime(); - QString frameId = now.toString("HHmmsszzz"); + QString frameId = now.toString("ddHHmmss"); QByteArray buffer; buffer.append(QByteUtil::hexStringToBytes(frameId.mid(0, 8))); diff --git a/common/utils/QSerialPortUtil.h b/common/utils/QSerialPortUtil.h index a1db0e4..44fbd60 100644 --- a/common/utils/QSerialPortUtil.h +++ b/common/utils/QSerialPortUtil.h @@ -19,7 +19,7 @@ private: QSerialPort serial; - double * lastValue; + int * lastValue; bool open; diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 8d48bd7..d4919b4 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -28,8 +28,6 @@ NET_TYPE = getProperty("dev", "type").toInt(); CHANNEL_COUNT = getProperty("dev", "channelCount").toUInt(); SKIP_HEADER = getProperty("dev", "skipHeader").toUInt(); - MAX_COUNT = getProperty("dev", "maxCount").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); - DELAY_ARR = getProperty("delay", "delayArr").toString().split(","); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index cb9c75b..3a74617 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -38,12 +38,9 @@ quint8 CHANNEL_COUNT; quint8 SKIP_HEADER; - quint16 MAX_COUNT; QString BASE_LOG_PATH; - QStringList DELAY_ARR; - private: SettingConfig(); diff --git a/conf/config.ini b/conf/config.ini index d840662..3d60894 100644 --- a/conf/config.ini +++ b/conf/config.ini @@ -11,10 +11,6 @@ type=0 channelCount=16 skipHeader=5 -maxCount=86400 [log] basePath=C:/casic/logs/ - -[delay] -delayArr="178,200,0.00,0.00,0.00,0.00,0.00,0.00,-26,0.00,0.00,0.00,0.00,0.00,0.00,0.00" diff --git a/protocol/PhaseProtocolBM.cpp b/protocol/PhaseProtocolBM.cpp index 93a2187..3960f9a 100644 --- a/protocol/PhaseProtocolBM.cpp +++ b/protocol/PhaseProtocolBM.cpp @@ -36,26 +36,23 @@ if (channelRawData == CALCULATE_OFFSET) { dataObj->channelActive.append("0"); - dataObj->rawPhaseDiffData.append(0); - dataObj->channelBeforeDelay.append(0.00); +// dataObj->rawPhaseDiffData.append(0); dataObj->channelData.append(0.00); - dataObj->channelDataStr.append("0.00"); +// dataObj->channelDataStr.append("0.00"); } else if (channelRawData > CALCULATE_OFFSET) { double phase = (channelRawData - CALCULATE_OFFSET) * CALCULATE_FACTOR; dataObj->channelActive.append("1"); - dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); - dataObj->channelBeforeDelay.append(phase); - dataObj->channelData.append(phase); // 暂时不加补偿值 - dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); +// dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); + dataObj->channelData.append(phase); // 暂时不加补偿值,界面显示时再计算补偿后的值 +// dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); } else { - double phase = (CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; + double phase = -1.0 * (CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; // rawData是无符号long 相位有正有负 小于CALCULATE_OFFSET时是负值 dataObj->channelActive.append("1"); - dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); - dataObj->channelBeforeDelay.append(phase); - dataObj->channelData.append(phase); // 暂时不加补偿值 - dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); +// dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); + dataObj->channelData.append(phase); // 暂时不加补偿值,界面显示时再计算补偿后的值 +// dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); } } diff --git a/ChannelItem.cpp b/ChannelItem.cpp index 5cca632..6a77a0b 100644 --- a/ChannelItem.cpp +++ b/ChannelItem.cpp @@ -2,6 +2,7 @@ #include "ui_ChannelItem.h" #include +#include ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), @@ -10,7 +11,6 @@ ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); - ui->delay->setFont(font); this->setProperty("form", "channel"); } @@ -20,15 +20,6 @@ delete ui; } -double ChannelItem::getChannelDelay() -{ - return channelDelay; -} -void ChannelItem::setChannelDelay(double value) -{ - channelDelay = value; - ui->delay->setValue(value); -} void ChannelItem::setIndex(int value) { @@ -38,9 +29,8 @@ void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); - double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据 + double ps = phaseData->channelData.at(index) * 1e12; // 显示ps数据 ui->rawValue->setText(QString::number(ps, 'f', 3) + "ps"); // 原始数据显示单位为ps - ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 3) + "ps"); // 补偿值的单位也是ps, 补偿后也显示为ps ui->samplingOne->setText(QString::number(size)); ui->samplingTen->setText(QString::number((int)size/10)); ui->samplingHund->setText(QString::number((int)size/100)); @@ -54,23 +44,26 @@ ui->stabilityTT->setText(channelAllan.at(index).isEmpty() == false ? QString::number(channelAllan.at(index).at(4), 'e', 4) : "0.0000"); } -void ChannelItem::on_delay_valueChanged(int value) -{ - channelDelay = value; - SettingConfig::getInstance().DELAY_ARR.replace(index, QString("%1").arg(value)); - QString str = SettingConfig::getInstance().DELAY_ARR.join(","); - SettingConfig::getInstance().setConProperty("delay", "delayArr", str); -} void ChannelItem::on_clearDataButt_clicked() { - // 清除测量数据 - QVector pNullVector; + QMessageBox confirmBox(QMessageBox::Question, "确认", "是否清除数据以重新计算稳定度?", NULL); + confirmBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No); + confirmBox.button(QMessageBox::Yes)->setText("是"); + confirmBox.button(QMessageBox::Yes)->setMinimumWidth(50); + confirmBox.button(QMessageBox::No)->setText("否"); - QMutex mutex; - mutex.lock(); - phaseVector[index].swap(pNullVector); - mutex.unlock(); + if (confirmBox.exec() == QMessageBox::Yes) { + // 清除测量数据 + QVector pNullVector; + QVector pNullAllen(5, 0.0); + + QMutex mutex; + mutex.lock(); + phaseVector[index].clear(); + channelAllenSigma[index].swap(pNullAllen); + mutex.unlock(); + } } void ChannelItem::on_chartViewButt_clicked() diff --git a/ChannelItem.h b/ChannelItem.h index 592dc97..5366f53 100644 --- a/ChannelItem.h +++ b/ChannelItem.h @@ -22,20 +22,16 @@ explicit ChannelItem(QWidget *parent = nullptr); ~ChannelItem(); - double getChannelDelay(); void setIndex(int value); void updatePhaseMeasureData(PhaseDataDto * phaseData); - void setChannelDelay(double value); private slots: - void on_delay_valueChanged(int value); void on_clearDataButt_clicked(); void on_chartViewButt_clicked(); private: Ui::ChannelItem *ui; int index; - double channelDelay = 0.0; }; #endif // CHANNELITEM_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 3547b99..482666d 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -497,32 +497,6 @@ - - - - 微软雅黑 - 12 - - - - 时延补偿: - - - - - - - - 微软雅黑 - 12 - - - - 补偿后值: - - - - @@ -561,38 +535,6 @@ - - - - 微软雅黑 - 12 - - - - ps - - - -9999 - - - 99999 - - - - - - - - 微软雅黑 - 12 - - - - 0 ps - - - - diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 6868bc9..c90552a 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -43,7 +43,7 @@ serialUtil->openSerialPort(SettingConfig::getInstance().PORT_NAME, SettingConfig::getInstance().BAUD_RATE); serialUtil->sendData(startCmd.toLocal8Bit()); - return serialUtil->isOpen(); + return !serialUtil->isOpen(); case 1: clientUtil = new UDPClientUtil(this); connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); @@ -137,20 +137,19 @@ if (phaseData->channelActive.at(i) == "1") { // 3.1 计算补偿的值 - double channelDelay = SettingConfig::getInstance().DELAY_ARR.at(i).toInt() * 1e-12; // 单位为ps - phaseData->channelData[i] = phaseData->channelBeforeDelay.at(i) + channelDelay; - phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); + phaseData->channelData[i] = phaseData->channelData.at(i); +// phaseData->channelDataStr[i] = QString::number(phaseData->channelData.at(i), 'f', 15); // 3.2 将通道数据写日志 QString chFilename = QString("CH_%1.log").arg(i + 1, 2, 10, QLatin1Char('0')); QString channelDataStr = QString("%1 %2") .arg(phaseData->timestamp) - .arg(QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6)); + .arg(QString::number(phaseData->channelData.at(i), 'e', 6)); QLogUtil::writeChannelDataLogByDate(phaseData->timestamp.mid(0, 10), chFilename, channelDataStr); - // 3.3 将补偿前的时差数据存入数据栈, 用于计算allen方差 + // 3.3 将补偿后的时差数据存入数据栈, 用于计算allen方差 QStringList valueList; - valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelBeforeDelay.at(i), 'e', 6); + valueList << QString::number(phaseData->milisecond) << QString::number(phaseData->channelData.at(i), 'e', 6); QMutex mutex; mutex.lock(); phaseVector[i].append(valueList); diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 04d5f35..495def0 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -158,7 +158,6 @@ ChannelItem * channelItem = new ChannelItem(); channelItem->setGeometry(10, 0, screenRect.width() - 60, 160); channelItem->setIndex(i); - channelItem->setChannelDelay(SettingConfig::getInstance().DELAY_ARR.at(i).toDouble()); this->channelItemList.append(channelItem); vbox->addWidget(channelItem); group->setLayout(vbox); @@ -255,10 +254,10 @@ // 发送开始指令 bool succ = device->startWork(); if (succ == false) { - QMessageBox::warning(this, "开始失败", "开始采集失败,请检查与设备的连接"); + QMessageBox::warning(this, "开始失败", "开始测量失败,请检查与设备的连接"); return; } else { - QMessageBox::information(this, "开始成功", "开始采集成功"); + QMessageBox::information(this, "开始成功", "开始测量成功"); running = true; } @@ -283,7 +282,6 @@ for (int i = 0; i < phaseVector.size(); i++) { phaseVector[i].clear(); - qDebug() << i << channelAllan[i].size() << channelAllenSigma[i].size(); for (int j = 0; j < channelAllan[i].size(); j++) { channelAllan[i][j] = 0; channelAllenSigma[i][j] = 0; diff --git a/common/utils/QSerialPortUtil.cpp b/common/utils/QSerialPortUtil.cpp index 4faa3a1..a641d86 100644 --- a/common/utils/QSerialPortUtil.cpp +++ b/common/utils/QSerialPortUtil.cpp @@ -22,17 +22,17 @@ open = serial.open(QIODevice::ReadWrite); qDebug() << portName << baudRate << open; - if (open == true) - { +// if (open == true) +// { // 绑定信号与槽 connect(&serial, &QSerialPort::readyRead, this, &QSerialPortUtil::readData); // // mock data received per second -// QTimer * timer = new QTimer(this); -// lastValue = new double[16] {0.0}; -// connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); -// timer->start(1000); - } + QTimer * timer = new QTimer(this); + lastValue = new int[16] {0}; + connect(timer, &QTimer::timeout, this, &QSerialPortUtil::mockReceivData); + timer->start(1000); +// } } void QSerialPortUtil::sendData(QByteArray data) @@ -60,7 +60,7 @@ { QDateTime now = QDateTime::currentDateTime(); - QString frameId = now.toString("HHmmsszzz"); + QString frameId = now.toString("ddHHmmss"); QByteArray buffer; buffer.append(QByteUtil::hexStringToBytes(frameId.mid(0, 8))); diff --git a/common/utils/QSerialPortUtil.h b/common/utils/QSerialPortUtil.h index a1db0e4..44fbd60 100644 --- a/common/utils/QSerialPortUtil.h +++ b/common/utils/QSerialPortUtil.h @@ -19,7 +19,7 @@ private: QSerialPort serial; - double * lastValue; + int * lastValue; bool open; diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 8d48bd7..d4919b4 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -28,8 +28,6 @@ NET_TYPE = getProperty("dev", "type").toInt(); CHANNEL_COUNT = getProperty("dev", "channelCount").toUInt(); SKIP_HEADER = getProperty("dev", "skipHeader").toUInt(); - MAX_COUNT = getProperty("dev", "maxCount").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); - DELAY_ARR = getProperty("delay", "delayArr").toString().split(","); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index cb9c75b..3a74617 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -38,12 +38,9 @@ quint8 CHANNEL_COUNT; quint8 SKIP_HEADER; - quint16 MAX_COUNT; QString BASE_LOG_PATH; - QStringList DELAY_ARR; - private: SettingConfig(); diff --git a/conf/config.ini b/conf/config.ini index d840662..3d60894 100644 --- a/conf/config.ini +++ b/conf/config.ini @@ -11,10 +11,6 @@ type=0 channelCount=16 skipHeader=5 -maxCount=86400 [log] basePath=C:/casic/logs/ - -[delay] -delayArr="178,200,0.00,0.00,0.00,0.00,0.00,0.00,-26,0.00,0.00,0.00,0.00,0.00,0.00,0.00" diff --git a/protocol/PhaseProtocolBM.cpp b/protocol/PhaseProtocolBM.cpp index 93a2187..3960f9a 100644 --- a/protocol/PhaseProtocolBM.cpp +++ b/protocol/PhaseProtocolBM.cpp @@ -36,26 +36,23 @@ if (channelRawData == CALCULATE_OFFSET) { dataObj->channelActive.append("0"); - dataObj->rawPhaseDiffData.append(0); - dataObj->channelBeforeDelay.append(0.00); +// dataObj->rawPhaseDiffData.append(0); dataObj->channelData.append(0.00); - dataObj->channelDataStr.append("0.00"); +// dataObj->channelDataStr.append("0.00"); } else if (channelRawData > CALCULATE_OFFSET) { double phase = (channelRawData - CALCULATE_OFFSET) * CALCULATE_FACTOR; dataObj->channelActive.append("1"); - dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); - dataObj->channelBeforeDelay.append(phase); - dataObj->channelData.append(phase); // 暂时不加补偿值 - dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); +// dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); + dataObj->channelData.append(phase); // 暂时不加补偿值,界面显示时再计算补偿后的值 +// dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); } else { - double phase = (CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; + double phase = -1.0 * (CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; // rawData是无符号long 相位有正有负 小于CALCULATE_OFFSET时是负值 dataObj->channelActive.append("1"); - dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); - dataObj->channelBeforeDelay.append(phase); - dataObj->channelData.append(phase); // 暂时不加补偿值 - dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); +// dataObj->rawPhaseDiffData.append(channelRawData - CALCULATE_OFFSET); + dataObj->channelData.append(phase); // 暂时不加补偿值,界面显示时再计算补偿后的值 +// dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); } } diff --git a/protocol/dto/PhaseDataDto.h b/protocol/dto/PhaseDataDto.h index 02ff056..8bdbb0c 100644 --- a/protocol/dto/PhaseDataDto.h +++ b/protocol/dto/PhaseDataDto.h @@ -20,10 +20,9 @@ QString devCode; QString devStatus; QList channelActive; - QList rawPhaseDiffData; // 原始相差数据 - QList channelBeforeDelay; // 补偿前的时差数据 - QList channelData; // 补偿后的时差数据 - QList channelDataStr; // 补偿后的时差数据格式化显示字符串 +// QList rawPhaseDiffData; // 原始相差数据 + QList channelData; // 补偿后的时差数据,用于计算 +// QList channelDataStr; // 补偿后的时差数据格式化显示字符串 signals: