qt/ledset/ic_ui/normaleffectwin.cpp
2023-09-15 10:59:00 +08:00

294 lines
21 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "normaleffectwin.h"
#include "globalfunc.h"
#include "gutil/qgui.h"
#include <QPushButton>
#include <QStackedWidget>
#include <QCheckBox>
#include "efffrefr.h"
NormalEffectWin::NormalEffectWin(ExpertWin *parent)
{
expertWin=parent;
resize(880, 220);
{
if(expertWin->m_iRcvCardType == enum_zrf)
{
auto vBox1=new VBox(this);
auto hh = new HBox(vBox1);
hh->addSpacing(20);
//第一列区域
auto vvv = new VBox(hh);
//1.1.移位时钟频率
auto hhh = new HBox(vvv);
auto lb = new QLabel(tr("DCLK频率:"));
hhh->addWidget(lb);
cbDCLKf = new QComboBox(); cbDCLKf->addItem("31.2M");cbDCLKf->addItem("25M");cbDCLKf->addItem("20.83M");cbDCLKf->addItem("17.86M");cbDCLKf->addItem("15.63M");cbDCLKf->addItem("12.5M");cbDCLKf->addItem("10.42M");cbDCLKf->addItem("8.9M");
cbDCLKf->addItem("7.8M");cbDCLKf->addItem("6.25M");;cbDCLKf->addItem("5.2M");;cbDCLKf->addItem("4.5M");;cbDCLKf->addItem("3.9M");;cbDCLKf->addItem("3.125M"); ;cbDCLKf->addItem("1.9M"); ;cbDCLKf->addItem("1M"); hhh->addWidget(cbDCLKf);
//1.2.灰度级别
hhh = new HBox(vvv);
lb = new QLabel(tr("灰度级数:")); hhh->addWidget(lb);
cbGryLevel = new QComboBox(); cbGryLevel->addItem("无灰度"); cbGryLevel->addItem("无OE8级");cbGryLevel->addItem("无OE16级");cbGryLevel->addItem("无OE32级");cbGryLevel->addItem("无OE64级");cbGryLevel->addItem("正常16级"); cbGryLevel->addItem("高亮16级");cbGryLevel->addItem("正常32级");
cbGryLevel->addItem("高亮32级");cbGryLevel->addItem("正常64级");cbGryLevel->addItem("高亮64级");cbGryLevel->addItem("正常128级");cbGryLevel->addItem("高亮128级");cbGryLevel->addItem("正常256级");cbGryLevel->addItem("高亮256级");cbGryLevel->addItem("正常512级");
cbGryLevel->addItem("高亮512级");cbGryLevel->addItem("正常1024级");cbGryLevel->addItem("高亮1024级");cbGryLevel->addItem("低亮2048级");cbGryLevel->addItem("正常2048级");cbGryLevel->addItem("高亮2048级");cbGryLevel->addItem("低亮4096级");cbGryLevel->addItem("正常4096级");
cbGryLevel->addItem("高亮4096级");cbGryLevel->addItem("低亮8192级");cbGryLevel->addItem("正常8192级");cbGryLevel->addItem("高亮8192级");cbGryLevel->addItem("低亮16384级");cbGryLevel->addItem("正常16384");cbGryLevel->addItem("正常32768级");cbGryLevel->addItem("正常65535级"); hhh->addWidget(cbGryLevel);
//1.3.刷新倍率
hhh = new HBox(vvv);
lb = new QLabel(tr("刷新倍率:")); hhh->addWidget(lb);
freshBeiLv = new QComboBox(); freshBeiLv->addItem("1");freshBeiLv->addItem("2");freshBeiLv->addItem("3");freshBeiLv->addItem("4");freshBeiLv->addItem("5");freshBeiLv->addItem("6");freshBeiLv->addItem("7");freshBeiLv->addItem("8"); hhh->addWidget(freshBeiLv);
//1.4.换行时间
hhh = new HBox(vvv);
lb = new QLabel(tr("换行时间(ns):")); hhh->addWidget(lb);
spinLineNs = new QSpinBox; spinLineNs->setRange(2, 9999); hhh->addWidget(spinLineNs);
//1.5.换行位置
hhh = new HBox(vvv);
lb = new QLabel(tr("换行位置(ns):")); hhh->addWidget(lb);
spinLineWz = new QSpinBox; spinLineWz->setRange(2, 9999); hhh->addWidget(spinLineWz);
//1.6.行消隐时间
hhh = new HBox(vvv);
lb = new QLabel(tr("行消隐时间(ns):")); hhh->addWidget(lb);
spinLineXy = new QSpinBox; spinLineWz->setRange(2, 9999); hhh->addWidget(spinLineXy);
//第二列区域
hh->addSpacing(20);
vvv = new VBox(hh);
//2.1.无信号数据
hhh = new HBox(vvv);
lb = new QLabel(tr("无信号数据:")); hhh->addWidget(lb);
cbNoSign = new QComboBox();
cbNoSign->addItem("最后一帧画面");cbNoSign->addItem("黑屏"); hhh->addWidget(cbNoSign);
//2.2.显卡同步
hhh = new HBox(vvv);
lb = new QLabel(tr("显卡同步")); hhh->addWidget(lb);
checkSyncXianKa = new QCheckBox; checkSyncXianKa->setChecked(true); hhh->addWidget(checkSyncXianKa);
//2.3.开屏渐亮
hhh = new HBox(vvv);
lb = new QLabel(tr("双卡备份")); hhh->addWidget(lb);
checkDoubleCopy = new QCheckBox; checkDoubleCopy->setChecked(false); hhh->addWidget(checkDoubleCopy);
//2.4.开屏渐亮
hhh = new HBox(vvv);
lb = new QLabel(tr("开屏渐亮")); hhh->addWidget(lb);
checkJianLiang = new QCheckBox; checkSyncXianKa->setChecked(false); hhh->addWidget(checkJianLiang);
//2.5.D信号为第二组时钟
hhh = new HBox(vvv);
lb = new QLabel(tr("信号为第二组时钟")); hhh->addWidget(lb);
checkDsignalAsCLk = new QCheckBox; checkDsignalAsCLk->setChecked(false); hhh->addWidget(checkDsignalAsCLk);
//更多设置
hh->addStretch();
vvv = new VBox(hh);
vvv->addStretch();
hhh = new HBox(vvv);
auto btn = new QPushButton(tr("更多设置"));
btn->setProperty("ss","blue");
hhh->addWidget(btn);
connect(btn, &QPushButton::clicked, this, [=] {
});
vvv->addStretch();
hh->addStretch();
vvv = new VBox(hh);
//分割线
auto hh3 = new HBox(vvv);
QFrame * line2 = new QFrame();
line2->setFrameShape(QFrame::VLine);
line2->setFrameShadow(QFrame::Sunken);
line2->setStyleSheet("background-color:#222;");
hh3->addWidget(line2);
//第三列区域
vvv = new VBox(hh);
//3.1.DCLK相位
hhh = new HBox(vvv);
lb = new QLabel(tr("DCLK相位:")); hhh->addWidget(lb);
cbDclkXw = new QComboBox(); cbDclkXw->addItem("0度");cbDclkXw->addItem("+90度");cbDclkXw->addItem("-90度"); hhh->addWidget(cbDclkXw);
//3.2.DCLK占空比
hhh = new HBox(vvv);
lb = new QLabel(tr("DCLK占空比:")); hhh->addWidget(lb);
cbDclkZkb = new QComboBox(); cbDclkZkb->addItem("50%");cbDclkZkb->addItem("25%");cbDclkZkb->addItem("75%"); hhh->addWidget(cbDclkZkb);
//3.3.锁存STB相位微调
hhh = new HBox(vvv);
lb = new QLabel(tr("锁存STB相位微调:")); hhh->addWidget(lb);
cbStb = new QComboBox(); cbStb->addItem("不调整");cbStb->addItem("前移1个时钟");cbStb->addItem("前移2个时钟");cbStb->addItem("前移3个时钟");cbStb->addItem("后移1个时钟");cbStb->addItem("后移2个时钟");cbStb->addItem("后移3个时钟"); hhh->addWidget(cbStb);
//3.4.行信号DE相位微调
hhh = new HBox(vvv);
lb = new QLabel(tr("行信号DE相位微调:")); hhh->addWidget(lb);
cbDE = new QComboBox(); cbDE->addItem("不调整");cbDE->addItem("前移1个时钟");cbDE->addItem("前移2个时钟");cbDE->addItem("前移3个时钟");cbDE->addItem("后移1个时钟");cbDE->addItem("后移2个时钟");cbDE->addItem("后移3个时钟"); hhh->addWidget(cbDE);
//3.5.行信号ABC相位微调
hhh = new HBox(vvv);
lb = new QLabel(tr("行信号ABC相位微调:")); hhh->addWidget(lb);
cbABC = new QComboBox(); cbABC->addItem("不调整");cbABC->addItem("前移1个时钟");cbABC->addItem("前移2个时钟");cbABC->addItem("前移3个时钟");cbABC->addItem("后移1个时钟");cbABC->addItem("后移2个时钟");cbABC->addItem("后移3个时钟"); hhh->addWidget(cbABC);
//3.6.单口带载点数
hhh = new HBox(vvv);
lb = new QLabel(tr("单口带载点数:")); hhh->addWidget(lb);
spinPointsOnePort = new QSpinBox; spinPointsOnePort->setRange(1, 999); hhh->addWidget(spinPointsOnePort);
hh->addSpacing(20);
//第四列区域
vvv = new VBox(hh);
//4.1.消隐电平
hhh = new HBox(vvv);
lb = new QLabel(tr("消隐电平:")); hhh->addWidget(lb);
cbXiaoYinDianPing= new QComboBox(); cbXiaoYinDianPing->addItem("高有效");cbXiaoYinDianPing->addItem("低有效"); hhh->addWidget(cbXiaoYinDianPing);
//4.2.锁存信号
hhh = new HBox(vvv);
lb = new QLabel(tr("锁存信号:")); hhh->addWidget(lb);
cbSTB = new QComboBox(); cbSTB->addItem("正向");cbSTB->addItem("反向"); hhh->addWidget(cbSTB);
//4.3.行输出
hhh = new HBox(vvv);
lb = new QLabel(tr("行输出:")); hhh->addWidget(lb);
cbSRowOut = new QComboBox(); cbSRowOut->addItem("低有效");cbSRowOut->addItem("高有效"); hhh->addWidget(cbSRowOut);
//分割线
auto hh1 = new HBox(vBox1);
QFrame * line = new QFrame();
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
line->setStyleSheet("background-color:#222;");
hh1->addWidget(line);
auto hh2=new HBox(vBox1);
//计算结果竖直信息区
auto resultInfo = new HBox(hh2);
lb = new QLabel(tr("[普刷] 视觉刷新率:")); resultInfo->addWidget(lb);
float freshLv1=Get_Frefr(7/*小数权值*/ , 12/*灰度位宽*/ , 12500000/*移位时钟频率*/ , 240/*扫描长度*/ , 16/*扫描类型*/ , 4/*倍频*/ ); m_ctrlFreshRate = new QLabel(QString::number(freshLv1)); resultInfo->addWidget(m_ctrlFreshRate);
resultInfo->addStretch();
lb = new QLabel(tr("亮度有效率:")); resultInfo->addWidget(lb);
float BrightYouXiaoLv1=Get_Eff(8,16); m_ctrlBrightEff = new QLabel(QString::number(BrightYouXiaoLv1)); resultInfo->addWidget(m_ctrlBrightEff);
resultInfo->addStretch();
lb = new QLabel(tr("最小OE:")); resultInfo->addWidget(lb);
float minOe=Get_Eff(8,16); m_ctrlMinOE = new QLabel(QString::number(minOe)); resultInfo->addWidget(m_ctrlMinOE);
resultInfo->addStretch();
vBox1->addStretch();
changeValueByEffectControler() ;
}
else if(expertWin->m_iRcvCardType == enum_xixun_sync)
{
}
}
}
void NormalEffectWin::changeValueByEffectControler() {
//spinbox
if(expertWin->m_iRcvCardType==enum_zrf)
{
qDebug()<<"changeValueByEffectControler";
QObject::connect(spinLineNs, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [=](int value){ qDebug() << "换行时间当前值:" << value;
expertWin->zrf_rcv_obj.b193=value; });
QObject::connect(spinLineWz, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [=](int value){ qDebug() << "行位置当前值:" << value;
expertWin->zrf_rcv_obj.b193=value; });
QObject::connect(spinLineXy, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [=](int value){ qDebug() << "消隐时间当前值:" << value;
expertWin->zrf_rcv_obj.b2=value; });//
QObject::connect(spinPointsOnePort, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged), [=](int value){ qDebug() << "单口带载点数当前值:" << value;
expertWin->zrf_rcv_obj.b193=value; });
//combox
QObject::connect(cbDCLKf, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "DLC频率当前值" << value;
expertWin->zrf_rcv_obj.b18_3_0=value; });//
QObject::connect(cbDclkXw, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "DCLK相位当前值" << value;
expertWin->zrf_rcv_obj.b19_7_4=value; });//
QObject::connect(cbDclkZkb, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "DCLK占空比当前值" << value;
expertWin->zrf_rcv_obj.b19_3_0=value; });//
QObject::connect(freshBeiLv, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "刷新倍率出当前值:" << value;
expertWin->zrf_rcv_obj.b21_7_5=value; });//
QObject::connect(cbGryLevel, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "灰度等级出当前值:" << value;
if(expertWin->zrf_rcv_obj.m_pwmFlag==1){
switch(value){
case 0: expertWin->zrf_rcv_obj.b21_4_0=23; break;//正常4096
case 1: expertWin->zrf_rcv_obj.b21_4_0=26; break;//正常8192
case 2: expertWin->zrf_rcv_obj.b21_4_0=29; break;//正常16384
case 3: expertWin->zrf_rcv_obj.b21_4_0=30; break;//正常32768
case 4: expertWin->zrf_rcv_obj.b21_4_0=31; break;//正常65535
default: expertWin->zrf_rcv_obj.b21_4_0=31; break;//正常65535
}
}
else
expertWin->zrf_rcv_obj.b21_4_0=value; });//
QObject::connect(cbNoSign, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "无信号输出出当前值:" << value;
expertWin->zrf_rcv_obj.b29_1_0=value; });//
QObject::connect(cbStb, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行信号STB微调出当前值" << value;
expertWin->zrf_rcv_obj.b193=value; });
QObject::connect(cbDE, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行信号DE微调出当前值" << value;
expertWin->zrf_rcv_obj.b193=value; });
QObject::connect(cbABC, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行信号ABC微调出当前值" << value;
expertWin->zrf_rcv_obj.b193=value; });
QObject::connect(cbXiaoYinDianPing, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "消隐电平出当前值:" << value;
expertWin->zrf_rcv_obj.b1_5=value; });//
QObject::connect(cbSTB, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "锁存STB电平方向出当前值" << value;
expertWin->zrf_rcv_obj.b0_6=value; });//
QObject::connect(cbSRowOut, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行输出电平出当前值:" << value;
expertWin->zrf_rcv_obj.b0_4=value; });//
//checkbox
QObject::connect(checkSyncXianKa, static_cast<void (QCheckBox::*)(int)>(&QCheckBox::stateChanged), [=](int value){ qDebug() << "同步显卡出当前值:" << value;
if(value==0) expertWin->zrf_rcv_obj.b26_7=value ;
else expertWin->zrf_rcv_obj.b26_7=0b1; });//
QObject::connect(checkJianLiang, static_cast<void (QCheckBox::*)(int)>(&QCheckBox::stateChanged), [=](int value){ qDebug() << "开屏渐亮出当前值:" << value;
if(value==0) expertWin->zrf_rcv_obj.b1_0=value ;
else expertWin->zrf_rcv_obj.b1_0=0b1; });//
QObject::connect(checkDoubleCopy, static_cast<void (QCheckBox::*)(int)>(&QCheckBox::stateChanged), [=](int value){ qDebug() << "双备份出当前值:" << value;
if(value==0) expertWin->zrf_rcv_obj.b1_4=value ;
else expertWin->zrf_rcv_obj.b1_4=0b1; });//
QObject::connect(checkDsignalAsCLk, static_cast<void (QCheckBox::*)(int)>(&QCheckBox::stateChanged), [=](int value){ qDebug() << "D信号作为第二组CLK出当前值" << value;
if(value==0) expertWin->zrf_rcv_obj.b1_1=value ;
else expertWin->zrf_rcv_obj.b1_1=0b1; });//
}
}
void NormalEffectWin::SetEffectControlerValueByClass()
{
if(expertWin->m_iRcvCardType == enum_zrf) {
//spinbox
qDebug()<<"SetEffectControlerValueByClass";
spinLineNs->setValue(expertWin->zrf_rcv_obj.b193); qDebug() << "换行时间当前值:" << spinLineNs->value();
spinLineWz->setValue(expertWin->zrf_rcv_obj.b193); qDebug() << "行位置当前值:" << spinLineWz->value();
spinLineXy->setValue(expertWin->zrf_rcv_obj.b2); qDebug() << "消隐时间当前值:" << spinLineXy->value();//
spinPointsOnePort->setValue(expertWin->zrf_rcv_obj.b193); qDebug() << "单口带载点数当前值:" << spinPointsOnePort->value();
//combox
cbDCLKf->setCurrentIndex(expertWin->zrf_rcv_obj.b18_3_0); qDebug() << "DLC频率当前值" << cbDCLKf->currentIndex();
cbDclkXw->setCurrentIndex(expertWin->zrf_rcv_obj.b19_7_4); qDebug() << "DCLK相位当前值" << cbDclkXw->currentIndex();
cbDclkZkb->setCurrentIndex(expertWin->zrf_rcv_obj.b19_3_0); qDebug() << "DCLK占空比当前值" << cbDclkZkb->currentIndex();
freshBeiLv->setCurrentIndex(expertWin->zrf_rcv_obj.b21_7_5); qDebug() << "刷新倍率出当前值:" << freshBeiLv->currentIndex();
int index=31;
if(expertWin->zrf_rcv_obj.m_pwmFlag==1)
switch(expertWin->zrf_rcv_obj.b21_4_0){
case 23: index=0; break;//正常4096
case 26: index=1; break;//正常8192
case 29: index=2; break;//正常16384
case 30: index=3; break;//正常32768
case 31: index=4; break;//正常65535
default: index=4; break;//正常65535
}
else
index=expertWin->zrf_rcv_obj.b21_4_0;
cbGryLevel->setCurrentIndex(index); qDebug() << "灰度等级出当前值:" << cbGryLevel->currentIndex();
cbNoSign->setCurrentIndex(expertWin->zrf_rcv_obj.b29_1_0); qDebug() << "无信号输出出当前值:" << cbNoSign->currentIndex();
cbStb->setCurrentIndex(expertWin->zrf_rcv_obj.b193); qDebug() << "行信号STB微调出当前值" << cbStb->currentIndex();
cbDE->setCurrentIndex(expertWin->zrf_rcv_obj.b193); qDebug() << "行信号DE微调出当前值" << cbDE->currentIndex();
cbABC->setCurrentIndex(expertWin->zrf_rcv_obj.b193); qDebug() << "行信号ABC微调出当前值" << cbABC->currentIndex();
cbXiaoYinDianPing->setCurrentIndex(expertWin->zrf_rcv_obj.b1_5); qDebug() << "消隐电平出当前值:" << cbXiaoYinDianPing->currentIndex();
cbSTB->setCurrentIndex(expertWin->zrf_rcv_obj.b0_6); qDebug() << "锁存STB电平方向出当前值" << cbSTB->currentIndex();
cbSRowOut->setCurrentIndex(expertWin->zrf_rcv_obj.b0_4); qDebug() << "行输出电平出当前值:" << cbSRowOut->currentIndex();
//checkbox
checkSyncXianKa->setChecked(expertWin->zrf_rcv_obj.b26_7); qDebug() << "同步显卡出当前值:" << checkSyncXianKa->isChecked();
checkJianLiang->setChecked(expertWin->zrf_rcv_obj.b1_0); qDebug() << "开屏渐亮出当前值:" << checkJianLiang->isChecked();
checkDoubleCopy->setChecked(expertWin->zrf_rcv_obj.b1_4); qDebug() << "双备份出当前值:" << checkDoubleCopy->isChecked();
checkDsignalAsCLk->setChecked(expertWin->zrf_rcv_obj.b1_1); qDebug() << "D信号作为第二组CLK出当前值" << checkDsignalAsCLk->isChecked();
expertWin->SendBaseParam_zrf();
}
}
void NormalEffectWin::reSetcontrolerByIcType(QString strIcName)
{
if(strIcName == "ICN2053")
{
cbDCLKf->clear();
cbDCLKf->addItem("31.2M");cbDCLKf->addItem("25M");cbDCLKf->addItem("20.83M");cbDCLKf->addItem("17.86M");cbDCLKf->addItem("15.63M");cbDCLKf->addItem("12.5M");cbDCLKf->addItem("10.42M");cbDCLKf->addItem("8.9M");
cbDCLKf->addItem("7.8M");cbDCLKf->addItem("6.25M");;cbDCLKf->addItem("5.2M");;cbDCLKf->addItem("4.5M");;cbDCLKf->addItem("3.9M");;cbDCLKf->addItem("3.125M"); ;cbDCLKf->addItem("1.9M"); ;cbDCLKf->addItem("1M");
}
}