743 lines
29 KiB
C++
743 lines
29 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->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);
|
|
}
|
|
|
|
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::bindSysPara(SysPara *sysPara){
|
|
this->sysPara =sysPara;
|
|
}
|
|
|
|
void PrintSetting::on_pushButtonApply_pressed(){
|
|
|
|
applyUIPara();
|
|
applyUITriggerPara();
|
|
if(sysPara->devOp->writeFpgaPrintPara() != -1)
|
|
QMessageBox::information(this,tr("提示"),tr("应用成功"));
|
|
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::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;
|
|
}
|
|
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();
|
|
|
|
// qDebug()<<"pushButtonApplyPulseFix";
|
|
}
|
|
|
|
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(this,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 = 65535;
|
|
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;
|
|
|
|
// sysPara->para.eleEyeTriggerSynPrintEn = ui->checkEyeTriggerSynPrintEn->isChecked ();
|
|
if(ui->eleEyeEdgetTriggerExternal->isChecked() && ui->radioButtonSynTriggerExternal->isChecked()) //都选外部--电眼+同步触发
|
|
sysPara->para.eleEyeTriggerSynPrintEn=true;
|
|
else
|
|
sysPara->para.eleEyeTriggerSynPrintEn=false;
|
|
|
|
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(bShow);
|
|
//隐藏输入框
|
|
ui->spinBoxSynTriggerPrintLenRatio->setVisible(bShow);
|
|
}
|
|
|
|
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);
|
|
if (sysPara) {
|
|
ui->spinBoxEleEyeTriggerIntervalMs->
|
|
setEnabled(flag || sysPara->para.printTriggerMode == PRINT_TRIGGER_TIME);
|
|
}
|
|
ui->labelEleMaskTime->setEnabled(flag);
|
|
ui->spinBoxEleMaskTime->setEnabled(flag);
|
|
ui->labelEleEyeTriggerRepeatCnt->setEnabled(flag);
|
|
ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(flag);
|
|
ui->radioButtonEleEyeEdgetTrigger->setEnabled(flag);
|
|
ui->radioButtonEleEyeLevelTrigger->setEnabled(flag);
|
|
ui->cb_unlimited->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);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
|
|
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);
|
|
}
|