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
+46 -200
View File
@@ -17,8 +17,6 @@ CounterVarSet::CounterVarSet(QWidget *parent) :
ui->checkVARLEN->hide();
init();
currPage = 0;
initReplaceValue();
}
CounterVarSet::~CounterVarSet()
@@ -34,15 +32,6 @@ void CounterVarSet::init()
connect(ui->closeBtn, &QPushButton::clicked, this, &CounterVarSet::buttonClickedSlot);
}
void CounterVarSet::bindSysPara(SysPara *sysPara)
{
this->sysPara = sysPara;
}
void CounterVarSet::bindTxTEdit(QTextEdit* textEdit){
m_textEdit = textEdit;
}
void CounterVarSet::buttonClickedSlot()
{
// 编辑
@@ -60,27 +49,30 @@ void CounterVarSet::buttonClickedSlot()
if (btn == ui->checkBtn)
{
// on_buttonInsertVari_pressed();
applyUIPara();
emit sendButtonClickedSignal(1);
}else if(btn == ui->closeBtn){
emit sendButtonClickedSignal(2);
}
}
CounterViewModel CounterVarSet::getCounterConfig()
{
CounterViewModel viewModel;
unsigned char splitMode = sysPara ? sysPara->para.ExpirySplitMode : 0;
CounterViewModel& viewModel = m_vm;
unsigned char splitMode = 0;
getValue(&viewModel.counterType, &viewModel.digitalNum, &splitMode);
viewModel.letterSpace = ui->letterSpaceSpinBox->value();
viewModel.charWidth = ui->charWidthSpinBox->value();
viewModel.enbCustomCharWidth = ui->enbCharWidthSpinBox->isChecked();
applyUIPara();
return viewModel;
}
void CounterVarSet::setCounterConfig(CounterViewModel viewModel)
{
m_vm = viewModel;
ui->cb_digits->setCurrentText(QString::number(viewModel.digitalNum));
ui->radioButtonVar1->setChecked(viewModel.counterType == COUNTER_TYPE_1 ? true : false);
ui->radioButtonVar2->setChecked(viewModel.counterType == COUNTER_TYPE_2 ? true : false);
@@ -88,69 +80,10 @@ void CounterVarSet::setCounterConfig(CounterViewModel viewModel)
ui->letterSpaceSpinBox->setValue(viewModel.letterSpace);
ui->charWidthSpinBox->setValue(viewModel.charWidth);
ui->enbCharWidthSpinBox->setChecked(viewModel.enbCustomCharWidth);
updateSysParaToUI();
}
void CounterVarSet::on_buttonInsertVari_pressed()
{
if(!m_textEdit || !sysPara)
return;
QString fontname = "Dinkie9";
// 从字体名中提取像素大小(字体名最后的数字)
int pixelSize = 9;
QString numStr = "";
for(int i = fontname.length() - 1; i >= 0; --i) {
if(fontname[i].isDigit()) {
numStr.prepend(fontname[i]);
} else {
break;
}
}
if(!numStr.isEmpty()) {
pixelSize = numStr.toInt();
}
QFont font;
font.setFamily(fontname);
font.setPixelSize(pixelSize);
pixelSize = font.pixelSize();
font.setWeight(false && (pixelSize<=16) ?QFont::Bold:QFont::Normal);
font.setLetterSpacing(QFont::AbsoluteSpacing, sysPara->para.textEditCharSpace);
QFontMetrics fontMetrics(font);
int width = (fontMetrics.horizontalAdvance("0123456789")) / 10;
int height = font.pixelSize();
int digitalNum;
int varType;
unsigned char splitMode = sysPara->para.ExpirySplitMode;
getValue(&varType, &digitalNum, &splitMode);
fmt = m_textEdit->currentCharFormat();
int varType1 = varType;
if(fontname.contains("SerifL") || fontname.contains("serifl"))
varType1 = 20 + varType;
else if(fontname.contains("SerifR") || fontname.contains("serifr"))
varType1 = 20 + varType;
else if(fontname.contains("bangla"))
varType1 = 30 + varType;
else if(fontname.contains("biyangF"))
varType1 = 50 + varType;
else if(fontname.contains("Roman"))
varType1 = 60 + varType;
m_textEdit->insertHtml(QString("<img src=':/%1/%5/../image/digitalWidth%2.bmp' height='%3' width='%4' style=\"vertical-align: bottom;\" />")
.arg(varType).arg(false && (pixelSize<=16)?(digitalNum*100 + 75):digitalNum)
.arg(height+1).arg(width*digitalNum).arg(varType1));
m_textEdit->setFocus();
}
void CounterVarSet::getValue(int *varType,int *digitalWidth,unsigned char *splitMode){
int type = 0,width = 0;
@@ -171,80 +104,49 @@ void CounterVarSet::getValue(int *varType,int *digitalWidth,unsigned char *split
}
void CounterVarSet::applyUIPara(){
if(sysPara){
void CounterVarSet::applyUIPara()
{
m_vm.cnt1Settings.endValue = ui->spinBoxCnt1EndValue->value();
m_vm.cnt1Settings.repeatValue = ui->spinBoxCnt1RepeateCnt->value();
m_vm.cnt1Settings.startValue = ui->spinBoxCnt1StartValue->value();
m_vm.cnt1Settings.stepValue = ui->spinBoxCnt1StepValue->value();
m_vm.cnt1Settings.currValue = ui->spinBoxCnt1CurrValue->value();
m_vm.cnt1Settings.editCurrValue = ui->checkBoxResetCnt1CurrValue->isChecked();
sysPara->para.cnt1EndValue = ui->spinBoxCnt1EndValue->value();
sysPara->para.cnt1RepeateValue = ui->spinBoxCnt1RepeateCnt->value();
sysPara->para.cnt1StartValue = ui->spinBoxCnt1StartValue->value();
sysPara->para.cnt1StepValue = ui->spinBoxCnt1StepValue->value();
sysPara->para.cnt1CurrValue = ui->spinBoxCnt1CurrValue->value();
sysPara->status.cnt1CurrentValueInitDoneFlag = ui->checkBoxResetCnt1CurrValue->isChecked();
// sysPara->status.cnt1CurrentValueInitDoneFlag = false;
m_vm.cnt2Settings.endValue = ui->spinBoxCnt2EndValue->value();
m_vm.cnt2Settings.repeatValue = ui->spinBoxCnt2RepeateCnt->value();
m_vm.cnt2Settings.startValue = ui->spinBoxCnt2StartValue->value();
m_vm.cnt2Settings.stepValue = ui->spinBoxCnt2StepValue->value();
m_vm.cnt2Settings.currValue = ui->spinBoxCnt2CurrValue->value();
m_vm.cnt2Settings.editCurrValue = ui->checkBoxResetCnt2CurrValue->isChecked();
sysPara->para.cnt2EndValue = ui->spinBoxCnt2EndValue->value();
sysPara->para.cnt2RepeateValue = ui->spinBoxCnt2RepeateCnt->value();
sysPara->para.cnt2StartValue = ui->spinBoxCnt2StartValue->value();
sysPara->para.cnt2StepValue = ui->spinBoxCnt2StepValue->value();
sysPara->para.cnt2CurrValue = ui->spinBoxCnt2CurrValue->value();
sysPara->status.cnt2CurrentValueInitDoneFlag = ui->checkBoxResetCnt2CurrValue->isChecked();
if(ui->eleCNT1IncEn->isChecked())
sysPara->para.eleEyeClearCntInSynMode = (sysPara->para.eleEyeClearCntInSynMode | 0x10); // CNT1 +1
else
sysPara->para.eleEyeClearCntInSynMode = (sysPara->para.eleEyeClearCntInSynMode & 0xef); // CNT1 = current
if(ui->eleCNT2IncEn->isChecked())
sysPara->para.eleEyeClearCntInSynMode = (sysPara->para.eleEyeClearCntInSynMode | 0x20); // CNT2 +1
else
sysPara->para.eleEyeClearCntInSynMode = (sysPara->para.eleEyeClearCntInSynMode & 0xdf); // CNT2 = current
ui->checkBoxResetCnt1CurrValue->setChecked(false);
ui->checkBoxResetCnt2CurrValue->setChecked(false);
sysPara->devOp->writeFpgaCalandar(0);
// unsigned int flags = 0;
// if(sysPara->status.cnt1CurrentValueInitDoneFlag)
// flags = 1 << 2;
// if(sysPara->status.cnt2CurrentValueInitDoneFlag)
// flags |= 1 << 3;
// sysPara->devOp->clearProductCnt(flags);
}
ui->checkBoxResetCnt1CurrValue->setChecked(false);
ui->checkBoxResetCnt2CurrValue->setChecked(false);
}
void CounterVarSet::updateSysParaToUI(){
void CounterVarSet::updateSysParaToUI()
{
ui->spinBoxCnt1EndValue->setValue(m_vm.cnt1Settings.endValue);
ui->spinBoxCnt1RepeateCnt->setValue(m_vm.cnt1Settings.repeatValue);
ui->spinBoxCnt1StartValue->setValue(m_vm.cnt1Settings.startValue);
ui->spinBoxCnt1StepValue->setValue(m_vm.cnt1Settings.stepValue);
ui->spinBoxCnt1CurrValue->setValue(m_vm.cnt1Settings.currValue);
if(sysPara){
ui->spinBoxCnt1EndValue->setValue(sysPara->para.cnt1EndValue);
ui->spinBoxCnt1RepeateCnt->setValue(sysPara->para.cnt1RepeateValue);
ui->spinBoxCnt1StartValue->setValue(sysPara->para.cnt1StartValue);
ui->spinBoxCnt1StepValue->setValue(sysPara->para.cnt1StepValue);
ui->spinBoxCnt1CurrValue->setValue(sysPara->para.cnt1CurrValue);
ui->spinBoxCnt2EndValue->setValue(m_vm.cnt2Settings.endValue);
ui->spinBoxCnt2RepeateCnt->setValue(m_vm.cnt2Settings.repeatValue);
ui->spinBoxCnt2StartValue->setValue(m_vm.cnt2Settings.startValue);
ui->spinBoxCnt2StepValue->setValue(m_vm.cnt2Settings.stepValue);
ui->spinBoxCnt2CurrValue->setValue(m_vm.cnt2Settings.currValue);
ui->spinBoxCnt2EndValue->setValue(sysPara->para.cnt2EndValue);
ui->spinBoxCnt2RepeateCnt->setValue(sysPara->para.cnt2RepeateValue);
ui->spinBoxCnt2StartValue->setValue(sysPara->para.cnt2StartValue);
ui->spinBoxCnt2StepValue->setValue(sysPara->para.cnt2StepValue);
ui->spinBoxCnt2CurrValue->setValue(sysPara->para.cnt2CurrValue);
// 电眼触发计数器动作 选择
// ui->eleCNT1IncEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x10)?1:0);
// ui->radCNT1ResetEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x10)?0:1);
// 电眼触发计数器动作 选择
ui->eleCNT1IncEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x10)?1:0);
// ui->radCNT1ResetEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x10)?0:1);
// ui->eleCNT2IncEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x20)?1:0);
// ui->radCNT2ResetEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x20)?0:1);
ui->eleCNT2IncEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x20)?1:0);
// ui->radCNT2ResetEn->setChecked( (sysPara->para.eleEyeClearCntInSynMode & 0x20)?0:1);
ui->checkBoxResetCnt1CurrValue->setChecked(false);
ui->checkBoxResetCnt2CurrValue->setChecked(false);
}
}
QString CounterVarSet::getFamilyName(int fontsize){
return "YaHei"+QString::number(fontsize);
ui->checkBoxResetCnt1CurrValue->setChecked(false);
ui->checkBoxResetCnt2CurrValue->setChecked(false);
}
void CounterVarSet::applyStyleSheet()
@@ -469,61 +371,5 @@ void CounterVarSet::on_pushOnlyCNT1Clear_pressed()
void CounterVarSet::on_pushOnlyCNT2Clear_pressed()
{
sysPara->devOp->clearProductCnt(1<<3);// 计数器2单独清零
}
void CounterVarSet::initReplaceValue(){
// dataList.clear();
// dataList << "0" << "1" << "2" << "3" << "4" << "5" << "6" << "7"
// << "8" << "9" << "A" << "B" << "C" << "D" << "E" << "F";
// if(ui->comboBox_2->currentIndex() == 0) //index 0 --- 数据
// loadDataShow();
}
//void CounterVarSet::loadDataShow(){
// if(currPage >3) //最大显示4页
// currPage =3;
// int objectIndex = 1;
// for(int i=currPage*4;(i<(currPage+1)*4)&&(i<dataList.size());i++){
// QString strObject = QString("lineEditName") + QString::number(objectIndex);
// QLineEdit *lineEdit = this->findChild<QLineEdit*>(strObject);
// if(lineEdit)
// lineEdit->setText(QString::number(i));
// QString strObject2 = QString("lineEdit_Replace") + QString::number(objectIndex);
// QLineEdit *lineEdit2 = this->findChild<QLineEdit*>(strObject2);
// if(lineEdit2)
// lineEdit2->setText(dataList.at(i));
// objectIndex++;
// }
//}
void CounterVarSet::editCounter(int index)
{
ui->tabWidget->setCurrentIndex(index);
editFlag = true;
}
//void CounterVarSet::on_btnUP_clicked()
//{
// if(currPage<1)
// return;
// currPage = currPage-1;
// if(ui->comboBox_2->currentIndex() == 0){
// loadDataShow();
// }
//}
//void CounterVarSet::on_btnDown_clicked()
//{
// int currentIndex = ui->comboBox_2->currentIndex();
// if (currentIndex == 0) { // Data
// if (currPage < 3) {
// currPage++;
// }
// loadDataShow();
// return;
// }
//}
// sysPara->devOp->clearProductCnt(1<<3);// 计数器2单独清零
}