Newer
Older
PhaseMeasure / ChannelItem.cpp
#include "ChannelItem.h"
#include "ui_ChannelItem.h"

ChannelItem::ChannelItem(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ChannelItem)
{
    ui->setupUi(this);
    ui->delay->setStyleSheet("height: 30px; border:1px solid; border-radius:4px;");
    ui->delay->setFont(QFont("微软雅黑", 10));
}

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() - SettingConfig::getInstance().SKIP_HEADER;
    if (size < 0) size = 0;
    double ps = phaseData->channelBeforeDelay.at(index) * 1e12; // 显示ps数据
    ui->rawValue->setText(QString::number(ps, 'f', 0) + "ps"); // 原始数据显示单位为ps
    ui->channelValue->setText(QString::number(ps + channelDelay, 'f', 0) + "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(phaseData->channelAllan.at(index).at(0)));
    ui->stabilityTen->setText(QString::number(phaseData->channelAllan.at(index).at(1)));
    ui->stabilityHund->setText(QString::number(phaseData->channelAllan.at(index).at(2)));
    ui->stabilityThou->setText(QString::number(phaseData->channelAllan.at(index).at(3)));
    ui->stabilityTT->setText(QString::number(phaseData->channelAllan.at(index).at(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);
}