#include "doublelatcheffectwin.h" #include "globalfunc.h" #include "gutil/qgui.h" #include #include #include #include "efffrefr.h" DoubleLatchEffectWin::DoubleLatchEffectWin(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("20");freshBeiLv->addItem("24");freshBeiLv->addItem("28");freshBeiLv->addItem("32");freshBeiLv->addItem("36");freshBeiLv->addItem("40");freshBeiLv->addItem("44");freshBeiLv->addItem("48");freshBeiLv->addItem("64M"); 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 DoubleLatchEffectWin::changeValueByEffectControler() { //spinbox if(expertWin->m_iRcvCardType==enum_zrf) { QObject::connect(spinLineNs, static_cast(&QSpinBox::valueChanged), [=](int value){ qDebug() << "换行时间当前值:" << value; expertWin->zrf_rcv_obj.b193=value; }); QObject::connect(spinLineWz, static_cast(&QSpinBox::valueChanged), [=](int value){ qDebug() << "行位置当前值:" << value; expertWin->zrf_rcv_obj.b193=value; }); QObject::connect(spinLineXy, static_cast(&QSpinBox::valueChanged), [=](int value){ qDebug() << "消隐时间当前值:" << value; expertWin->zrf_rcv_obj.b2=value; });// QObject::connect(spinPointsOnePort, static_cast(&QSpinBox::valueChanged), [=](int value){ qDebug() << "单口带载点数当前值:" << value; expertWin->zrf_rcv_obj.b193=value; }); //combox QObject::connect(cbDCLKf, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "DLC频率当前值:" << value; expertWin->zrf_rcv_obj.b18_3_0=value; });// QObject::connect(cbDclkXw, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "DCLK相位当前值:" << value; expertWin->zrf_rcv_obj.b19_7_4=value; });// QObject::connect(cbDclkZkb, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "DCLK占空比当前值:" << value; expertWin->zrf_rcv_obj.b19_3_0=value; });// QObject::connect(freshBeiLv, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "刷新倍率出当前值:" << value; expertWin->zrf_rcv_obj.b21_7_5=value; });// QObject::connect(cbGryLevel, static_cast(&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(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "无信号输出出当前值:" << value; expertWin->zrf_rcv_obj.b29_1_0=value; });// QObject::connect(cbStb, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行信号STB微调出当前值:" << value; expertWin->zrf_rcv_obj.b193=value; }); QObject::connect(cbDE, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行信号DE微调出当前值:" << value; expertWin->zrf_rcv_obj.b193=value; }); QObject::connect(cbABC, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行信号ABC微调出当前值:" << value; expertWin->zrf_rcv_obj.b193=value; }); QObject::connect(cbXiaoYinDianPing, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "消隐电平出当前值:" << value; expertWin->zrf_rcv_obj.b1_5=value; });// QObject::connect(cbSTB, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "锁存STB电平方向出当前值:" << value; expertWin->zrf_rcv_obj.b0_6=value; });// QObject::connect(cbSRowOut, static_cast(&QComboBox::currentIndexChanged), [=](int value){ qDebug() << "行输出电平出当前值:" << value; expertWin->zrf_rcv_obj.b0_4=value; });// //checkbox QObject::connect(checkSyncXianKa, static_cast(&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(&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(&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(&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 DoubleLatchEffectWin::SetEffectControlerValueByClass() { if(expertWin->m_iRcvCardType == enum_zrf) { //spinbox 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 DoubleLatchEffectWin::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"); cbGryLevel->clear(); cbGryLevel->addItem("正常16384"); freshBeiLv->clear(); freshBeiLv->addItem("8"); } }