V6.7.5_beta

This commit is contained in:
2026-07-22 11:47:13 +08:00
parent e90e80000f
commit 50c4999d90
26 changed files with 798 additions and 743 deletions
+97 -31
View File
@@ -110,7 +110,7 @@ void PrintSetting::on_pushButtonApply_pressed(){
PrintSettingModel::setDefPrintSettingModel(m_model);
QMessageBox::information(nullptr, tr("提示"), tr("默认设置已保存"));
} else {
applyPrintSettingsToSysPara(true);
// applyPrintSettingsToSysPara(true);
}
}
@@ -157,21 +157,8 @@ void PrintSetting::updateModelFromUI(){
m_model.outputPulseDelayMs = ui->spinBoxOutputPulseDelayMs->value();
m_model.OuputPulseCol = ui->spinBoxOuputPulseCol->value();
unsigned int value = 0;
if (ui->cb_unlimited->isChecked())
value = (m_model.triggerMode == PRINT_TRIGGER_SYNCHRONIZER || m_model.triggerMode == PRINT_TRIGGER_TIME) ? UINT32_MAX : UINT16_MAX;
else
value = ui->spinBoxEleEyeTriggerRepeatCnt->value();
m_model.eleEyeRepeatCnt = value;
// if (m_model.triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL
// || m_model.triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE
// || m_model.triggerMode == PRINT_TRIGGER_SYNCHRONIZER) {
// ui->labelOutputPulseDelayMs->setText(tr("延时(毫米):"));
// } else {
// ui->labelOutputPulseDelayMs->setText(tr("延时(毫秒):"));
// }
m_model.unlimitedRepeat = ui->cb_unlimited->isChecked();
m_model.eleEyeRepeatCnt = ui->spinBoxEleEyeTriggerRepeatCnt->value();
}
void PrintSetting::bindSysPara(SysPara *sysPara)
@@ -224,12 +211,8 @@ void PrintSetting::TriggerupdateModelToUI()
ui->spinBoxEleEyeTriggerIntervalMs->setValue(m_model.triggerInterval);
ui->spinBoxOutputPulseDelayMs->setValue(m_model.outputPulseDelayMs);
if(m_model.eleEyeRepeatCnt > INT32_MAX){
ui->cb_unlimited->setChecked(true);
}
else {
ui->spinBoxEleEyeTriggerRepeatCnt->setValue(m_model.eleEyeRepeatCnt);
}
ui->cb_unlimited->setChecked(m_model.unlimitedRepeat);
ui->spinBoxEleEyeTriggerRepeatCnt->setValue(m_model.eleEyeRepeatCnt);
ui->spinBoxSynTriggerPrintLen->setText(QString::number(m_model.triggerInterval));
ui->lineEditTriggerPulsePerMm->setText(QString::number((double)m_model.encoderPulsePerMm));
@@ -592,12 +575,14 @@ void PrintSetting::setEnableEleEyeSetting(bool flag){
ui->labelEleEyeTriggerIntervalMs->setEnabled(!(ui->radioButtonSynTriggerExternal->isChecked() && ui->eleEyeEdgetTriggerInner->isChecked()));
// ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(!(ui->radioButtonSynTriggerExternal->isChecked() && ui->eleEyeEdgetTriggerInner->isChecked()));
ui->spinBoxEleMaskTime->setEnabled(flag);
ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(true);
ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(flag);
ui->radioButtonEleEyeEdgetTrigger->setEnabled(flag);
ui->radioButtonEleEyeLevelTrigger->setEnabled(flag);
ui->cb_unlimited->setEnabled(true);
ui->spinBoxEleEyeTriggerPrintDelay->setEnabled(flag);
if (!flag) ui->cb_unlimited->setChecked(false);
ui->cb_unlimited->setEnabled(true);
ui->cb_unlimited->setChecked(!flag);
}
void PrintSetting::on_eleEyeEdgetTriggerExternal_clicked()
@@ -638,7 +623,7 @@ void PrintSetting::applyPrintSettingsToSysPara(bool showTip)
int res = sysPara->devOp->writeFpgaPrintPara(!showTip);
sysPara->devOp->writeSyncAndDelayPrintCount(
m_model.triggerMode == PRINT_TRIGGER_SYNCHRONIZER || m_model.triggerMode == PRINT_TRIGGER_TIME,
(m_model.triggerMode == PRINT_TRIGGER_SYNCHRONIZER || m_model.triggerMode == PRINT_TRIGGER_TIME) && m_model.unlimitedRepeat,
m_model.eleEyeRepeatCnt);
sysPara->devOp->setHighVoltageAmplitudetoSTM32();
@@ -661,6 +646,7 @@ void PrintSetting::applyPrintSettingsToSysPara(bool showTip)
PrintSettingModel PrintSetting::model() const
{
updateModelFromUI();
return m_model;
}
@@ -732,9 +718,18 @@ void PrintSetting::on_cb_unlimited_clicked(bool checked)
void PrintSettingModel::loadFromXml(PrintSettingModel& model, const QXmlStreamAttributes& attrs)
{
auto readIntAttrOrDefault = [&attrs](const char* name, int defaultValue) -> int {
return attrs.hasAttribute(name) ? attrs.value(name).toInt() : defaultValue;
};
auto readBoolAttrOrDefault = [&attrs](const char* name, bool defaultValue) -> bool {
return attrs.hasAttribute(name) ? (attrs.value(name).toInt() != 0) : defaultValue;
};
model.timeTriggerPrintMode = attrs.value("timeTriggerPrintMode").toInt();
model.triggerInterval = attrs.value("triggerInterval").toUInt();
model.eleEyeRepeatCnt = attrs.value("eleEyeRepeatCnt").toUInt();
model.unlimitedRepeat = attrs.value("unlimitedRepeat").toInt() != 0;
model.triggerMode = attrs.value("triggerMode").toUInt();
model.encoderPulsePerMm = attrs.value("encoderPulsePerMm").toFloat();
model.printColDelay = attrs.value("printColDelay").toUInt();
@@ -754,6 +749,22 @@ void PrintSettingModel::loadFromXml(PrintSettingModel& model, const QXmlStreamAt
model.leftRightInverse = attrs.value("leftRightInverse").toInt() != 0;
model.upDownInverse = attrs.value("upDownInverse").toInt() != 0;
model.eleEyeTriggerSynPrintEn = attrs.value("eleEyeTriggerSynPrintEn").toInt() != 0;
model.cnt1Settings.startValue = readIntAttrOrDefault("cnt1StartValue", model.cnt1Settings.startValue);
model.cnt1Settings.endValue = readIntAttrOrDefault("cnt1EndValue", model.cnt1Settings.endValue);
model.cnt1Settings.repeatValue = readIntAttrOrDefault("cnt1RepeatValue", model.cnt1Settings.repeatValue);
model.cnt1Settings.stepValue = readIntAttrOrDefault("cnt1StepValue", model.cnt1Settings.stepValue);
model.cnt1Settings.currValue = readIntAttrOrDefault("cnt1CurrValue", model.cnt1Settings.currValue);
model.cnt1Settings.editCurrValue = readBoolAttrOrDefault("cnt1EditCurrValue", model.cnt1Settings.editCurrValue);
model.cnt1Settings.eleEyeIncEn = readBoolAttrOrDefault("cnt1EleEyeIncEn", model.cnt1Settings.eleEyeIncEn);
model.cnt2Settings.startValue = readIntAttrOrDefault("cnt2StartValue", model.cnt2Settings.startValue);
model.cnt2Settings.endValue = readIntAttrOrDefault("cnt2EndValue", model.cnt2Settings.endValue);
model.cnt2Settings.repeatValue = readIntAttrOrDefault("cnt2RepeatValue", model.cnt2Settings.repeatValue);
model.cnt2Settings.stepValue = readIntAttrOrDefault("cnt2StepValue", model.cnt2Settings.stepValue);
model.cnt2Settings.currValue = readIntAttrOrDefault("cnt2CurrValue", model.cnt2Settings.currValue);
model.cnt2Settings.editCurrValue = readBoolAttrOrDefault("cnt2EditCurrValue", model.cnt2Settings.editCurrValue);
model.cnt2Settings.eleEyeIncEn = readBoolAttrOrDefault("cnt2EleEyeIncEn", model.cnt2Settings.eleEyeIncEn);
}
void PrintSettingModel::saveToXml(const PrintSettingModel& model, QXmlStreamWriter& writer)
@@ -761,6 +772,7 @@ void PrintSettingModel::saveToXml(const PrintSettingModel& model, QXmlStreamWrit
writer.writeAttribute("timeTriggerPrintMode", QString::number(model.timeTriggerPrintMode));
writer.writeAttribute("triggerInterval", QString::number(model.triggerInterval));
writer.writeAttribute("eleEyeRepeatCnt", QString::number(model.eleEyeRepeatCnt));
writer.writeAttribute("unlimitedRepeat", QString::number(model.unlimitedRepeat));
writer.writeAttribute("triggerMode", QString::number(model.triggerMode));
writer.writeAttribute("encoderPulsePerMm", QString::number((double)model.encoderPulsePerMm));
writer.writeAttribute("printColDelay", QString::number(model.printColDelay));
@@ -780,6 +792,22 @@ void PrintSettingModel::saveToXml(const PrintSettingModel& model, QXmlStreamWrit
writer.writeAttribute("leftRightInverse", QString::number(model.leftRightInverse));
writer.writeAttribute("upDownInverse", QString::number(model.upDownInverse));
writer.writeAttribute("eleEyeTriggerSynPrintEn", QString::number(model.eleEyeTriggerSynPrintEn));
writer.writeAttribute("cnt1StartValue", QString::number(model.cnt1Settings.startValue));
writer.writeAttribute("cnt1EndValue", QString::number(model.cnt1Settings.endValue));
writer.writeAttribute("cnt1RepeatValue", QString::number(model.cnt1Settings.repeatValue));
writer.writeAttribute("cnt1StepValue", QString::number(model.cnt1Settings.stepValue));
writer.writeAttribute("cnt1CurrValue", QString::number(model.cnt1Settings.currValue));
writer.writeAttribute("cnt1EditCurrValue", QString::number(model.cnt1Settings.editCurrValue));
writer.writeAttribute("cnt1EleEyeIncEn", QString::number(model.cnt1Settings.eleEyeIncEn));
writer.writeAttribute("cnt2StartValue", QString::number(model.cnt2Settings.startValue));
writer.writeAttribute("cnt2EndValue", QString::number(model.cnt2Settings.endValue));
writer.writeAttribute("cnt2RepeatValue", QString::number(model.cnt2Settings.repeatValue));
writer.writeAttribute("cnt2StepValue", QString::number(model.cnt2Settings.stepValue));
writer.writeAttribute("cnt2CurrValue", QString::number(model.cnt2Settings.currValue));
writer.writeAttribute("cnt2EditCurrValue", QString::number(model.cnt2Settings.editCurrValue));
writer.writeAttribute("cnt2EleEyeIncEn", QString::number(model.cnt2Settings.eleEyeIncEn));
}
void PrintSettingModel::applyToSysPara(const PrintSettingModel &model, SysPara *sysPara)
@@ -799,7 +827,11 @@ void PrintSettingModel::applyToSysPara(const PrintSettingModel &model, SysPara *
sysPara->para.timeTriggerPrintMode = model.timeTriggerPrintMode;
sysPara->para.elecEyeTriggerInterval = model.triggerInterval;
sysPara->para.photoElectricityRepeateNum = model.eleEyeRepeatCnt;
sysPara->para.photoElectricityRepeateNum = (model.unlimitedRepeat &&
(model.triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL || model.triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)) ?
UINT16_MAX : model.eleEyeRepeatCnt;
sysPara->para.synTriggerPrintLenMm = (float)model.triggerInterval;
sysPara->para.synPulseNumPerMm = model.encoderPulsePerMm;
sysPara->para.sysTriggerPrintMode = SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH;
@@ -840,6 +872,25 @@ void PrintSettingModel::applyToSysPara(const PrintSettingModel &model, SysPara *
&& !(isEyeMode && model.eleEyeTriggerSynPrintEn);
sysPara->para.synTriggerExternal = !sysPara->para.synTriggerInner;
sysPara->para.enbSyncAndTimeTriggerLimit = !model.unlimitedRepeat &&
(model.triggerMode == PRINT_TRIGGER_TIME || model.triggerMode == PRINT_TRIGGER_SYNCHRONIZER);
sysPara->para.syncAndTimeTriggerLimit = sysPara->para.enbSyncAndTimeTriggerLimit ? model.eleEyeRepeatCnt : 0;
sysPara->para.cnt1EndValue = model.cnt1Settings.endValue;
sysPara->para.cnt1StartValue = model.cnt1Settings.startValue;
sysPara->para.cnt1StepValue = model.cnt1Settings.stepValue;
sysPara->para.cnt1RepeateValue = model.cnt1Settings.repeatValue;
sysPara->para.cnt1CurrValue = model.cnt1Settings.currValue;
sysPara->status.cnt1CurrentValueInitDoneFlag = model.cnt1Settings.editCurrValue;
sysPara->para.cnt2EndValue = model.cnt2Settings.endValue;
sysPara->para.cnt2StartValue = model.cnt2Settings.startValue;
sysPara->para.cnt2StepValue = model.cnt2Settings.stepValue;
sysPara->para.cnt2RepeateValue = model.cnt2Settings.repeatValue;
sysPara->para.cnt2CurrValue = model.cnt2Settings.currValue;
sysPara->status.cnt2CurrentValueInitDoneFlag = model.cnt2Settings.editCurrValue;
}
PrintSettingModel PrintSettingModel::fromSysPara(SysPara *sysPara)
@@ -891,6 +942,20 @@ PrintSettingModel PrintSettingModel::fromSysPara(SysPara *sysPara)
model.OuputPulseCol = sysPara->para.OuputPulseCol;
model.pulse_sinal_value = sysPara->para.pulse_sinal_value;
model.cnt1Settings.startValue = sysPara->para.cnt1StartValue;
model.cnt1Settings.endValue = sysPara->para.cnt1EndValue;
model.cnt1Settings.repeatValue = sysPara->para.cnt1RepeateValue;
model.cnt1Settings.stepValue = sysPara->para.cnt1StepValue;
model.cnt1Settings.currValue = sysPara->para.cnt1CurrValue;
model.cnt1Settings.editCurrValue = sysPara->status.cnt1CurrentValueInitDoneFlag;
model.cnt2Settings.startValue = sysPara->para.cnt2StartValue;
model.cnt2Settings.endValue = sysPara->para.cnt2EndValue;
model.cnt2Settings.repeatValue = sysPara->para.cnt2RepeateValue;
model.cnt2Settings.stepValue = sysPara->para.cnt2StepValue;
model.cnt2Settings.currValue = sysPara->para.cnt2CurrValue;
model.cnt2Settings.editCurrValue = sysPara->status.cnt2CurrentValueInitDoneFlag;
return model;
}
@@ -898,10 +963,10 @@ QString PrintSettingModel::toString(const PrintSettingModel &model)
{
QString str = QString::asprintf("LRInverse: %d, UpDownInverse: %d, printColDelay: %d, \r\n"
"highVoltageAmplitude: %d, volParaIndex: %d, triggerMode: %d, eleEyeTriggerSynPrintEn: %d, \r\n"
"eleMaskTime: %d, triggerInterval: %d, timeTriggerPrintMode: %d, eleEyeRepeatCnt: %d, \r\n"
"eleEyeTriggerPrintDelay: %d, encoderPulsePerMm: %d, altMirrorType: %d, altMirrorGap: %d. \r\n",
"eleMaskTime: %d, triggerInterval: %d, timeTriggerPrintMode: %d, eleEyeRepeatCnt: %d, unlimitedRepeat: %d, \r\n"
"eleEyeTriggerPrintDelay: %d, encoderPulsePerMm: %.3f, altMirrorType: %d, altMirrorGap: %d. \r\n",
model.leftRightInverse, model.upDownInverse, model.printColDelay, model.highVoltageAmplitude, model.volParaIndex, model.triggerMode,
model.eleEyeTriggerSynPrintEn, model.eleMaskTime, model.triggerInterval, model.timeTriggerPrintMode, model.eleEyeRepeatCnt,
model.eleEyeTriggerSynPrintEn, model.eleMaskTime, model.triggerInterval, model.timeTriggerPrintMode, model.eleEyeRepeatCnt, model.unlimitedRepeat,
model.eleEyeTriggerPrintDelay, model.encoderPulsePerMm, model.altMirrorType, model.altMirrorGap);
return str;
}
@@ -933,10 +998,11 @@ void PrintSettingModel::setDefPrintSettingModel(const PrintSettingModel &model)
}
QXmlStreamWriter writer(&file);
PrintSettingModel normalizedModel = model;
writer.setAutoFormatting(true);
writer.writeStartDocument();
writer.writeEmptyElement("PrintSettings");
saveToXml(model, writer);
saveToXml(normalizedModel, writer);
writer.writeEndDocument();
file.close();