|
|
|
@@ -3,7 +3,10 @@
|
|
|
|
|
|
|
|
|
|
#include <QMessageBox>
|
|
|
|
|
#include <QDebug>
|
|
|
|
|
#include <QFile>
|
|
|
|
|
#include <QXmlStreamReader>
|
|
|
|
|
#include "LogInfo.h"
|
|
|
|
|
#include "PrintSetting.h"
|
|
|
|
|
|
|
|
|
|
PrintSetting::PrintSetting(QWidget *parent) :
|
|
|
|
|
QWidget(parent),
|
|
|
|
@@ -102,135 +105,138 @@ void PrintSetting::on_pushButtonApply_pressed(){
|
|
|
|
|
applyPrintSettingsToSysPara(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
void PrintSetting::updateModelFromUI(){
|
|
|
|
|
m_model.leftRightInverse = ui->checkBoxLeftRightInverse->isChecked();
|
|
|
|
|
m_model.upDownInverse = ui->checkBoxUpDownInverse->isChecked();
|
|
|
|
|
m_model.volParaIndex = ui->comboBox_selcetVolPara->currentIndex();
|
|
|
|
|
m_model.printColDelay = ui->spinBoxColDelay->value();
|
|
|
|
|
m_model.highVoltageAmplitude = ui->spinBoxHighVoltageValue->value();
|
|
|
|
|
|
|
|
|
|
sysPara->para.HighVoltageAmplitude = ui->spinBoxHighVoltageValue->value();
|
|
|
|
|
m_model.eleEyeTriggerPrintDelay = ui->spinBoxEleEyeTriggerPrintDelay->value();
|
|
|
|
|
m_model.timeTriggerPrintMode = 0;
|
|
|
|
|
m_model.triggerInterval = ui->spinBoxEleEyeTriggerIntervalMs->value();
|
|
|
|
|
int value = 0;
|
|
|
|
|
if (ui->cb_unlimited->isChecked())
|
|
|
|
|
value = UINT16_MAX;
|
|
|
|
|
else
|
|
|
|
|
value = ui->spinBoxEleEyeTriggerRepeatCnt->value();
|
|
|
|
|
|
|
|
|
|
// 回收泵的控制转至系统设置界面 byons@2026年4月22日
|
|
|
|
|
// sysPara->para.gearPumpEnable = ui->checkBoxGearPumpEnable->isChecked();
|
|
|
|
|
// sysPara->para.flagOfReclaimPumEnable = ui->checkBox_ReclaimPumpEnable->isChecked();
|
|
|
|
|
m_model.eleEyeRepeatCnt = value;
|
|
|
|
|
m_model.encoderPulsePerMm = ui->lineEditTriggerPulsePerMm->text().toFloat();
|
|
|
|
|
|
|
|
|
|
sysPara->devOp->setHighVoltageAmplitudetoSTM32();
|
|
|
|
|
|
|
|
|
|
sysPara->devOp->writeFpgaCalandar(0);
|
|
|
|
|
|
|
|
|
|
sysPara->devOp->writeFlightCompCtrl(ui->enbFlightCompCtrl->isChecked(),
|
|
|
|
|
ui->enbAccelDecelPredict->isChecked(), quint32(ui->flightCompWindowCycles->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;
|
|
|
|
|
}
|
|
|
|
|
else if(ui->eleEyeEdgetTriggerInner->isChecked() && ui->radioButtonSynTriggerInner->isChecked()) {
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_TIME;
|
|
|
|
|
}
|
|
|
|
|
else if(ui->radioButtonSynTriggerExternal->isChecked() && ui->eleEyeEdgetTriggerInner->isChecked()) {
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_SYNCHRONIZER;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// if (m_model.triggerMode == PRINT_TRIGGER_SYNCHRONIZER) {
|
|
|
|
|
// if (m_model.triggerInterval < m_model.eleEyeTriggerPrintDelay) {
|
|
|
|
|
// QMessageBox::information(nullptr, tr("提示:参数不正确"), tr("要求:触发长度小于喷印间隔"));
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
m_model.eleMaskTime = ui->spinBoxEleMaskTime->value();
|
|
|
|
|
m_model.altMirrorType = ui->comboBoxAltMirrType->currentIndex();
|
|
|
|
|
m_model.altMirrorGap = ui->spinBoxAltMirrorGap->value();
|
|
|
|
|
|
|
|
|
|
m_model.syncTriggerMode = ui->comboBoxSyncActType->currentIndex();
|
|
|
|
|
|
|
|
|
|
bool eleEyeExternal = ui->eleEyeEdgetTriggerExternal->isChecked();
|
|
|
|
|
bool synExternal = ui->radioButtonSynTriggerExternal->isChecked();
|
|
|
|
|
m_model.eleEyeTriggerSynPrintEn = eleEyeExternal && synExternal;
|
|
|
|
|
|
|
|
|
|
m_model.pulseOutputEnable = ui->checkBoxPulseOutputEnable->isChecked();
|
|
|
|
|
m_model.productCntPerOutputPulse = ui->spinBoxProductCntPerOutputPulse->value();
|
|
|
|
|
m_model.outputPulseDelayMs = ui->spinBoxOutputPulseDelayMs->value();
|
|
|
|
|
m_model.OuputPulseCol = ui->spinBoxOuputPulseCol->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("延时(毫秒):"));
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
if (sysPara) {
|
|
|
|
|
m_model = PrintSettingModel::fromSysPara(sysPara);
|
|
|
|
|
updateModelToUI();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::TriggerupdateSysParaToUI(){
|
|
|
|
|
if(sysPara)
|
|
|
|
|
{
|
|
|
|
|
/*----------------------------------------*/
|
|
|
|
|
setTriggerUI(sysPara->para.printTriggerMode);
|
|
|
|
|
void PrintSetting::updateModelToUI(){
|
|
|
|
|
ui->checkBoxLeftRightInverse->setChecked(m_model.leftRightInverse);
|
|
|
|
|
ui->checkBoxUpDownInverse->setChecked(m_model.upDownInverse);
|
|
|
|
|
|
|
|
|
|
if (sysPara->para.eleEyeTriggerSynPrintEn) //电眼触发的同步打印使能,电眼和同步器都选外部
|
|
|
|
|
{
|
|
|
|
|
sysPara->para.eleEyeEdgetTriggerInner = 0;
|
|
|
|
|
sysPara->para.synTriggerInner = 0;
|
|
|
|
|
sysPara->para.eleEyeEdgetTriggerExternal = 1;
|
|
|
|
|
sysPara->para.synTriggerExternal = 1;
|
|
|
|
|
ui->spinBoxColDelay->setValue(m_model.printColDelay);
|
|
|
|
|
|
|
|
|
|
ui->spinBoxHighVoltageValue->setValue(m_model.highVoltageAmplitude);
|
|
|
|
|
|
|
|
|
|
ui->comboBox_selcetVolPara->setCurrentIndex(m_model.volParaIndex);
|
|
|
|
|
|
|
|
|
|
TriggerupdateModelToUI();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::TriggerupdateModelToUI()
|
|
|
|
|
{
|
|
|
|
|
setTriggerUI(m_model.triggerMode);
|
|
|
|
|
|
|
|
|
|
bool eleEyeInner = m_model.triggerMode != PRINT_TRIGGER_ELEC_EYE_EDGE
|
|
|
|
|
&& m_model.triggerMode != PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
|
|
|
|
|
bool isEyeMode = (m_model.triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE
|
|
|
|
|
|| m_model.triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL);
|
|
|
|
|
bool synInner = m_model.triggerMode != PRINT_TRIGGER_SYNCHRONIZER
|
|
|
|
|
&& !(isEyeMode && m_model.eleEyeTriggerSynPrintEn);
|
|
|
|
|
|
|
|
|
|
if (m_model.eleEyeTriggerSynPrintEn) {
|
|
|
|
|
eleEyeInner = false;
|
|
|
|
|
synInner = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
qDebug() << sysPara->para.eleEyeEdgetTriggerInner;
|
|
|
|
|
qDebug() << sysPara->para.eleEyeEdgetTriggerExternal;
|
|
|
|
|
ui->eleEyeEdgetTriggerInner->setChecked(eleEyeInner);
|
|
|
|
|
ui->eleEyeEdgetTriggerExternal->setChecked(!eleEyeInner);
|
|
|
|
|
ui->radioButtonSynTriggerInner->setChecked(synInner);
|
|
|
|
|
ui->radioButtonSynTriggerExternal->setChecked(!synInner);
|
|
|
|
|
|
|
|
|
|
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->spinBoxEleEyeTriggerPrintDelay->setValue(sysPara->para.eleEyeTriggerPrintDelay);
|
|
|
|
|
ui->spinBoxEleEyeTriggerPrintDelay->setValue(m_model.eleEyeTriggerPrintDelay);
|
|
|
|
|
#ifndef NON_CABLE
|
|
|
|
|
ui->comboBoxTimeTriggerMode->setCurrentIndex(sysPara->para.timeTriggerPrintMode);
|
|
|
|
|
ui->comboBoxTimeTriggerMode->setCurrentIndex(m_model.timeTriggerPrintMode);
|
|
|
|
|
#endif
|
|
|
|
|
ui->spinBoxEleEyeTriggerIntervalMs->setValue(sysPara->para.elecEyeTriggerInterval);
|
|
|
|
|
ui->spinBoxOutputPulseDelayMs->setValue(sysPara->para.outputPulseDelayMs);
|
|
|
|
|
ui->spinBoxEleEyeTriggerRepeatCnt->setValue(sysPara->para.photoElectricityRepeateNum);
|
|
|
|
|
ui->spinBoxEleEyeTriggerIntervalMs->setValue(m_model.triggerInterval);
|
|
|
|
|
ui->spinBoxOutputPulseDelayMs->setValue(m_model.outputPulseDelayMs);
|
|
|
|
|
ui->spinBoxEleEyeTriggerRepeatCnt->setValue(m_model.eleEyeRepeatCnt);
|
|
|
|
|
|
|
|
|
|
//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->spinBoxSynTriggerPrintLen->setText(QString::number(m_model.triggerInterval));
|
|
|
|
|
ui->lineEditTriggerPulsePerMm->setText(QString::number((double)m_model.encoderPulsePerMm));
|
|
|
|
|
|
|
|
|
|
/*----------------------------------------*/
|
|
|
|
|
// ui->spinBoxEleEyeTriggerPrintDelay->setValue(sysPara->para.eleEyeTriggerPrintDelay);
|
|
|
|
|
//ui->checkBoxEleEyeMakeClean->setChecked(sysPara->para.eleEyeClearCntInSynMode);
|
|
|
|
|
ui->comboBoxEleEyeMakeClean->setCurrentIndex( sysPara->para.eleEyeClearCntInSynMode - 0x20);
|
|
|
|
|
ui->comboBoxEleEyeMakeClean->setCurrentIndex(0);
|
|
|
|
|
|
|
|
|
|
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->checkBoxPulseOutputEnable->setChecked(m_model.pulseOutputEnable);
|
|
|
|
|
ui->spinBoxProductCntPerOutputPulse->setValue(m_model.productCntPerOutputPulse);
|
|
|
|
|
ui->spinBoxOuputPulseCol->setValue(m_model.OuputPulseCol);
|
|
|
|
|
|
|
|
|
|
// ui->labelOutputPulseDelayMs->setEnabled(sysPara->para.pulseOutputEnable);
|
|
|
|
|
ui->comboBoxSyncActType->setCurrentIndex(m_model.syncTriggerMode);
|
|
|
|
|
|
|
|
|
|
//ui->spinBoxOutputPulseDelayMs->setEnabled(sysPara->para.pulseOutputEnable);
|
|
|
|
|
ui->spinBoxEleMaskTime->setValue(m_model.eleMaskTime);
|
|
|
|
|
|
|
|
|
|
// ui->spinBoxOutputPulseDelayMs->setEnabled(isPulseEenable);
|
|
|
|
|
ui->spinBoxOuputPulseCol->setValue(sysPara->para.OuputPulseCol);
|
|
|
|
|
ui->spinBoxAltMirrorGap->setValue(m_model.altMirrorGap);
|
|
|
|
|
|
|
|
|
|
// 通过是否关闭同步器反转补偿,来确定选项框索引
|
|
|
|
|
int comboBoxSyncActTypeIndex = int(sysPara->para.synchronizorActType);
|
|
|
|
|
if(!sysPara->para.syncRevCompDisable && sysPara->para.synchronizorActType != 0) {
|
|
|
|
|
comboBoxSyncActTypeIndex = int(sysPara->para.synchronizorActType) + 2;
|
|
|
|
|
}
|
|
|
|
|
ui->comboBoxSyncActType->setCurrentIndex(comboBoxSyncActTypeIndex);
|
|
|
|
|
ui->comboBoxAltMirrType->setCurrentIndex(m_model.altMirrorType);
|
|
|
|
|
ui->spinBoxpluseSinal->setValue(m_model.pulse_sinal_value);
|
|
|
|
|
|
|
|
|
|
//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)
|
|
|
|
|
if (m_model.triggerMode == PRINT_TRIGGER_ELEC_EYE_EDGE)
|
|
|
|
|
ui->radioButtonEleEyeEdgetTrigger->setChecked(true);
|
|
|
|
|
if( sysPara->para.printTriggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL)
|
|
|
|
|
if (m_model.triggerMode == PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL)
|
|
|
|
|
ui->radioButtonEleEyeLevelTrigger->setChecked(true);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::updateSysStatusToUI(){
|
|
|
|
@@ -250,131 +256,7 @@ void PrintSetting::onPulseNumFixDone(float 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.eleEyeTriggerPrintDelay = ui->spinBoxEleEyeTriggerPrintDelay->value();
|
|
|
|
|
sysPara->para.timeTriggerPrintMode = 0; // ui->comboBoxTimeTriggerMode->currentIndex();
|
|
|
|
|
sysPara->para.elecEyeTriggerInterval = ui->spinBoxEleEyeTriggerIntervalMs->value(); //电眼触发的重复间隔
|
|
|
|
|
int value = 0;
|
|
|
|
|
if (ui->cb_unlimited->isChecked()) value = UINT16_MAX;
|
|
|
|
|
else value = ui->spinBoxEleEyeTriggerRepeatCnt->value();
|
|
|
|
|
sysPara->para.photoElectricityRepeateNum = value;
|
|
|
|
|
|
|
|
|
|
sysPara->para.synTriggerPrintLenMm = ui->spinBoxEleEyeTriggerIntervalMs->value();
|
|
|
|
|
//sysPara->para.synTriggerPrintLenMm = ui->spinBoxSynTriggerPrintLen->value();
|
|
|
|
|
|
|
|
|
|
sysPara->para.synPulseNumPerMm = ui->lineEditTriggerPulsePerMm->text().toFloat();
|
|
|
|
|
|
|
|
|
|
sysPara->para.sysTriggerPrintMode = SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH; // 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();
|
|
|
|
|
|
|
|
|
|
// 韩国版本不需要电眼清零 byons@2026年6月23日
|
|
|
|
|
sysPara->para.eleEyeClearCntInSynMode = 0x20 ; // + ui->comboBoxEleEyeMakeClean->currentIndex(); //ui->checkBoxEleEyeMakeClean->isChecked();
|
|
|
|
|
//sysPara->para.autoSynSpeedEn = ui->checkBoxAutoSpeedEN->isChecked ();
|
|
|
|
|
sysPara->para.syncRevCompDisable = 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();
|
|
|
|
|
|
|
|
|
|
// 带补偿的正反转打印选项,位于最后两个comboBox item
|
|
|
|
|
sysPara->para.synchronizorActType = ui->comboBoxSyncActType->currentIndex() > 2 ?
|
|
|
|
|
ui->comboBoxSyncActType->currentIndex() - 2 : ui->comboBoxSyncActType->currentIndex();
|
|
|
|
|
|
|
|
|
|
sysPara->para.syncRevCompDisable = ui->comboBoxSyncActType->currentIndex() <= 2;
|
|
|
|
|
|
|
|
|
|
sysPara->para.pulse_sinal_value = ui->spinBoxpluseSinal->value();
|
|
|
|
|
}
|
|
|
|
|
m_model.encoderPulsePerMm = ui->lineEditTriggerPulsePerMm->text().toFloat();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::on_radioButtonDelayTrigger_pressed()
|
|
|
|
@@ -407,9 +289,8 @@ void PrintSetting::on_radioButtonEleEyeLevelTrigger_pressed()
|
|
|
|
|
|
|
|
|
|
void PrintSetting::on_radioButtonSynTrigger_pressed()
|
|
|
|
|
{
|
|
|
|
|
setTriggerUI(PRINT_TRIGGER_SYNCHRONIZER);
|
|
|
|
|
//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){
|
|
|
|
@@ -426,7 +307,7 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked)
|
|
|
|
|
// ui->cb_unlimited->setEnabled(checked);
|
|
|
|
|
if(sysPara)
|
|
|
|
|
{
|
|
|
|
|
int triggerMode = sysPara->para.printTriggerMode;
|
|
|
|
|
int triggerMode = m_model.triggerMode;
|
|
|
|
|
if( checked)
|
|
|
|
|
{
|
|
|
|
|
#ifndef NON_CABLE
|
|
|
|
@@ -474,56 +355,24 @@ void PrintSetting::on_checkEyeTriggerSynPrintEn_clicked(bool checked)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::setTriggerUI(int triggerMode){
|
|
|
|
|
m_model.triggerMode = 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 &&
|
|
|
|
|
if(m_model.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("触发延时(毫米)"));
|
|
|
|
@@ -543,18 +392,12 @@ void PrintSetting::setTriggerUI(int triggerMode){
|
|
|
|
|
}
|
|
|
|
|
else ui->labelOutputPulseDelayMs->setText(tr("延时(毫秒):"));
|
|
|
|
|
|
|
|
|
|
setSynPrintMode(sysPara->para.sysTriggerPrintMode);
|
|
|
|
|
setSynPrintMode(SYN_PRINT_MODE_ACCORDING_CHAR_WIDTH);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
//隐藏文本框
|
|
|
|
@@ -702,20 +545,20 @@ void PrintSetting::on_eleEyeEdgetTriggerInner_clicked()
|
|
|
|
|
if (sysPara == NULL) return;
|
|
|
|
|
|
|
|
|
|
if(ui->radioButtonSynTriggerInner->isChecked()){
|
|
|
|
|
sysPara->para.printTriggerMode = PRINT_TRIGGER_TIME;
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_TIME;
|
|
|
|
|
}else
|
|
|
|
|
sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER;
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_SYNCHRONIZER;
|
|
|
|
|
|
|
|
|
|
setTriggerUI(sysPara->para.printTriggerMode);
|
|
|
|
|
setTriggerUI(m_model.triggerMode);
|
|
|
|
|
|
|
|
|
|
sysPara->para.eleEyeTriggerSynPrintEn = false;
|
|
|
|
|
m_model.eleEyeTriggerSynPrintEn = false;
|
|
|
|
|
on_checkEyeTriggerSynPrintEn_clicked(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::setEnableEleEyeSetting(bool flag){
|
|
|
|
|
|
|
|
|
|
ui->labelEleEyeTriggerIntervalMs->setEnabled(!(ui->radioButtonSynTriggerExternal->isChecked() && ui->eleEyeEdgetTriggerInner->isChecked()));
|
|
|
|
|
ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(!(ui->radioButtonSynTriggerExternal->isChecked() && ui->eleEyeEdgetTriggerInner->isChecked()));
|
|
|
|
|
// ui->spinBoxEleEyeTriggerIntervalMs->setEnabled(!(ui->radioButtonSynTriggerExternal->isChecked() && ui->eleEyeEdgetTriggerInner->isChecked()));
|
|
|
|
|
ui->spinBoxEleMaskTime->setEnabled(flag);
|
|
|
|
|
ui->spinBoxEleEyeTriggerRepeatCnt->setEnabled(flag);
|
|
|
|
|
ui->radioButtonEleEyeEdgetTrigger->setEnabled(flag);
|
|
|
|
@@ -727,9 +570,8 @@ void PrintSetting::setEnableEleEyeSetting(bool flag){
|
|
|
|
|
|
|
|
|
|
void PrintSetting::on_eleEyeEdgetTriggerExternal_clicked()
|
|
|
|
|
{
|
|
|
|
|
sysPara->para.eleEyeTriggerSynPrintEn = ui->radioButtonSynTriggerExternal->isChecked();
|
|
|
|
|
//电眼和同步器都选外部时,就是同步
|
|
|
|
|
on_checkEyeTriggerSynPrintEn_clicked(sysPara->para.eleEyeTriggerSynPrintEn);
|
|
|
|
|
m_model.eleEyeTriggerSynPrintEn = ui->radioButtonSynTriggerExternal->isChecked();
|
|
|
|
|
on_checkEyeTriggerSynPrintEn_clicked(m_model.eleEyeTriggerSynPrintEn);
|
|
|
|
|
|
|
|
|
|
setEnableEleEyeSetting(true);
|
|
|
|
|
}
|
|
|
|
@@ -748,8 +590,15 @@ void PrintSetting::setEnableSynTriggerSetting(bool flag){
|
|
|
|
|
|
|
|
|
|
void PrintSetting::applyPrintSettingsToSysPara(bool showTip)
|
|
|
|
|
{
|
|
|
|
|
applyUIPara();
|
|
|
|
|
applyUITriggerPara();
|
|
|
|
|
updateModelFromUI();
|
|
|
|
|
PrintSettingModel::applyToSysPara(m_model, sysPara);
|
|
|
|
|
|
|
|
|
|
if (sysPara) {
|
|
|
|
|
sysPara->devOp->setHighVoltageAmplitudetoSTM32();
|
|
|
|
|
sysPara->devOp->writeFpgaCalandar(0);
|
|
|
|
|
sysPara->devOp->writeFlightCompCtrl(ui->enbFlightCompCtrl->isChecked(),
|
|
|
|
|
ui->enbAccelDecelPredict->isChecked(), quint32(ui->flightCompWindowCycles->value()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(sysPara->devOp->writeFpgaPrintPara(true) != -1 && showTip) {
|
|
|
|
|
QMessageBox box(QMessageBox::Icon::Information, tr("提示"), tr("应用成功"), QMessageBox::Ok, nullptr);
|
|
|
|
@@ -763,15 +612,15 @@ void PrintSetting::applyPrintSettingsToSysPara(bool showTip)
|
|
|
|
|
sysPara->saveParaToFile ();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
PrintSettingModel PrintSetting::model()
|
|
|
|
|
PrintSettingModel PrintSetting::model() const
|
|
|
|
|
{
|
|
|
|
|
return PrintSettingModel::fromSysPara(sysPara);
|
|
|
|
|
return m_model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::setModel(const PrintSettingModel &model)
|
|
|
|
|
{
|
|
|
|
|
PrintSettingModel::applyToSysPara(model, sysPara);
|
|
|
|
|
updateSysParaToUI();
|
|
|
|
|
m_model = model;
|
|
|
|
|
updateModelToUI();
|
|
|
|
|
|
|
|
|
|
LogInfo::setRunStatusText("Print settings: " + PrintSettingModel::toString(model));
|
|
|
|
|
}
|
|
|
|
@@ -781,13 +630,11 @@ 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);
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_TIME;
|
|
|
|
|
setTriggerUI(m_model.triggerMode);
|
|
|
|
|
}
|
|
|
|
|
if (sysPara) {
|
|
|
|
|
sysPara->para.eleEyeTriggerSynPrintEn = false;
|
|
|
|
|
m_model.eleEyeTriggerSynPrintEn = false;
|
|
|
|
|
on_checkEyeTriggerSynPrintEn_clicked(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setEnableEleEyeSetting(!ui->eleEyeEdgetTriggerInner->isChecked());
|
|
|
|
|
}
|
|
|
|
@@ -795,26 +642,26 @@ void PrintSetting::on_radioButtonSynTriggerInner_clicked()
|
|
|
|
|
void PrintSetting::on_radioButtonSynTriggerExternal_clicked()
|
|
|
|
|
{
|
|
|
|
|
if(!ui->eleEyeEdgetTriggerExternal->isChecked()){
|
|
|
|
|
if (sysPara)
|
|
|
|
|
sysPara->para.printTriggerMode = PRINT_TRIGGER_SYNCHRONIZER;
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_SYNCHRONIZER;
|
|
|
|
|
}
|
|
|
|
|
if (sysPara) {
|
|
|
|
|
sysPara->para.eleEyeTriggerSynPrintEn = ui->eleEyeEdgetTriggerExternal->isChecked();
|
|
|
|
|
on_checkEyeTriggerSynPrintEn_clicked(sysPara->para.eleEyeTriggerSynPrintEn);
|
|
|
|
|
else {
|
|
|
|
|
m_model.triggerMode = ui->radioButtonEleEyeEdgetTrigger->isChecked() ? PRINT_TRIGGER_ELEC_EYE_EDGE : PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_model.eleEyeTriggerSynPrintEn = ui->eleEyeEdgetTriggerExternal->isChecked();
|
|
|
|
|
on_checkEyeTriggerSynPrintEn_clicked(m_model.eleEyeTriggerSynPrintEn);
|
|
|
|
|
setEnableSynTriggerSetting(true);
|
|
|
|
|
setEnableEleEyeSetting(!ui->eleEyeEdgetTriggerInner->isChecked());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void PrintSetting::on_radioButtonEleEyeEdgetTrigger_clicked()
|
|
|
|
|
{
|
|
|
|
|
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_EDGE;
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_ELEC_EYE_EDGE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSetting::on_radioButtonEleEyeLevelTrigger_clicked()
|
|
|
|
|
{
|
|
|
|
|
sysPara->para.printTriggerMode = PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
|
|
|
|
|
m_model.triggerMode = PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -845,6 +692,11 @@ void PrintSettingModel::loadFromXml(PrintSettingModel& model, const QXmlStreamAt
|
|
|
|
|
model.mode0211 = (unsigned char)attrs.value("mode0211").toUInt();
|
|
|
|
|
model.highVoltageAmplitude = (unsigned char)attrs.value("highVoltageAmplitude").toUInt();
|
|
|
|
|
model.altMirrorType = (unsigned char)attrs.value("altMirrorType").toUInt();
|
|
|
|
|
model.pulseOutputEnable = (unsigned char)attrs.value("pulseOutputEnable").toUInt();
|
|
|
|
|
model.productCntPerOutputPulse = attrs.value("productCntPerOutputPulse").toUInt();
|
|
|
|
|
model.outputPulseDelayMs = (unsigned short)attrs.value("outputPulseDelayMs").toUInt();
|
|
|
|
|
model.OuputPulseCol = (unsigned short)attrs.value("OuputPulseCol").toUInt();
|
|
|
|
|
model.pulse_sinal_value = (unsigned short)attrs.value("pulse_sinal_value").toUInt();
|
|
|
|
|
model.leftRightInverse = attrs.value("leftRightInverse").toInt() != 0;
|
|
|
|
|
model.upDownInverse = attrs.value("upDownInverse").toInt() != 0;
|
|
|
|
|
model.eleEyeTriggerSynPrintEn = attrs.value("eleEyeTriggerSynPrintEn").toInt() != 0;
|
|
|
|
@@ -866,6 +718,11 @@ void PrintSettingModel::saveToXml(const PrintSettingModel& model, QXmlStreamWrit
|
|
|
|
|
writer.writeAttribute("mode0211", QString::number(model.mode0211));
|
|
|
|
|
writer.writeAttribute("highVoltageAmplitude", QString::number(model.highVoltageAmplitude));
|
|
|
|
|
writer.writeAttribute("altMirrorType", QString::number(model.altMirrorType));
|
|
|
|
|
writer.writeAttribute("pulseOutputEnable", QString::number(model.pulseOutputEnable));
|
|
|
|
|
writer.writeAttribute("productCntPerOutputPulse", QString::number(model.productCntPerOutputPulse));
|
|
|
|
|
writer.writeAttribute("outputPulseDelayMs", QString::number(model.outputPulseDelayMs));
|
|
|
|
|
writer.writeAttribute("OuputPulseCol", QString::number(model.OuputPulseCol));
|
|
|
|
|
writer.writeAttribute("pulse_sinal_value", QString::number(model.pulse_sinal_value));
|
|
|
|
|
writer.writeAttribute("leftRightInverse", QString::number(model.leftRightInverse));
|
|
|
|
|
writer.writeAttribute("upDownInverse", QString::number(model.upDownInverse));
|
|
|
|
|
writer.writeAttribute("eleEyeTriggerSynPrintEn", QString::number(model.eleEyeTriggerSynPrintEn));
|
|
|
|
@@ -910,6 +767,12 @@ void PrintSettingModel::applyToSysPara(const PrintSettingModel &model, SysPara *
|
|
|
|
|
|
|
|
|
|
sysPara->para.syncRevCompDisable = model.syncTriggerMode <= 2;
|
|
|
|
|
|
|
|
|
|
sysPara->para.pulseOutputEnable = model.pulseOutputEnable;
|
|
|
|
|
sysPara->para.productCntPerOutputPulse = model.productCntPerOutputPulse;
|
|
|
|
|
sysPara->para.outputPulseDelayMs = model.outputPulseDelayMs;
|
|
|
|
|
sysPara->para.OuputPulseCol = model.OuputPulseCol;
|
|
|
|
|
sysPara->para.pulse_sinal_value = model.pulse_sinal_value;
|
|
|
|
|
|
|
|
|
|
sysPara->para.eleEyeEdgetTriggerInner =
|
|
|
|
|
model.triggerMode != PRINT_TRIGGER_ELEC_EYE_EDGE
|
|
|
|
|
&& model.triggerMode != PRINT_TRIGGER_ELEC_EYE_VOLTATE_LEVEL;
|
|
|
|
@@ -963,6 +826,12 @@ PrintSettingModel PrintSettingModel::fromSysPara(SysPara *sysPara)
|
|
|
|
|
model.altMirrorType = sysPara->para.AltMirrorGap >> 12;
|
|
|
|
|
model.altMirrorGap = sysPara->para.AltMirrorGap & 0x0fff;
|
|
|
|
|
|
|
|
|
|
model.pulseOutputEnable = sysPara->para.pulseOutputEnable;
|
|
|
|
|
model.productCntPerOutputPulse = sysPara->para.productCntPerOutputPulse;
|
|
|
|
|
model.outputPulseDelayMs = sysPara->para.outputPulseDelayMs;
|
|
|
|
|
model.OuputPulseCol = sysPara->para.OuputPulseCol;
|
|
|
|
|
model.pulse_sinal_value = sysPara->para.pulse_sinal_value;
|
|
|
|
|
|
|
|
|
|
return model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -977,3 +846,40 @@ QString PrintSettingModel::toString(const PrintSettingModel &model)
|
|
|
|
|
model.eleEyeTriggerPrintDelay, model.encoderPulsePerMm, model.altMirrorType, model.altMirrorGap);
|
|
|
|
|
return str;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PrintSettingModel PrintSettingModel::defPrintSettingModel()
|
|
|
|
|
{
|
|
|
|
|
QFile file(DEF_PRINT_SETTINGS_PATH);
|
|
|
|
|
if (!file.open(QIODevice::ReadOnly)) {
|
|
|
|
|
return PrintSettingModel();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QXmlStreamReader reader(&file);
|
|
|
|
|
PrintSettingModel model;
|
|
|
|
|
|
|
|
|
|
if (reader.readNextStartElement() && reader.name() == QStringLiteral("PrintSettings")) {
|
|
|
|
|
loadFromXml(model, reader.attributes());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
file.close();
|
|
|
|
|
return model;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PrintSettingModel::setDefPrintSettingModel(const PrintSettingModel &model)
|
|
|
|
|
{
|
|
|
|
|
QFile file(DEF_PRINT_SETTINGS_PATH);
|
|
|
|
|
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
|
|
|
|
|
qWarning() << "Failed to open" << DEF_PRINT_SETTINGS_PATH << "for writing";
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QXmlStreamWriter writer(&file);
|
|
|
|
|
writer.setAutoFormatting(true);
|
|
|
|
|
writer.writeStartDocument();
|
|
|
|
|
writer.writeEmptyElement("PrintSettings");
|
|
|
|
|
saveToXml(model, writer);
|
|
|
|
|
writer.writeEndDocument();
|
|
|
|
|
|
|
|
|
|
file.close();
|
|
|
|
|
}
|