#include "ChannelItem.h" #include "ui_ChannelItem.h" #include <QMutex> ChannelItem::ChannelItem(QWidget *parent) : QWidget(parent), ui(new Ui::ChannelItem) { ui->setupUi(this); QFont font("微软雅黑"); font.setPixelSize(16); ui->delay->setFont(font); this->setProperty("form", "channel"); } ChannelItem::~ChannelItem() { delete ui; } double ChannelItem::getChannelDelay() { return channelDelay; } void ChannelItem::setChannelDelay(double value) { channelDelay = value; ui->delay->setValue(value); } void ChannelItem::setIndex(int value) { index = value; } void ChannelItem::updatePhaseMeasureData(PhaseDataDto * phaseData) { int size = phaseVector.at(index).size(); double ps = phaseData->channelBeforeDelay.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)); ui->samplingThou->setText(QString::number((int)size/1000)); ui->samplingTT->setText(QString::number((int)size/10000)); ui->stabilityOne->setText(QString::number(channelAllan.at(index).at(0), 'e', 4)); // 科学计数法显示 ui->stabilityTen->setText(QString::number(channelAllan.at(index).at(1), 'e', 4)); ui->stabilityHund->setText(QString::number(channelAllan.at(index).at(2), 'e', 4)); ui->stabilityThou->setText(QString::number(channelAllan.at(index).at(3), 'e', 4)); ui->stabilityTT->setText(QString::number(channelAllan.at(index).at(4), 'e', 4)); } 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<QStringList> pNullVector; QMutex mutex; mutex.lock(); phaseVector[index].swap(pNullVector); mutex.unlock(); } void ChannelItem::on_chartViewButt_clicked() { ChannelCharts * chartFrame = new ChannelCharts(); chartFrame->setWindowModality(Qt::ApplicationModal); chartFrame->initAllenChart(index); chartFrame->initDataChart(index); chartFrame->setTitleText((QString("通道 - %1 数据曲线").arg(index + 1))); chartFrame->show(); }