Files
VX5_KRO_GearPump/Printsetting.cpp
T
2026-06-22 08:51:10 +08:00

792 lines
31 KiB
C++

#include "Printsetting.h"
#include "ui_Printsetting.h"
#include <QMessageBox>
#include <QDebug>
PrintSetting::PrintSetting(QWidget *parent) :
QWidget(parent),
ui(new Ui::PrintSetting)
{
ui->setupUi(this);
m_checkBtn = ui->checkBtn;
m_closeBtn = ui->closeBtn;
pulseNumFix = new PulseNumFix(parent);
pulseNumFix->hide();
ui->lineEditTriggerPulsePerMm->setValidator(new QDoubleValidator(0));
connect(pulseNumFix,SIGNAL(pulseNuxFixDone(float)),this,SLOT(onPulseNumFixDone(float)));
ui->checkBoxEleEyeMakeClean->setHidden(1);
ui->spinBoxOuputPulseCol->setHidden(1);
ui->labelSynTriggerPrintLenRatio->setHidden(1);
ui->spinBoxSynTriggerPrintLenRatio->setHidden(1);
// 隐藏延时、产生脉冲所需计数、脉冲输出使能、禁止电眼清零、字符宽度、电眼清零
ui->labelOutputPulseDelayMs->hide();
ui->spinBoxOutputPulseDelayMs->hide();
ui->labelProductCntPerOutputPulse->hide();
ui->spinBoxProductCntPerOutputPulse->hide();
ui->labelSynTriggerPrintLenRatio->hide();
ui->spinBoxSynTriggerPrintLenRatio->hide();
ui->checkBoxEleEyeMakeClean->hide();
ui->spinBoxOuputPulseCol->hide();
ui->checkBoxPulseOutputEnable->hide();
ui->comboBoxEleEyeMakeClean->hide();
// ui->labelTimeTriggerMode->setEnabled(false);
// ui->comboBoxTimeTriggerMode->setEnabled(false);
init();
ui->eleEyeEdgetTriggerInner->click();
ui->radioButtonSynTriggerInner->click();
}
PrintSetting::~PrintSetting()
{
delete ui;
}
void PrintSetting::init()
{
// 应用样式表
applyStyleSheet();
// 连接信号槽
connect(m_closeBtn, &QPushButton::clicked, this, &PrintSetting::buttonClickedSlot);
connect(m_checkBtn,&QPushButton::clicked, this, &PrintSetting::buttonClickedSlot);
connect(ui->eleEyeEdgetTriggerExternal, &QRadioButton::toggled, this, [this](bool b){
if(b)
on_eleEyeEdgetTriggerExternal_clicked();
});
connect(ui->eleEyeEdgetTriggerInner, &QRadioButton::toggled, this, [this](bool b){
if(b)
on_eleEyeEdgetTriggerInner_clicked();
});
connect(ui->radioButtonSynTriggerInner, &QRadioButton::toggled, this, [this](bool b){
if(b)
on_radioButtonSynTriggerInner_clicked();
});
connect(ui->radioButtonSynTriggerExternal, &QRadioButton::toggled, this, [this](bool b){
if(b)
on_radioButtonSynTriggerExternal_clicked();
});
}
extern void MySleep(unsigned int msec);
void PrintSetting::buttonClickedSlot()
{
QPushButton* btn = qobject_cast<QPushButton*>(sender());
if (btn == m_closeBtn)
{
emit sendButtonClickedSignal(1);
}else if(btn == m_checkBtn){
emit sendButtonClickedSignal(2);
on_pushButtonApply_pressed();
}
}
void PrintSetting::on_pushButtonApply_pressed(){
applyUIPara();
applyUITriggerPara();
if(sysPara->devOp->writeFpgaPrintPara(true) != -1) {
QMessageBox box(QMessageBox::Icon::Information, tr("提示"), tr("应用成功"), QMessageBox::Ok, nullptr);
auto btn = box.button(QMessageBox::Ok);
// btn->setFixedSize(80, 40);
box.exec();
}
if(sysPara)
sysPara->saveParaToFile ();
}
void PrintSetting::applyUIPara(){
if(sysPara){
sysPara->para.printTriggerMode = PRINT_TRIGGER_TIME; //延时触发
sysPara->para.printDelayMs = 200; //重复间隔
sysPara->para.checkSpace = 0;//ui->checkSpace->isChecked();
// ui->spinBoxColDelay->setEnabled(1);
sysPara->para.leftRightInverse = ui->checkBoxLeftRightInverse->isChecked();
sysPara->para.upDownInverse = ui->checkBoxUpDownInverse->isChecked();
sysPara->para.currSelectVolPara = ui->comboBox_selcetVolPara->currentIndex();
sysPara->para.printColDelay = ui->spinBoxColDelay->value();
sysPara->para.HighVoltageAmplitude = ui->spinBoxHighVoltageValue->value();
// 回收泵的控制转至系统设置界面 byons@2026年4月22日
// sysPara->para.gearPumpEnable = ui->checkBoxGearPumpEnable->isChecked();
// sysPara->para.flagOfReclaimPumEnable = ui->checkBox_ReclaimPumpEnable->isChecked();
sysPara->devOp->setHighVoltageAmplitudetoSTM32();
sysPara->devOp->writeFpgaCalandar(0);
}
}
void PrintSetting::bindSysPara(SysPara *sysPara)
{
this->sysPara = sysPara;
}
void PrintSetting::updateSysParaToUI(){
if(sysPara){
ui->checkBoxLeftRightInverse->setChecked(sysPara->para.leftRightInverse);
ui->checkBoxUpDownInverse->setChecked(sysPara->para.upDownInverse);
sysPara->para.mode0211 = 1;
ui->spinBoxColDelay->setValue(sysPara->para.printColDelay);
ui->spinBoxHighVoltageValue->setValue(sysPara->para.HighVoltageAmplitude);
ui->comboBox_selcetVolPara->setCurrentIndex(sysPara->para.currSelectVolPara);
// 齿轮泵和回收泵的控制转至系统设置 byons@2026年4月22日
// ui->checkBoxGearPumpEnable->setChecked(sysPara->para.gearPumpEnable);
// ui->checkBox_ReclaimPumpEnable->setChecked(sysPara->para.flagOfReclaimPumEnable);
TriggerupdateSysParaToUI();
}
}
void PrintSetting::TriggerupdateSysParaToUI(){
if(sysPara)
{
/*----------------------------------------*/
setTriggerUI(sysPara->para.printTriggerMode);
if (sysPara->para.eleEyeTriggerSynPrintEn) //电眼触发的同步打印使能,电眼和同步器都选外部
{
sysPara->para.eleEyeEdgetTriggerInner = 0;
sysPara->para.synTriggerInner = 0;
sysPara->para.eleEyeEdgetTriggerExternal = 1;
sysPara->para.synTriggerExternal = 1;
}
qDebug() << sysPara->para.eleEyeEdgetTriggerInner;
qDebug() << sysPara->para.eleEyeEdgetTriggerExternal;
ui->eleEyeEdgetTriggerInner->setChecked(sysPara->para.eleEyeEdgetTriggerInner);
ui->eleEyeEdgetTriggerExternal->setChecked(sysPara->para.eleEyeEdgetTriggerExternal);
ui->radioButtonSynTriggerInner->setChecked(sysPara->para.synTriggerInner);
ui->radioButtonSynTriggerExternal->setChecked(sysPara->para.synTriggerExternal);
ui->sb_printingDelay->setValue(sysPara->para.printDelayMs);
#ifndef NON_CABLE
ui->comboBoxTimeTriggerMode->setCurrentIndex(sysPara->para.timeTriggerPrintMode);
#endif
ui->spinBoxEleEyeTriggerIntervalMs->setValue(sysPara->para.elecEyeTriggerInterval);
ui->spinBoxOutputPulseDelayMs->setValue(sysPara->para.outputPulseDelayMs);
ui->spinBoxEleEyeTriggerRepeatCnt->setValue(sysPara->para.photoElectricityRepeateNum);
//ui->spinBoxSynTriggerPrintLen->setValue(sysPara->para.synTriggerPrintLenMm);
ui->spinBoxSynTriggerPrintLen->setText(QString::number(sysPara->para.synTriggerPrintLenMm));
ui->lineEditTriggerPulsePerMm->setText(QString::number(sysPara->para.synPulseNumPerMm));
if(sysPara->para.sysTriggerPrintMode == SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH)
//edit@11-19
;//ui->spinBoxSynTriggerPrintLenRatio->setValue(sysPara->para.synCharWidthRatio);
else
ui->spinBoxSynTriggerPrintLenRatio->setValue(sysPara->para.synTriggerPrintLenRatio);
/*----------------------------------------*/
ui->spinBoxEleEyeTriggerPrintDelay->setValue(sysPara->para.eleEyeTriggerPrintDelay);
//ui->checkBoxEleEyeMakeClean->setChecked(sysPara->para.eleEyeClearCntInSynMode);
ui->comboBoxEleEyeMakeClean->setCurrentIndex( sysPara->para.eleEyeClearCntInSynMode & 0x0f);
ui->checkBoxPulseOutputEnable->setChecked(sysPara->para.pulseOutputEnable);
// ui->labelProductCntPerOutputPulse->setEnabled(sysPara->para.pulseOutputEnable);
// ui->spinBoxProductCntPerOutputPulse->setEnabled(sysPara->para.pulseOutputEnable);
ui->spinBoxProductCntPerOutputPulse->setValue(sysPara->para.productCntPerOutputPulse);
// ui->labelOutputPulseDelayMs->setEnabled(sysPara->para.pulseOutputEnable);
//ui->spinBoxOutputPulseDelayMs->setEnabled(sysPara->para.pulseOutputEnable);
// ui->spinBoxOutputPulseDelayMs->setEnabled(isPulseEenable);
ui->spinBoxOuputPulseCol->setValue(sysPara->para.OuputPulseCol);
ui->comboBoxSyncActType->setCurrentIndex (sysPara->para.synchronizorActType);
//ui->checkBoxAutoSpeedEN->setChecked (sysPara->para.autoSynSpeedEn );
ui->spinBoxEleMaskTime->setValue(sysPara->para.eleMaskTime);
ui->spinBoxAltMirrorGap->setValue( sysPara->para.AltMirrorGap & 0x0fff );
ui->comboBoxAltMirrType->setCurrentIndex( (sysPara->para.AltMirrorGap>>12) & 0x000F);
ui->spinBoxpluseSinal->setValue(sysPara->para.pulse_sinal_value);
if(sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)
ui->radioButtonEleEyeEdgetTrigger->setChecked(true);
if( sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL)
ui->radioButtonEleEyeLevelTrigger->setChecked(true);
}
}
void PrintSetting::updateSysStatusToUI(){
}
void PrintSetting::on_pushButtonApplyPulseFix_clicked()
{
pulseNumFix->bindSysPara(sysPara);
pulseNumFix->hide();
pulseNumFix->show();
}
void PrintSetting::onPulseNumFixDone(float value){
ui->lineEditTriggerPulsePerMm->setText(QString::number(value));
}
void PrintSetting::on_lineEditTriggerPulsePerMm_textChanged(const QString &arg1)
{
Q_UNUSED(arg1);
sysPara->para.synPulseNumPerMm = ui->lineEditTriggerPulsePerMm->text().toFloat();
}
void PrintSetting::applyUITriggerPara(){
if(sysPara){
GetTriggerUIPara();
if(sysPara->para.printTriggerMode == PRINT_TRIGGER_SYNCHRONIZER)
{
if( sysPara->para.synTriggerPrintLenMm < sysPara->para.eleEyeTriggerPrintDelay )
{
QMessageBox::information(nullptr,tr("提示:参数不正确"),tr("要求:触发长度小于喷印间隔"));
}
}
sysPara->para.eleEyeEdgetTriggerInner = ui->eleEyeEdgetTriggerInner->isChecked();
sysPara->para.eleEyeEdgetTriggerExternal = ui->eleEyeEdgetTriggerExternal->isChecked();
sysPara->para.synTriggerInner = ui->radioButtonSynTriggerInner->isChecked();
sysPara->para.synTriggerExternal = ui->radioButtonSynTriggerExternal->isChecked();
// 电眼和同步器都选外部时,就是同步
sysPara->para.eleEyeTriggerSynPrintEn =
sysPara->para.eleEyeEdgetTriggerExternal && sysPara->para.synTriggerExternal? 1 : 0;
sysPara->para.pulseOutputEnable = ui->checkBoxPulseOutputEnable->isChecked();
sysPara->para.productCntPerOutputPulse = ui->spinBoxProductCntPerOutputPulse->value();
// 有脉冲延时使能的时候才可以设置延时
if (isEnabled()) {
sysPara->para.outputPulseDelayMs = ui->spinBoxOutputPulseDelayMs->value();
} else {
sysPara->para.outputPulseDelayMs = 0;
}
sysPara->para.OuputPulseCol = ui->spinBoxOuputPulseCol->value();
if(((sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL
|| sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE))
|| sysPara->para.printTriggerMode == PRINT_TRIGGER_SYNCHRONIZER )
{
ui->labelOutputPulseDelayMs->setText(tr("延时(毫米):"));
}
else ui->labelOutputPulseDelayMs->setText(tr("延时(毫秒):"));
}
}
void PrintSetting::GetTriggerUIPara(){
if(sysPara){
sysPara->para.printDelayMs = ui->sb_printingDelay->value();
sysPara->para.timeTriggerPrintMode = ui->comboBoxTimeTriggerMode->currentIndex();
sysPara->para.elecEyeTriggerInterval = ui->spinBoxEleEyeTriggerIntervalMs->value(); //电眼触发的重复间隔
int value = 0;
if (ui->cb_unlimited->isChecked()) value = UINT_MAX / 2;
else value = ui->spinBoxEleEyeTriggerRepeatCnt->value();
sysPara->para.photoElectricityRepeateNum = value;
sysPara->para.synTriggerPrintLenMm = ui->spinBoxSynTriggerPrintLen->text().toFloat();
//sysPara->para.synTriggerPrintLenMm = ui->spinBoxSynTriggerPrintLen->value();
sysPara->para.synPulseNumPerMm = ui->lineEditTriggerPulsePerMm->text().toFloat();
sysPara->para.sysTriggerPrintMode = ui->comboBoxSynPrintMode->currentIndex();
if(sysPara->para.sysTriggerPrintMode == SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH)
//edit@11-19
;//sysPara->para.synCharWidthRatio = ui->spinBoxSynTriggerPrintLenRatio->value();
else
sysPara->para.synTriggerPrintLenRatio = ui->spinBoxSynTriggerPrintLenRatio->value();
// 原代码:
//sysPara->para.AltMirrorGap =(unsigned int) ( ((unsigned int)ui->spinBoxAltMirrorGap->value()) & 0x7fff) | ( ui->comboBoxAltMirrType->currentIndex()==1?0x8000:0x0000);
// 20160303:
sysPara->para.AltMirrorGap =(unsigned int) ( ((unsigned int)ui->spinBoxAltMirrorGap->value()) & 0x0fff) |( ( ui->comboBoxAltMirrType->currentIndex())<<12 );
//qDebug()<< (sysPara->para.AltMirrorGap & 0x0fff) << (sysPara->para.AltMirrorGap & 0xf000);
// if(ui->radioButtonDelayTrigger->isChecked())
if(ui->eleEyeEdgetTriggerInner->isChecked() && ui->radioButtonSynTriggerInner->isChecked()){ //都选外部--延时触发
sysPara->para.printTriggerMode = PRINT_TRIGGER_TIME;
sysPara->para.printDelayMs = ui->spinBoxEleEyeTriggerIntervalMs->value(); //延时触发的重复间隔
}
else if(ui->radioButtonEleEyeLevelTrigger->isChecked() && ui->eleEyeEdgetTriggerExternal->isChecked()) //光电边沿触发
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
else if(ui->radioButtonEleEyeEdgetTrigger->isChecked() && ui->eleEyeEdgetTriggerExternal->isChecked()) //光电电平触发
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_EDGE;
else if(ui->radioButtonSynTriggerExternal->isChecked())
sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER;
else
sysPara->para.printTriggerMode = PRINT_TRIGGER_NONE;
if(ui->eleEyeEdgetTriggerExternal->isChecked() && ui->radioButtonSynTriggerExternal->isChecked()) {
if(ui->radioButtonEleEyeEdgetTrigger->isChecked()) {
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_EDGE;
}
else {
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
}
sysPara->para.eleEyeTriggerSynPrintEn = true;
}
else{
sysPara->para.eleEyeTriggerSynPrintEn = false;
}
// sysPara->para.eleEyeTriggerSynPrintEn = ui->checkEyeTriggerSynPrintEn->isChecked ();
// sysPara->para.eleEyeTriggerSynPrintEn = ui->eleEyeEdgetTriggerExternal->isChecked() && ui->radioButtonSynTriggerExternal->isChecked();
sysPara->para.eleEyeTriggerPrintDelay = ui->spinBoxEleEyeTriggerPrintDelay->value();
sysPara->para.eleEyeClearCntInSynMode = (sysPara->para.eleEyeClearCntInSynMode & 0xf0) + ui->comboBoxEleEyeMakeClean->currentIndex(); //ui->checkBoxEleEyeMakeClean->isChecked();
//sysPara->para.autoSynSpeedEn = ui->checkBoxAutoSpeedEN->isChecked ();
sysPara->para.autoSynSpeedEn = 0;
//sysPara->para.synPulsePerMmX8 = (unsigned short)(sysPara->para.synPulseNumPerMm *256);
sysPara->para.synPulsePerMmX8 = (unsigned short)((unsigned int)sysPara->para.synPulseNumPerMm <<8);
sysPara->para.eleMaskTime = ui->spinBoxEleMaskTime->value();
sysPara->para.synchronizorActType = ui->comboBoxSyncActType->currentIndex();
sysPara->para.pulse_sinal_value = ui->spinBoxpluseSinal->value();
}
}
void PrintSetting::on_radioButtonDelayTrigger_pressed()
{
setTriggerUI(PRINT_TRIGGER_TIME);
// emit synDisableFontWidth(false);
}
void PrintSetting::on_radioButtonEleEyeEdgetTrigger_pressed()
{
setTriggerUI(PRINT_TRIGGER_ELEC_EYE_EDGE);
if(ui->radioButtonSynTriggerExternal->isChecked())
setEnableSynTriggerSetting(true);
else
setEnableSynTriggerSetting(false);
// emit synDisableFontWidth(false);
}
void PrintSetting::on_radioButtonEleEyeLevelTrigger_pressed()
{
setTriggerUI(PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL);
if(ui->radioButtonSynTriggerExternal->isChecked())
setEnableSynTriggerSetting(true);
else
setEnableSynTriggerSetting(false);
// emit synDisableFontWidth(false);
}
void PrintSetting::on_radioButtonSynTrigger_pressed()
{
//edit@11-19
sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER;
// setTriggerUI(PRINT_TRIGGER_SYNCHRONIZER);
// const unsigned short &FpgaVer=sysPara->status.build_dat.builTime;
// //72版本禁用字符宽度
// if(72 == FpgaVer){
// ui->spinBoxSynTriggerPrintLenRatio->setValue(0);
// ui->spinBoxSynTriggerPrintLenRatio->setEnabled(0);
// }else if (67 == FpgaVer)
// ui->spinBoxSynTriggerPrintLenRatio->setEnabled(1);
// emit synDisableFontWidth(true);
}
void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked)
{
// ui->cb_unlimited->setEnabled(checked);
if(sysPara)
{
int triggerMode = sysPara->para.printTriggerMode;
if( checked)
{
#ifndef NON_CABLE
// ui->spinBoxSynTriggerPrintLen->setEnabled(1);
#endif
// ui->labelSynTriggerPrintLen->setEnabled(1);
// ui->lineEditTriggerPulsePerMm->setEnabled(1);
// ui->labelTriggerPulsePerMm->setEnabled(1);
// ui->spinBoxSynTriggerPrintLenRatio->setEnabled(1);
// ui->labelSynTriggerPrintLenRatio->setEnabled(1);
// ui->checkBoxEleEyeMakeClean->setEnabled(1);
// ui->pushButtonApplyPulseFix->setEnabled(1);
// ui->comboBoxSynPrintMode->setEnabled(1);
// ui->labelSynPrintMode->setEnabled(1);
// ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(0);
ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫米)"));
ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫米)"));
ui->labelEleMaskTime->setText(tr("抑止距离(毫米)"));
ui->labelOutputPulseDelayMs->setText(tr("延时(毫米):"));
if(ui->comboBoxSyncActType->currentIndex() || 0b11) //如果不是在正反转打印的模式下,就切换到正反转模式
{
ui->comboBoxSyncActType->setCurrentIndex(0);
}
}
else
{
#ifndef NON_CABLE
// ui->spinBoxSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
#endif
// ui->labelSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->lineEditTriggerPulsePerMm->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelTriggerPulsePerMm->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->spinBoxSynTriggerPrintLenRatio->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelSynTriggerPrintLenRatio->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->checkBoxEleEyeMakeClean->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->pushButtonApplyPulseFix->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->comboBoxSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(1);
ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫秒)"));
ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫秒)"));
ui->labelEleMaskTime->setText(tr("抑止距离(毫秒)"));
}
}
}
void PrintSetting::setTriggerUI(int triggerMode){
// ui->sb_printingDelay->setEnabled(triggerMode == PRINT_TRIGGER_TIME);
// ui->lb_printingDelay->setEnabled(triggerMode == PRINT_TRIGGER_TIME);
ui->radioButtonEleEyeEdgetTrigger->setChecked( triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE);
ui->radioButtonEleEyeLevelTrigger->setChecked(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL);
// ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE || triggerMode == PRINT_TRIGGER_TIME);
// ui->labelEleEyeTriggerIntervalMs->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE);
// ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE);
// ui->labelEleEyeTriggerRepeatCnt->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE);
// ui->spinBoxEleEyeTriggerPrintDelay->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE || PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelEleEyeTriggerPrintDelay->setEnabled(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE || PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelEleMaskTime->setEnabled (triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE);
// ui->spinBoxEleMaskTime->setEnabled (triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE);
if(sysPara->para.eleEyeTriggerSynPrintEn &&
(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)
)
{
// ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(0);
// ui->labelSynTriggerPrintLen->setEnabled(1);
// ui->lineEditTriggerPulsePerMm->setEnabled(1);
// ui->labelTriggerPulsePerMm->setEnabled(1);
// ui->spinBoxSynTriggerPrintLenRatio->setEnabled(1);
// ui->labelSynTriggerPrintLenRatio->setEnabled(1);
// ui->checkBoxEleEyeMakeClean->setEnabled(1);
// ui->pushButtonApplyPulseFix->setEnabled(1);
// ui->comboBoxSynPrintMode->setEnabled(1);
// ui->labelSynPrintMode->setEnabled(1);
// ui->labelEleMaskTime->setEnabled(1);
// ui->spinBoxEleMaskTime->setEnabled(1);
ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫米)"));
ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫米)"));
ui->labelEleMaskTime->setText(tr("抑止距离(毫米)"));
}
else
{
#ifndef NON_CABLE
// ui->spinBoxSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
#endif
// ui->labelSynTriggerPrintLen->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->lineEditTriggerPulsePerMm->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelTriggerPulsePerMm->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->spinBoxSynTriggerPrintLenRatio->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelSynTriggerPrintLenRatio->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->checkBoxEleEyeMakeClean->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->pushButtonApplyPulseFix->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->comboBoxSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
// ui->labelSynPrintMode->setEnabled(triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
if(triggerMode == PRINT_TRIGGER_SYNCHRONIZER)
{
ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫米)"));
}
else
{
ui->labelEleEyeTriggerPrintDelay->setText(tr("触发延时(毫秒)"));
}
ui->labelEleEyeTriggerIntervalMs->setText(tr("重复间隔(毫秒)"));
ui->labelEleMaskTime->setText(tr("封锁时间(毫秒)"));
}
if(triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL
|| triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE
|| triggerMode == PRINT_TRIGGER_SYNCHRONIZER )
{
ui->labelOutputPulseDelayMs->setText(tr("延时(毫米):"));
}
else ui->labelOutputPulseDelayMs->setText(tr("延时(毫秒):"));
setSynPrintMode(sysPara->para.sysTriggerPrintMode);
}
void PrintSetting::setSynPrintMode(int mode){
ui->labelSynTriggerPrintLenRatio->setText((mode == SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH)?tr("字符宽度"):tr("喷印比例(%)"));
ui->comboBoxSynPrintMode->setCurrentIndex(mode);
//ui->spinBoxSynTriggerPrintLenRatio->setValue((mode == SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH)?sysPara->para.synCharWidthRatio:sysPara->para.synTriggerPrintLenRatio);
//edit@11-18
if(SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH!=mode)
{
ui->spinBoxSynTriggerPrintLenRatio->setValue(sysPara->para.synTriggerPrintLenRatio);
}
const bool bShow = SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH != mode;
//隐藏文本框
ui->labelSynTriggerPrintLenRatio->setVisible(false);
//隐藏输入框
ui->spinBoxSynTriggerPrintLenRatio->setVisible(false);
}
void PrintSetting::applyStyleSheet()
{
QString styleSheet =
R"(
QTabWidget {
border: none;
background-color: #7B838E;
}
QTabBar::tab:focus {
outline: none;
}
QTabBar::tab {
min-width: 90px;
min-height: 45px;
padding: 4px 10px;
margin-right: 4px;
border: 1px solid #dddddd;
border-bottom: none;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
background-color: #5396C1;
color: #ffffff;
}
QTabBar::tab:selected {
background-color: #6bb1e0;
color: #ffffff;
box-shadow: 0 -3px 8px rgba(44, 125, 232, 0.25);
}
QTabWidget::tab-bar {
top: -3px;
left: 10px;
}
QWidget#buttonWidget {
background-color: #95989D;
}
QPushButton#closeBtn {
background-color: #E6F7FF;
border: 1px solid #87CEEB;
border-radius: 4px;
font-size: 24px;
color: #228B22;
}
QPushButton#closeBtn:hover {
background-color: #D1E9FF;
}
QPushButton#closeBtn:pressed {
background-color: #BAE7FF;
}
QPushButton#checkBtn {
background-color: #E6F7FF;
border: 1px solid #87CEEB;
border-radius: 4px;
font-size: 24px;
color: #228B22;
}
QPushButton#checkBtn:hover {
background-color: #D1E9FF;
}
QPushButton#checkBtn:pressed {
background-color: #BAE7FF;
}
QLabel {
font-size: 18px;
color: #000000;
font-weight: 500;
}
QCheckBox {
font-size: 18px;
color: #000000;
font-weight:500;
}
QCheckBox::indicator {
width: 18px;
height: 18px;
border: 1px solid #96A0A9;
border-radius: 10px;
background-color: #ffffff;
}
QCheckBox::indicator:checked {
background-color: #95B2D4;
border-color: #95B2D4;
image: url(:/Demo/image/select.png);
}
QPushButton {
background-color: #5396C1;
color: #ffffff;
border: 1px solid #000000;
border-radius: 3px;
font-size: 18px;
font-weight:500;
}
QPushButton:hover {
background-color: #5396C1;
}
QPushButton:disabled {
background-color: #7C828E;
color: #606060;
border-color: #808080;
}
QWidget#fileTab, QWidget#extraTab, QWidget#settingsTab, QWidget#serviceTab {
background-color: #E3E7EC;
}
QRadioButton {
background-color: rgb(192, 205, 210);
border-radius: 5px;
padding-left: 5px;
}
)";
this->setStyleSheet(styleSheet);
}
void PrintSetting::on_eleEyeEdgetTriggerInner_clicked()
{
setEnableEleEyeSetting(false);
if (sysPara == NULL) return;
if(ui->radioButtonSynTriggerInner->isChecked()){
sysPara->para.printTriggerMode = PRINT_TRIGGER_TIME;
}else
sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER;
setTriggerUI(sysPara->para.printTriggerMode);
sysPara->para.eleEyeTriggerSynPrintEn = false;
on_checkEyeTriggerSynPrintEn_clicked(false);
}
void PrintSetting::setEnableEleEyeSetting(bool flag){
ui->labelEleEyeTriggerIntervalMs->setEnabled(!(!flag && ui->radioButtonSynTriggerInner->isChecked()));
ui->spinBoxEleMaskTime->setEnabled(flag);
ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(flag);
ui->radioButtonEleEyeEdgetTrigger->setEnabled(flag);
ui->radioButtonEleEyeLevelTrigger->setEnabled(flag);
ui->cb_unlimited->setEnabled(flag);
ui->sb_printingDelay->setEnabled(flag);
if (!flag) ui->cb_unlimited->setChecked(false);
}
void PrintSetting::on_eleEyeEdgetTriggerExternal_clicked()
{
sysPara->para.eleEyeTriggerSynPrintEn = ui->radioButtonSynTriggerExternal->isChecked();
//电眼和同步器都选外部时,就是同步
on_checkEyeTriggerSynPrintEn_clicked(sysPara->para.eleEyeTriggerSynPrintEn);
setEnableEleEyeSetting(true);
}
void PrintSetting::setEnableSynTriggerSetting(bool flag){
// ui->labelTriggerPulsePerMm->setEnabled(flag);
ui->lineEditTriggerPulsePerMm->setEnabled(flag);
ui->pushButtonApplyPulseFix->setEnabled(flag);
// ui->labelSynTriggerPrintLen->setEnabled(flag);
ui->spinBoxSynTriggerPrintLen->setEnabled(flag);
ui->comboBoxSyncActType->setEnabled(flag);
// ui->labelSynPrintMode->setEnabled(flag);
ui->comboBoxSynPrintMode->setEnabled(flag);
}
void PrintSetting::on_radioButtonSynTriggerInner_clicked()
{
setEnableSynTriggerSetting(false);
if (sysPara == NULL) return;
if(ui->eleEyeEdgetTriggerInner->isChecked()){
sysPara->para.printTriggerMode = PRINT_TRIGGER_TIME;
setTriggerUI(sysPara->para.printTriggerMode);
}
if (sysPara) {
sysPara->para.eleEyeTriggerSynPrintEn = false;
on_checkEyeTriggerSynPrintEn_clicked(false);
}
setEnableEleEyeSetting(!ui->eleEyeEdgetTriggerInner->isChecked());
}
void PrintSetting::on_radioButtonSynTriggerExternal_clicked()
{
if(!ui->eleEyeEdgetTriggerExternal->isChecked()){
if (sysPara)
sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER;
}
if (sysPara) {
sysPara->para.eleEyeTriggerSynPrintEn = ui->eleEyeEdgetTriggerExternal->isChecked();
on_checkEyeTriggerSynPrintEn_clicked(sysPara->para.eleEyeTriggerSynPrintEn);
}
setEnableSynTriggerSetting(true);
setEnableEleEyeSetting(!ui->eleEyeEdgetTriggerInner->isChecked());
}
void PrintSetting::on_radioButtonEleEyeEdgetTrigger_clicked()
{
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_EDGE;
}
void PrintSetting::on_radioButtonEleEyeLevelTrigger_clicked()
{
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
}
void PrintSetting::on_checkBoxPulseOutputEnable_clicked(bool checked)
{
isPulseEenable = checked;
// ui->spinBoxOutputPulseDelayMs->setEnabled(checked);
}
void PrintSetting::on_cb_unlimited_clicked(bool checked)
{
// ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(!checked);
}