修改外部同步器的编辑逻辑、添加‘另存为’ 按钮

This commit is contained in:
2026-09-11 16:12:28 +08:00
parent 5a187c359b
commit 7d411deab0
22 changed files with 1305 additions and 1179 deletions
+32 -45
View File
@@ -89,6 +89,14 @@ void PrintSetting::init()
if(b)
on_radioButtonSynTriggerExternal_clicked();
});
connect(ui->dsb_diameter, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, [this](double v){
updateTriggerPPM();
});
connect(ui->dsb_pulsePerCycle, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, [this](double v){
updateTriggerPPM();
});
}
extern void MySleep(unsigned int msec);
@@ -124,8 +132,13 @@ void PrintSetting::updateModelFromUI(){
m_model.eleEyeTriggerPrintDelay = ui->spinBoxEleEyeTriggerPrintDelay->value();
m_model.timeTriggerPrintMode = 0;
m_model.triggerInterval = ui->spinBoxEleEyeTriggerIntervalMs->value();
updateTriggerPPM();
m_model.encoderPulsePerMm = ui->lineEditTriggerPulsePerMm->text().toFloat();
m_model.encoderDiameter = ui->dsb_diameter->value();
m_model.encoderPulsePerCycle = ui->dsb_pulsePerCycle->value();
if(ui->eleEyeEdgetTriggerExternal->isChecked() && ui->radioButtonSynTriggerExternal->isChecked()) {
m_model.triggerMode = ui->radioButtonEleEyeEdgetTrigger->isChecked() ? PRINT_TRIGGER_ELEC_EYE_EDGE : PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
}
@@ -215,7 +228,16 @@ void PrintSetting::TriggerupdateModelToUI()
ui->spinBoxEleEyeTriggerRepeatCnt->setValue(m_model.eleEyeRepeatCnt);
ui->spinBoxSynTriggerPrintLen->setText(QString::number(m_model.triggerInterval));
ui->lineEditTriggerPulsePerMm->setText(QString::number((double)m_model.encoderPulsePerMm));
auto b = ui->dsb_diameter->blockSignals(true);
ui->dsb_diameter->setValue(m_model.encoderDiameter);
ui->dsb_diameter->blockSignals(b);
b = ui->dsb_pulsePerCycle->blockSignals(true);
ui->dsb_pulsePerCycle->setValue(m_model.encoderPulsePerCycle);
ui->dsb_pulsePerCycle->blockSignals(b);
updateTriggerPPM();
ui->comboBoxEleEyeMakeClean->setCurrentIndex(0);
@@ -241,10 +263,10 @@ void PrintSetting::TriggerupdateModelToUI()
void PrintSetting::updateSysStatusToUI(){
}
void PrintSetting::on_pushButtonApplyPulseFix_clicked()
void PrintSetting::updateTriggerPPM()
{
float circle = ui->lineEditDiameter->text().toFloat() * 3.1415926;
float pulseNum = ui->lineEditPulsePerCycle->text().toFloat();
double circle = ui->dsb_diameter->value() * 3.1415926;
double pulseNum = ui->dsb_pulsePerCycle->value();
if(circle != 0){
auto pulseNumPerMM = 4*pulseNum/circle; //电路和Fpga做了4倍频处理,这里乘以4是为了匹配4倍频的处理进行正确的显示
m_model.encoderPulsePerMm = pulseNumPerMM;
@@ -252,15 +274,6 @@ void PrintSetting::on_pushButtonApplyPulseFix_clicked()
ui->lineEditTriggerPulsePerMm->setText(QString::number(pulseNumPerMM));
ui->lineEditTriggerPulsePerMm->blockSignals(b);
}
return;
if(!sysPara)
return;
pulseNumFix->bindSysPara(sysPara);
pulseNumFix->hide();
pulseNumFix->show();
}
void PrintSetting::onPulseNumFixDone(float value){
@@ -304,16 +317,6 @@ void PrintSetting::on_radioButtonEleEyeLevelTrigger_pressed()
void PrintSetting::on_radioButtonSynTrigger_pressed()
{
setTriggerUI(PRINT_TRIGGER_SYNCHRONIZER);
//edit@11-19
// 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)
@@ -327,16 +330,6 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool 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("抑止距离(毫米)"));
@@ -351,16 +344,6 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked)
#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("抑止距离(毫秒)"));
@@ -602,8 +585,8 @@ void PrintSetting::on_eleEyeEdgetTriggerExternal_clicked()
void PrintSetting::setEnableSynTriggerSetting(bool flag){
// ui->labelTriggerPulsePerMm->setEnabled(flag);
ui->lineEditTriggerPulsePerMm->setEnabled(flag);
ui->pushButtonApplyPulseFix->setEnabled(flag);
ui->lineEditTriggerPulsePerMm->setEnabled(false);
// ui->pushButtonApplyPulseFix->setEnabled(flag);
// ui->labelSynTriggerPrintLen->setEnabled(flag);
ui->spinBoxSynTriggerPrintLen->setEnabled(flag);
ui->comboBoxSyncActType->setEnabled(flag);
@@ -732,6 +715,8 @@ void PrintSettingModel::loadFromXml(PrintSettingModel& model, const QXmlStreamAt
model.unlimitedRepeat = attrs.value("unlimitedRepeat").toInt() != 0;
model.triggerMode = attrs.value("triggerMode").toUInt();
model.encoderPulsePerMm = attrs.value("encoderPulsePerMm").toFloat();
model.encoderDiameter = attrs.value("encoderDiameter").toDouble();
model.encoderPulsePerCycle = attrs.value("encoderPulsePerCycle").toDouble();
model.printColDelay = attrs.value("printColDelay").toUInt();
model.volParaIndex = (unsigned short)attrs.value("volParaIndex").toUInt();
model.eleEyeTriggerPrintDelay = (unsigned short)attrs.value("eleEyeTriggerPrintDelay").toUInt();
@@ -773,6 +758,8 @@ void PrintSettingModel::saveToXml(const PrintSettingModel& model, QXmlStreamWrit
writer.writeAttribute("unlimitedRepeat", QString::number(model.unlimitedRepeat));
writer.writeAttribute("triggerMode", QString::number(model.triggerMode));
writer.writeAttribute("encoderPulsePerMm", QString::number((double)model.encoderPulsePerMm));
writer.writeAttribute("encoderPulsePerCycle", QString::number(model.encoderPulsePerCycle));
writer.writeAttribute("encoderDiameter", QString::number(model.encoderDiameter));
writer.writeAttribute("printColDelay", QString::number(model.printColDelay));
writer.writeAttribute("volParaIndex", QString::number(model.volParaIndex));
writer.writeAttribute("eleEyeTriggerPrintDelay", QString::number(model.eleEyeTriggerPrintDelay));