1278 lines
55 KiB
C++
1278 lines
55 KiB
C++
/*
|
|
* SysPara.cpp
|
|
*
|
|
* Created on: Jun 25, 2013
|
|
* Author: yiyu
|
|
* QQ:1036184468
|
|
* Descriptoin:
|
|
*
|
|
* 2013-9-29 高压
|
|
*/
|
|
|
|
|
|
#include "SysPara.h"
|
|
#include <string.h>
|
|
#include <QFile>
|
|
#include <QIODevice>
|
|
#include <QDir>
|
|
#include <QMessageBox>
|
|
#include <QDebug>
|
|
//#include <qobject.h>
|
|
#include "LogInfo.h"
|
|
#include "DevOp.h"
|
|
#include <unistd.h>
|
|
#include<iostream>
|
|
#include<string>
|
|
|
|
#define VNLG
|
|
SysPara::SysPara(void):
|
|
devOp(new DevOp(this)){
|
|
memset(¶,0,sizeof(para));
|
|
memset(&status,0,sizeof(status));
|
|
//qDebug("start to loadParaFromFile.");
|
|
|
|
para.airPushDurationSec = 4;
|
|
|
|
loadParaFromFile();
|
|
//qDebug("loadParaFromFile ok.");
|
|
loadParaToPrintInit();
|
|
//para.HVFaultCloseEn= 0;
|
|
|
|
qDebug() << "para.airPushDurationSec: " << para.airPushDurationSec;
|
|
|
|
if(para.ReadFileErrorCnt<10) para.ReadFileErrorCnt++;
|
|
if(para.PowerOnErrorCnt<10) para.PowerOnErrorCnt++;
|
|
// PowerOnErrorCnt
|
|
//qDebug()<<"cnt ++:"<<para.ReadFileErrorCnt;
|
|
if(para.ReadFileErrorCnt>3 || para.PowerOnErrorCnt>4) {
|
|
//loadDefaultPara();
|
|
// memset( para.lastOpenedFileName,0,sizeof(para.lastOpenedFileName));
|
|
if(para.ReadFileErrorCnt>=4 )
|
|
para.ReadFileErrorCnt=0;
|
|
if(para.PowerOnErrorCnt>=4)
|
|
para.PowerOnErrorCnt=0;
|
|
//qDebug()<<"sys Star Error, cnt :"<<para.ReadFileErrorCnt;
|
|
}
|
|
|
|
//saveParaToFile();//下面devOp->writeFpgaPrintPara(true)会调用这个,所以忽略
|
|
|
|
//para.HVFaultCloseEn= 1; //开机默认为1,允许高压故障自动关闭回收功能
|
|
|
|
devOp->writeFpgaPrintPara(true); //系统起来的时候,将上次记录的配置写入fpga,比如晶振分频等信息
|
|
devOp->writeFpgaVariCtrlv2();
|
|
devOp->resumeFault();
|
|
|
|
status.lastProductCnt = status.productCnt ; //这会让产品计数显示出来
|
|
status.gearPumpRunStopFlag = false;
|
|
status.detectBestOscillatorFreqAppending = false;
|
|
status.isPumpValveControledByHand = false; //初始化为自动模式
|
|
status.forTemplateUse = false;
|
|
status.lastHighVoltageFault = false;
|
|
status.needPowerOffTimerout = 0;
|
|
status.circleProductCnt = false;
|
|
memset(para.reserved2,0,sizeof(para.reserved2));
|
|
status.lastVoltageVersion = -1;
|
|
status.flagOfNo67FPGA=false;
|
|
#ifdef __RFID_CARD
|
|
if(!loadRFIDPara()){
|
|
RFIDPara = RFIDPara_t{};
|
|
saveRFIDPara();
|
|
}
|
|
#endif
|
|
}
|
|
|
|
void SysPara::loadParaFromFile(){
|
|
QFile file(PARA_FILE_PATH);
|
|
QFile DeviceCodefile(DeviceCode_FILE_PATH);
|
|
QDir dir;
|
|
char buf[200];
|
|
//qDebug()<<"loadParaFromFile";
|
|
if(!dir.exists(DOC_ROOT_DIR)){
|
|
snprintf(buf,sizeof(buf),"mkdir -p %s",DOC_ROOT_DIR);
|
|
system(buf);
|
|
}
|
|
if(!dir.exists(PARA_ROOT_DIR)){
|
|
snprintf(buf,sizeof(buf),"mkdir -p %s",PARA_ROOT_DIR);
|
|
system(buf);
|
|
}
|
|
if(!dir.exists(PARA_ROOT_DIR)){
|
|
QMessageBox::warning(0,QString("warnning"),QString("Path") + PARA_ROOT_DIR + QString("not Found."));
|
|
return ;
|
|
}
|
|
if(file.exists(PARA_FILE_PATH)){
|
|
//qDebug("PARA_FILE_PATH");
|
|
if(!file.open(QIODevice::ReadOnly)){
|
|
//QMessageBox::warning(0,("警告"),QString("无法打开配置文件 ") + PARA_FILE_PATH);
|
|
loadDefaultPara();
|
|
}
|
|
else {
|
|
file.seek(0);
|
|
file.read((char *)¶,(long long int)sizeof(para));
|
|
file.close();
|
|
|
|
// 韩国要求 画布大小可以设定在24 到 32 之间
|
|
para.canvasHeight = qBound(unsigned(SCENE_MIN_HEIGHT), para.canvasHeight, unsigned(SCENE_MAX_HEIGHT));
|
|
|
|
if(para.gearPumpSpeedAlarm < 1000 || para.gearPumpSpeedAlarm > 2000)
|
|
para.gearPumpSpeedAlarm = 1500;
|
|
|
|
if (DeviceCodefile.isOpen()) {
|
|
DeviceCodefile.close();
|
|
}
|
|
//jdDataRwLock.lockForRead();
|
|
if(!DeviceCodefile.open(QIODevice::ReadOnly)){//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看
|
|
//QMessageBox::warning(0,"警告",QString("无法打开文件") );
|
|
}
|
|
else {
|
|
DeviceCodefile.seek(0);
|
|
//file.read((char *)&jd.addr,(long long int)sizeof(jd));
|
|
DeviceCodefile.read((char *)¶.Json_device_code,(qint64)sizeof(para.Json_device_code));
|
|
DeviceCodefile.close();
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
#ifdef VNLG
|
|
;
|
|
#else
|
|
QMessageBox::information(0,QString("提示"),QString("这可能是你设备第一次上电,或是进行了出厂设置,我们将使用系统默认配置"));
|
|
#endif
|
|
|
|
loadDefaultPara();
|
|
//loadDefaultPara();//qDebug("loadDefaultPara2");
|
|
}
|
|
//qDebug()<<"SYSPrar:"<<sysFile<<"LO:"<<para.lastOpenedFileName;
|
|
|
|
// 现在已由 PrintSettingModel 管理 byons@2026年7月21日
|
|
// loadPrintParaFromFile(sysFile);
|
|
}
|
|
|
|
void SysPara::loadDefaultPara(){
|
|
#ifdef VNLG
|
|
;
|
|
#else
|
|
|
|
QMessageBox::information(0,"提示2014","这可能是你设备第一次上电,或是进行了出厂设置,我们将使用系统默认配置");
|
|
#endif
|
|
memset(¶,0,sizeof(para));
|
|
para.startVoltage = 30;//首行电压
|
|
para.endVoltage = 75;//行末电压
|
|
para.HighVoltageAmplitude = 75; //字高75%
|
|
para.phaseHighCnt = 300;//高压阀值
|
|
para.alterPrint.enable = 0;//交替打印
|
|
para.stepPrint.enbale = 0;//跳米打印
|
|
para.synPulseNumPerMm = 8;// 同步器参数 脉冲/毫米
|
|
para.OuputPulseCol = 0;//桂林客户,精准控制输出脉冲的位置,精确到打印的列数
|
|
para.gearPumpEnable = 1;
|
|
para.flagOfReclaimPumEnable = true;
|
|
|
|
para.oscillatorVoltage = 30;//晶振电压
|
|
para.highVoltageLevel = 100;//高压包容差
|
|
para.reclaimPumpPWMWidth = 50;//回收泵力度
|
|
para.viscosityPumpInterval = 30;//粘度泵动作时间间隔
|
|
para.reclaimTankTime = 25;//回收槽电机当前开关时长(s)
|
|
para.septalPostion = 500;//隔膜位置
|
|
para.pressure = 520;//压力
|
|
para.viscosity = 1200;//粘度设定值
|
|
para.temperature = 35;//喷头温度设定值
|
|
para.divideRatio = (FPGA_SYS_HZ/64000)/2;//晶振频率
|
|
|
|
para.phaseDetectVol = 35;//相位检测电压
|
|
para.phase_detect_pulse_num = 7;//检测墨点数量
|
|
para.phaseShift = -280;//相位偏移
|
|
para.phaseHighLowRatio = 50;//相检
|
|
para.phaseDetectDelay = 120;//检测延时
|
|
para.enableChargeFullTime = 1;//充电占空百分比
|
|
|
|
para.mixValveisNewVersion = 1;//混和阀是否是新管路
|
|
para.gearPumpSpeedAlarm = 1500;
|
|
|
|
para.canvasHeight = 32;
|
|
para.airPushDurationSec = 4;
|
|
}
|
|
|
|
void SysPara::saveParaToFile(){
|
|
QFile file(PARA_FILE_PATH);
|
|
QFile DeviceCodefile(DeviceCode_FILE_PATH);
|
|
|
|
if (DeviceCodefile.isOpen()) {
|
|
file.close();
|
|
}
|
|
// qDebug()<<"saveParaToFile:"<<sysFile<<"LO:"<<para.lastOpenedFileName;
|
|
|
|
if(!file.open(QIODevice::ReadWrite)){//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看
|
|
QMessageBox::warning(0,QString("警告"),QString("无法打开配置文件 ") + PARA_FILE_PATH,
|
|
QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok );
|
|
}
|
|
else {
|
|
if(file.isOpen()){
|
|
file.seek(0);
|
|
file.write((char *)¶,(long long int)sizeof(para));
|
|
fsync(file.handle());
|
|
file.close();
|
|
if(!DeviceCodefile.open(QIODevice::WriteOnly)){//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看
|
|
//QMessageBox::warning(0,"警告",QString("无法打开文件:mac.bin") );
|
|
}
|
|
else {
|
|
DeviceCodefile.seek(0);
|
|
//file.write((char *)&jd.addr,(long long int)sizeof(jd));
|
|
DeviceCodefile.write((char *)¶.Json_device_code,(qint64)sizeof(para.Json_device_code));
|
|
|
|
fsync(DeviceCodefile.handle());
|
|
|
|
DeviceCodefile.close();
|
|
}
|
|
}
|
|
if(sysFile!="")
|
|
{
|
|
if(sysFile=="")return ;
|
|
if(!sysFile.endsWith(".dpn"))
|
|
sysFile = QString( PARA_ROOT_DIR+QFileInfo( sysFile).baseName()+".dpn");
|
|
|
|
savePrintParaToFile();
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
void SysPara::loadPrintParaFromFile(QString fileName){
|
|
|
|
if(fileName=="") return;
|
|
fileName = QString( PARA_ROOT_DIR+QFileInfo( fileName).baseName()+".dpn");
|
|
QFile file(fileName);
|
|
if(!file.exists(fileName)){
|
|
//file.setFileName(TESTFILECD );
|
|
return;
|
|
}
|
|
|
|
if(!file.open(QIODevice::ReadOnly)){
|
|
//QMessageBox::warning(0,"警告",QString("无法打开打印参数文件") + fileName);
|
|
//loadDefaultPrintPara();
|
|
}
|
|
else {
|
|
QMessageBox::StandardButton ret;
|
|
qint32 copy_len;
|
|
if(file.size() != sizeof(print)){
|
|
#ifdef VNLG
|
|
;
|
|
#else
|
|
|
|
QMessageBox::warning(NULL,QString("警告"),QString("文件是旧版软件生成,与当前版本参数不配套!") + fileName,
|
|
QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok );
|
|
#endif
|
|
if(file.size()>sizeof(print))
|
|
copy_len = sizeof(print);
|
|
else
|
|
copy_len = file.size();
|
|
file.seek(0);
|
|
file.read((char *)&print,copy_len);
|
|
file.close();
|
|
}
|
|
else {
|
|
file.seek(0);
|
|
file.read((char *)&print,(long long int)sizeof(print));
|
|
file.close();
|
|
memcpy( (char *)¶.alterPrint,(char *)&print.alterPrint,sizeof(alterPrint_t)) ;
|
|
para.charBold = print.charBold ;
|
|
|
|
para.SynCntEn = print.SynCntEn ;
|
|
para.autoSynSpeedEn = print.autoSynSpeedEn ;
|
|
para.newAmplifyPlate = print.newAmplifyPlate;
|
|
para.cnt1CurrValue = print.cnt1CurrValue; // 20170313 cnt1StartValue;20191226 cnt1CurrValue
|
|
para.cnt1EndValue = print.cnt1EndValue ;
|
|
para.Cnt1NatureValue = print.Cnt1NatureValue ;
|
|
|
|
|
|
para.mixValveisNewVersion = 1;
|
|
para.cnt1RepeateValue = print.cnt1RepeateValue ;
|
|
para.cnt1StartValue = print.cnt1StartValue ;
|
|
para.cnt1StepValue = print.cnt1StepValue ;
|
|
para.cnt2CurrValue = print.cnt2CurrValue;//20170313 cnt2StartValue ; /// 20191226cnt2CurrValue
|
|
para.cnt2EndValue = print.cnt2EndValue ;
|
|
para.cnt2RepeateValue = print.cnt2RepeateValue ;
|
|
para.cnt2StartValue = print.cnt2StartValue ;
|
|
para.cnt2StepValue = print.cnt2StepValue ;
|
|
|
|
// para.cnt3CurrValue = print.cnt3CurrValue;//20170313 cnt2StartValue ; /// 20191226cnt2CurrValue
|
|
// para.cnt3EndValue = print.cnt3EndValue ;
|
|
// para.cnt3RepeateValue = print.cnt3RepeateValue ;
|
|
// para.cnt3StartValue = print.cnt3StartValue ;
|
|
// para.cnt3StepValue = print.cnt3StepValue ;
|
|
|
|
para.cnt4CurrValue = print.cnt4CurrValue;
|
|
para.HiddenConditionValue = print.HiddenConditionValue;
|
|
para.HiddenFuncEnable = print.HiddenFuncEnable;
|
|
para.HiddenMeterEnable = print.HiddenMeterEnable;
|
|
|
|
para.currPrintMode = print.currPrintMode ;
|
|
para.elecEyeTriggerInterval = print.elecEyeTriggerInterval ;
|
|
para.eleEyeClearCntInSynMode = print.eleEyeClearCntInSynMode ;
|
|
para.eleEyeTriggerPrintDelay = print.eleEyeTriggerPrintDelay ;
|
|
para.eleEyeTriggerSynPrintEn = print.eleEyeTriggerSynPrintEn ;
|
|
para.endVoltage = print.endVoltage ;
|
|
para.extClearAllCntEnable = print.extClearAllCntEnable ;
|
|
para.HighVoltageAmplitude = print.HighVoltageAmplitude ;
|
|
para.lastLineEndPointFixedDACValue = print.lastLineEndPointFixedDACValue ;
|
|
para.lastLineEndPointFixedValue = print.lastLineEndPointFixedValue ;
|
|
para.FullColFixVal = print.FullColFixVal ;
|
|
|
|
para.leftRightInverse = print.leftRightInverse ;
|
|
para.lineEndAdjustPointCnt = print.lineEndAdjustPointCnt ;
|
|
para.lineEndAdjustPointDelay = print.lineEndAdjustPointDelay ;
|
|
para.outputPulseDelayMs = print.outputPulseDelayMs ;
|
|
para.photoElectricityRepeateNum = print.photoElectricityRepeateNum ;
|
|
para.pixNumPerCol = print.pixNumPerCol ;
|
|
para.pointVoltageAdjustPos = print.pointVoltageAdjustPos ;
|
|
para.PointVoltageAdjustValue = print.PointVoltageAdjustValue ;
|
|
para.printColDelay = print.printColDelay ;
|
|
para.printDelayMs = print.printDelayMs ;
|
|
para.printDirection = print.printDirection ;
|
|
para.printRowDelay = print.printRowDelay ;
|
|
para.printTotalColNum = print.printTotalColNum ;
|
|
para.printTriggerMode = print.printTriggerMode ; //打印触发模式
|
|
para.productCntPerOutputPulse = print.productCntPerOutputPulse ;
|
|
para.productNumToGenerateOutputPulse = print.productNumToGenerateOutputPulse ;
|
|
para.pulseOutputEnable = print.pulseOutputEnable ;
|
|
para.reducedPixelMode = print.reducedPixelMode ;
|
|
para.reducedPixelNum = print.reducedPixelNum ;
|
|
para.reducedPixelNumRatio = print.reducedPixelNumRatio ;
|
|
para.scanInverse = print.scanInverse ;
|
|
para.startVoltage = print.startVoltage ;
|
|
//print.stepPrint = print.stepPrint ;
|
|
memcpy( (char *)¶.stepPrint,(char *)&print.stepPrint,sizeof(stepPrint_t)) ;
|
|
memcpy( (char *)¶.adjVolDacRate,(char *)&print.adjVolDacRate,sizeof(print.adjVolDacRate)) ;
|
|
//edit-12.2
|
|
//para.synCharWidthRatio = print.synCharWidthRatio ;
|
|
para.synClearCntInEleEyeMode = print.synClearCntInEleEyeMode ;
|
|
#if 0 //不需要每个文件都存相位的参数
|
|
para.synPulseNumPerMm = print.synPulseNumPerMm ;
|
|
para.synPulsePerMmX8 = print.synPulsePerMmX8 ;
|
|
#endif
|
|
para.synTriggerPrintLenMm = print.synTriggerPrintLenMm ; //喷印间隔
|
|
//para.synTriggerPrintLenRatio = print.synTriggerPrintLenRatio ;
|
|
para.sysTriggerPrintMode = print.sysTriggerPrintMode ;
|
|
para.timeTriggerPrintDelayMs = print.timeTriggerPrintDelayMs ;
|
|
para.timeTriggerPrintMode = print.timeTriggerPrintMode ;
|
|
//para.totalSynPulseNum = print.totalSynPulseNum ;
|
|
para.upDownInverse = print.upDownInverse ;
|
|
|
|
para.varLen = print.varLen;
|
|
print.varLen1 = para.varLen1;
|
|
para.varLenEn = print.varLenEn?1:0;
|
|
para.headLen = print.headLen;
|
|
para.endLen = print.endLen;
|
|
|
|
para.set_HVData_Flag = 0;
|
|
|
|
para.eleMaskTime = print.eleMaskTime;
|
|
para.AltMirrorGap = print.AltMirrorGap;
|
|
para.textEditLineSpace = print.textEditLineSpace;
|
|
//para.weihu = print.wehu;
|
|
//qDebug()<<"sysFile3:"<<file.fileName()<< para.cnt1StartValue;
|
|
#if 0 //不需要每个文件都存相位的参数
|
|
//para.phaseHighLowRatio = 55; // ui->spinBoxHighLowRatio->value();
|
|
para.phaseHighLowRatio = print.phaseHighLowRatio;
|
|
para.phaseShift = print.phaseShift;
|
|
para.OuputPulseCol = print.OuputPulseCol;
|
|
#ifndef FOR_PHASE_ADJUST
|
|
print.phase_detect_pulse_num = 7;
|
|
para.phaseDetectVol = 40;
|
|
print.phaseDetectDelay = 100;
|
|
#else
|
|
para.phase_detect_pulse_num = print.phase_detect_pulse_num;
|
|
if (print.phase_detect_pulse_num<3 || print.phase_detect_pulse_num>10) {
|
|
print.phase_detect_pulse_num = 7;
|
|
}
|
|
|
|
para.phaseDetectVol = print.phaseDetectVol;
|
|
if (print.phaseDetectVol < 28 || print.phaseDetectVol > 70)
|
|
print.phaseDetectVol = 35;
|
|
|
|
para.phaseDetectDelay = print.phaseDetectDelay;//120;// ui->spinBoxPhaseDetectDelay->value();
|
|
if (print.phaseDetectDelay < 70 || print.phaseDetectDelay > 150)
|
|
print.phaseDetectDelay = 100;
|
|
#endif
|
|
para.enableChargeFullTime = 1;
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
|
|
|
|
void SysPara::loadPrintParaFromFile(QString fileName){
|
|
if(fileName=="") return;
|
|
fileName = QString( PARA_ROOT_DIR+QFileInfo( fileName).baseName()+".dpn");
|
|
QFile file(fileName);
|
|
if(!file.exists(fileName)){
|
|
//file.setFileName(TESTFILECD );
|
|
return;
|
|
}
|
|
if(!file.open(QIODevice::ReadOnly)){
|
|
//loadDefaultPrintPara();
|
|
}
|
|
else {
|
|
QMessageBox::StandardButton ret;
|
|
qint32 copy_len;
|
|
if(file.size() != sizeof(print)){
|
|
|
|
if(file.size()>sizeof(print))
|
|
copy_len = sizeof(print);
|
|
else
|
|
copy_len = file.size();
|
|
file.seek(0);
|
|
file.read((char *)&print,copy_len);
|
|
file.close();
|
|
}
|
|
else {
|
|
file.seek(0);
|
|
file.read((char *)&print,(long long int)sizeof(print));
|
|
|
|
// file.seek(0);
|
|
// file.read((char *)&printPre,(long long int)sizeof(printPre));
|
|
memcpy( (char *)&printPre,(char *)&print,sizeof(print)) ;
|
|
loadParaToPrintInit();
|
|
|
|
file.close();
|
|
memcpy( (char *)¶.alterPrint,(char *)&print.alterPrint,sizeof(alterPrint_t)) ;
|
|
para.charBold = print.charBold ;
|
|
|
|
para.SynCntEn = print.SynCntEn ;
|
|
// para.autoSynSpeedEn = print.autoSynSpeedEn ;
|
|
// para.newAmplifyPlate = print.newAmplifyPlate;
|
|
para.cnt1CurrValue = print.cnt1CurrValue; // 20170313 cnt1StartValue;20191226 cnt1CurrValue
|
|
para.cnt1EndValue = print.cnt1EndValue ;
|
|
para.Cnt1NatureValue = print.Cnt1NatureValue ;
|
|
|
|
para.mixValveisNewVersion = 1;
|
|
para.cnt1RepeateValue = print.cnt1RepeateValue ;
|
|
para.cnt1StartValue = print.cnt1StartValue ;
|
|
para.cnt1StepValue = print.cnt1StepValue ;
|
|
para.cnt2CurrValue = print.cnt2CurrValue;//20170313 cnt2StartValue ; /// 20191226cnt2CurrValue
|
|
para.cnt2EndValue = print.cnt2EndValue ;
|
|
para.cnt2RepeateValue = print.cnt2RepeateValue ;
|
|
para.cnt2StartValue = print.cnt2StartValue ;
|
|
para.cnt2StepValue = print.cnt2StepValue ;
|
|
|
|
para.cnt4CurrValue = print.cnt4CurrValue;
|
|
para.HiddenConditionValue = print.HiddenConditionValue;
|
|
para.HiddenFuncEnable = print.HiddenFuncEnable;
|
|
para.HiddenMeterEnable = print.HiddenMeterEnable;
|
|
|
|
if(print.decimalBits == 0){
|
|
para.printNumPoint == 0 ;
|
|
para.rrr_nc == 0;
|
|
}else if(print.decimalBits == 1){
|
|
para.printNumPoint == 1;
|
|
para.rrr_nc == 0;
|
|
}else if(print.decimalBits == 2){
|
|
para.printNumPoint == 0;
|
|
para.rrr_nc == 1;
|
|
}else if(print.decimalBits == 3){
|
|
para.printNumPoint == 1;
|
|
para.rrr_nc == 1;
|
|
}
|
|
para.currPrintMode = print.currPrintMode ;
|
|
para.elecEyeTriggerInterval = print.elecEyeTriggerInterval ;
|
|
para.eleEyeClearCntInSynMode = print.eleEyeClearCntInSynMode ;
|
|
para.eleEyeTriggerPrintDelay = print.eleEyeTriggerPrintDelay ;
|
|
para.eleEyeTriggerSynPrintEn = print.eleEyeTriggerSynPrintEn ;
|
|
para.HighVoltageAmplitude = print.HighVoltageAmplitude ;
|
|
|
|
para.leftRightInverse = print.leftRightInverse ;
|
|
para.outputPulseDelayMs = print.outputPulseDelayMs ;
|
|
para.photoElectricityRepeateNum = print.photoElectricityRepeateNum ;
|
|
para.printColDelay = print.printColDelay ;
|
|
para.printDelayMs = print.printDelayMs ;
|
|
para.printTriggerMode = print.printTriggerMode ; //打印触发模式
|
|
para.productCntPerOutputPulse = print.productCntPerOutputPulse ;
|
|
para.pulseOutputEnable = print.pulseOutputEnable ;
|
|
para.reducedPixelNumRatio = print.reducedPixelNumRatio ;
|
|
para.scanInverse = print.scanInverse ;
|
|
memcpy( (char *)¶.stepPrint,(char *)&print.stepPrint,sizeof(stepPrint_t)) ;
|
|
// memcpy( (char *)¶.adjVolDacRate,(char *)&print.adjVolDacRate,sizeof(print.adjVolDacRate)) ;
|
|
para.synClearCntInEleEyeMode = print.synClearCntInEleEyeMode ;
|
|
para.synTriggerPrintLenMm = print.synTriggerPrintLenMm ; //喷印间隔
|
|
para.sysTriggerPrintMode = print.sysTriggerPrintMode ;
|
|
para.timeTriggerPrintDelayMs = print.timeTriggerPrintDelayMs ;
|
|
para.timeTriggerPrintMode = print.timeTriggerPrintMode ;
|
|
para.upDownInverse = print.upDownInverse ;
|
|
|
|
para.varLen = print.varLen;
|
|
print.varLen1 = para.varLen1;
|
|
para.varLenEn = print.varLenEn?1:0;
|
|
para.headLen = print.headLen;
|
|
para.endLen = print.endLen;
|
|
para.set_HVData_Flag = 0;
|
|
para.eleMaskTime = print.eleMaskTime;
|
|
// para.AltMirrorGap = print.AltMirrorGap;
|
|
para.textEditLineSpace = print.textEditLineSpace;
|
|
para.textEditCharSpace = print.textEditCharSpace;
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void SysPara::loadDefaultPrintPara(){
|
|
loadDefaultPara();
|
|
}
|
|
/*
|
|
void SysPara::savePrintParaToFile(){
|
|
//qDebug()<<"savePrintParaToFile";
|
|
if(sysFile=="") return;
|
|
QString fileName = QString( PARA_ROOT_DIR+QFileInfo( sysFile).baseName()+".dpn");
|
|
//qDebug()<<"savePrintParaToFile1:"<<fileName;
|
|
QFile file(fileName);
|
|
|
|
if(!file.open(QIODevice::WriteOnly)){//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看
|
|
//QMessageBox::warning(0,"警告",QString("无法打开打印参数文件") + fileName);
|
|
}
|
|
else {
|
|
//qDebug()<<"savePrintParaToFile2:"<<fileName<< para.cnt1StartValue;
|
|
memcpy( (char *)&print.alterPrint,(char *)¶.alterPrint,sizeof(alterPrint_t)) ;
|
|
// print.armrst = para.armrst ;
|
|
//qDebug()<<"File1:10";
|
|
//print.autoSynSpeedEn = para.autoSynSpeedEn ;
|
|
|
|
|
|
print.SynCntEn = para.SynCntEn ;
|
|
print.autoSynSpeedEn = para.autoSynSpeedEn ;
|
|
print.autoSynSpeedEn = para.autoSynSpeedEn ;
|
|
print.newAmplifyPlate = para.newAmplifyPlate;
|
|
print.cnt1CurrValue = para.cnt1CurrValue; // 20170313 cnt1StartValue;20191226 cnt1CurrValue
|
|
print.cnt1EndValue = para.cnt1EndValue ;
|
|
print.Cnt1NatureValue = para.Cnt1NatureValue ;
|
|
|
|
|
|
print.charBold = para.charBold ;
|
|
print.cnt1RepeateValue = para.cnt1RepeateValue ;
|
|
print.cnt1StartValue = para.cnt1StartValue ;
|
|
print.cnt1StepValue = para.cnt1StepValue ;
|
|
print.cnt2CurrValue = para.cnt2CurrValue ;
|
|
print.cnt2EndValue = para.cnt2EndValue ;
|
|
print.cnt2RepeateValue = para.cnt2RepeateValue ;
|
|
print.cnt2StartValue = para.cnt2StartValue ;
|
|
print.cnt2StepValue = para.cnt2StepValue ;
|
|
|
|
// print.cnt3CurrValue = para.cnt3CurrValue ;
|
|
// print.cnt3EndValue = para.cnt3EndValue ;
|
|
// print.cnt3RepeateValue = para.cnt3RepeateValue ;
|
|
// print.cnt3StartValue = para.cnt3StartValue ;
|
|
// print.cnt3StepValue = para.cnt3StepValue ;
|
|
|
|
print.cnt4CurrValue = para.cnt4CurrValue;
|
|
print.HiddenConditionValue = para.HiddenConditionValue;
|
|
print.HiddenFuncEnable = para.HiddenFuncEnable;
|
|
print.HiddenMeterEnable = para.HiddenMeterEnable;
|
|
|
|
|
|
print.currPrintMode = para.currPrintMode ;
|
|
print.elecEyeTriggerInterval = para.elecEyeTriggerInterval ;
|
|
print.eleEyeClearCntInSynMode = para.eleEyeClearCntInSynMode ;
|
|
print.eleEyeTriggerPrintDelay = para.eleEyeTriggerPrintDelay ;
|
|
print.eleEyeTriggerSynPrintEn = para.eleEyeTriggerSynPrintEn ;
|
|
print.endVoltage = para.endVoltage ;
|
|
print.extClearAllCntEnable = para.extClearAllCntEnable ;
|
|
print.HighVoltageAmplitude = para.HighVoltageAmplitude ;
|
|
print.FullColFixVal = para.FullColFixVal ;
|
|
print.lastLineEndPointFixedDACValue = para.lastLineEndPointFixedDACValue ;
|
|
print.lastLineEndPointFixedValue = para.lastLineEndPointFixedValue ;
|
|
print.leftRightInverse = para.leftRightInverse ;
|
|
print.lineEndAdjustPointCnt = para.lineEndAdjustPointCnt ;
|
|
print.lineEndAdjustPointDelay = para.lineEndAdjustPointDelay ;
|
|
print.outputPulseDelayMs = para.outputPulseDelayMs ;
|
|
print.photoElectricityRepeateNum = para.photoElectricityRepeateNum ;
|
|
print.pixNumPerCol = para.pixNumPerCol ;
|
|
print.pointVoltageAdjustPos = para.pointVoltageAdjustPos ;
|
|
print.PointVoltageAdjustValue = para.PointVoltageAdjustValue ;
|
|
print.printColDelay = para.printColDelay ;
|
|
print.printDelayMs = para.printDelayMs ;
|
|
print.printDirection = para.printDirection ;
|
|
print.printRowDelay = para.printRowDelay ;
|
|
print.printTotalColNum = para.printTotalColNum ;
|
|
print.printTriggerMode = para.printTriggerMode ;
|
|
print.productCntPerOutputPulse = para.productCntPerOutputPulse ;
|
|
print.productNumToGenerateOutputPulse = para.productNumToGenerateOutputPulse ;
|
|
print.pulseOutputEnable = para.pulseOutputEnable ;
|
|
print.reducedPixelMode = para.reducedPixelMode ;
|
|
print.reducedPixelNum = para.reducedPixelNum ;
|
|
print.reducedPixelNumRatio = para.reducedPixelNumRatio ;
|
|
print.scanInverse = para.scanInverse ;
|
|
print.startVoltage = para.startVoltage ;
|
|
//print.stepPrint = para.stepPrint ;
|
|
memcpy( (char *)&print.stepPrint,(char *)¶.stepPrint,sizeof(stepPrint_t)) ;
|
|
memcpy( (char *)&print.adjVolDacRate,(char *)¶.adjVolDacRate,sizeof(para.adjVolDacRate)) ;
|
|
//edit-12.2
|
|
//print.synCharWidthRatio = para.synCharWidthRatio ;
|
|
print.synClearCntInEleEyeMode = para.synClearCntInEleEyeMode ;
|
|
#if 0 //不需要每个文件都存相位的参数
|
|
print.synPulseNumPerMm = para.synPulseNumPerMm ;
|
|
print.synPulsePerMmX8 = para.synPulsePerMmX8 ;
|
|
#endif
|
|
print.synTriggerPrintLenMm = para.synTriggerPrintLenMm ;
|
|
print.synTriggerPrintLenRatio = para.synTriggerPrintLenRatio ;
|
|
print.sysTriggerPrintMode = para.sysTriggerPrintMode ;
|
|
print.timeTriggerPrintDelayMs = para.timeTriggerPrintDelayMs ;
|
|
print.timeTriggerPrintMode = para.timeTriggerPrintMode ;
|
|
print.totalSynPulseNum = para.totalSynPulseNum ;
|
|
print.upDownInverse = para.upDownInverse ;
|
|
print.eleMaskTime = para.eleMaskTime;
|
|
print.AltMirrorGap = para.AltMirrorGap;
|
|
|
|
print.varLen = para.varLen;
|
|
print.varLen1 = para.varLen1;
|
|
print.varLenEn = para.varLenEn;
|
|
print.headLen = para.headLen;
|
|
print.endLen = para.endLen;
|
|
|
|
print.OuputPulseCol = para.OuputPulseCol;
|
|
int varNum=0;
|
|
snprintf(print.QRvars[varNum].text,sizeof(print.QRvars[varNum].text),"%s",para.qrOption.text);
|
|
snprintf(print.QRvars[varNum].text2,sizeof(print.QRvars[varNum].text2),"%s",para.qrOption.text2);
|
|
snprintf(print.QRvars[varNum].textCnt,sizeof(print.QRvars[varNum].textCnt),"%s",para.qrOption.textCnt);
|
|
varNum++;
|
|
snprintf(print.QRvars[varNum].text,sizeof(print.QRvars[varNum].text),"%s",para.qrOption.text);
|
|
snprintf(print.QRvars[varNum].text2,sizeof(print.QRvars[varNum].text2),"%s",para.qrOption.text2);
|
|
snprintf(print.QRvars[varNum].textCnt,sizeof(print.QRvars[varNum].textCnt),"%s",para.qrOption.textCnt);
|
|
print.textEditLineSpace = para.textEditLineSpace;
|
|
//print.weihu = para.wehu;
|
|
//qDebug()<<"File1:1";
|
|
if(file.isOpen())
|
|
{
|
|
file.seek(0);
|
|
file.write((char *)&print,(long long int)sizeof(print));
|
|
fsync(file.handle());
|
|
|
|
file.close();
|
|
//qDebug()<<"File1:2";
|
|
}
|
|
//qDebug()<<"File1:3";
|
|
}
|
|
}
|
|
*/
|
|
|
|
|
|
void SysPara::savePrintParaToFile(){
|
|
if(sysFile=="") return;
|
|
QString fileName = QString( PARA_ROOT_DIR+QFileInfo( sysFile).baseName()+".dpn");
|
|
//qDebug()<<"savePrintParaToFile1:"<<fileName;
|
|
QFile file(fileName);
|
|
if(!file.open(QIODevice::WriteOnly)){//怀疑是QIODevice::Truncate 引起参数错误,去掉试试看
|
|
//QMessageBox::warning(0,"警告",QString("无法打开打印参数文件") + fileName);
|
|
}
|
|
else {
|
|
memcpy( (char *)&print.alterPrint,(char *)¶.alterPrint,sizeof(alterPrint_t)) ;
|
|
|
|
print.SynCntEn = para.SynCntEn ;
|
|
print.cnt1CurrValue = para.cnt1CurrValue; // 20170313 cnt1StartValue;20191226 cnt1CurrValue
|
|
print.cnt1EndValue = para.cnt1EndValue ;
|
|
print.Cnt1NatureValue = para.Cnt1NatureValue ;
|
|
print.charBold = para.charBold ;
|
|
print.cnt1RepeateValue = para.cnt1RepeateValue ;
|
|
print.cnt1StartValue = para.cnt1StartValue ;
|
|
print.cnt1StepValue = para.cnt1StepValue ;
|
|
print.cnt2CurrValue = para.cnt2CurrValue ;
|
|
print.cnt2EndValue = para.cnt2EndValue ;
|
|
print.cnt2RepeateValue = para.cnt2RepeateValue ;
|
|
print.cnt2StartValue = para.cnt2StartValue ;
|
|
print.cnt2StepValue = para.cnt2StepValue ;
|
|
|
|
print.cnt4CurrValue = para.cnt4CurrValue;
|
|
print.HiddenConditionValue = para.HiddenConditionValue;
|
|
print.HiddenFuncEnable = para.HiddenFuncEnable;
|
|
print.HiddenMeterEnable = para.HiddenMeterEnable;
|
|
|
|
if(para.printNumPoint == 0 && para.rrr_nc == 0)
|
|
print.decimalBits = 0;
|
|
else if(para.printNumPoint == 1 && para.rrr_nc == 0)
|
|
print.decimalBits = 1;
|
|
else if(para.printNumPoint == 0 && para.rrr_nc == 1)
|
|
print.decimalBits = 2;
|
|
else if(para.printNumPoint == 1 && para.rrr_nc == 1)
|
|
print.decimalBits = 3;
|
|
|
|
print.currPrintMode = para.currPrintMode ;
|
|
print.elecEyeTriggerInterval = para.elecEyeTriggerInterval ;
|
|
print.eleEyeClearCntInSynMode = para.eleEyeClearCntInSynMode ;
|
|
print.eleEyeTriggerPrintDelay = para.eleEyeTriggerPrintDelay ;
|
|
print.eleEyeTriggerSynPrintEn = para.eleEyeTriggerSynPrintEn ;
|
|
print.HighVoltageAmplitude = para.HighVoltageAmplitude ;
|
|
print.leftRightInverse = para.leftRightInverse ;
|
|
print.outputPulseDelayMs = para.outputPulseDelayMs ;
|
|
print.photoElectricityRepeateNum = para.photoElectricityRepeateNum ;
|
|
print.printColDelay = para.printColDelay ;
|
|
print.printDelayMs = para.printDelayMs ;
|
|
|
|
print.printTriggerMode = para.printTriggerMode ;
|
|
print.productCntPerOutputPulse = para.productCntPerOutputPulse ;
|
|
|
|
print.pulseOutputEnable = para.pulseOutputEnable ;
|
|
print.reducedPixelNumRatio = para.reducedPixelNumRatio ;
|
|
print.scanInverse = para.scanInverse ;
|
|
memcpy( (char *)&print.stepPrint,(char *)¶.stepPrint,sizeof(stepPrint_t)) ;
|
|
// memcpy( (char *)&print.adjVolDacRate,(char *)¶.adjVolDacRate,sizeof(para.adjVolDacRate)) ;
|
|
|
|
print.synClearCntInEleEyeMode = para.synClearCntInEleEyeMode ;
|
|
print.synTriggerPrintLenMm = para.synTriggerPrintLenMm ;
|
|
|
|
print.sysTriggerPrintMode = para.sysTriggerPrintMode ;
|
|
print.timeTriggerPrintDelayMs = para.timeTriggerPrintDelayMs ;
|
|
print.timeTriggerPrintMode = para.timeTriggerPrintMode ;
|
|
print.upDownInverse = para.upDownInverse ;
|
|
print.eleMaskTime = para.eleMaskTime;
|
|
|
|
print.varLen = para.varLen;
|
|
print.varLen1 = para.varLen1;
|
|
print.varLenEn = para.varLenEn;
|
|
print.headLen = para.headLen;
|
|
print.endLen = para.endLen;
|
|
|
|
// print.OuputPulseCol = para.OuputPulseCol;
|
|
int varNum=0;
|
|
snprintf(print.QRvars[varNum].text,sizeof(print.QRvars[varNum].text),"%s",para.qrOption.text);
|
|
snprintf(print.QRvars[varNum].text2,sizeof(print.QRvars[varNum].text2),"%s",para.qrOption.text2);
|
|
snprintf(print.QRvars[varNum].textCnt,sizeof(print.QRvars[varNum].textCnt),"%s",para.qrOption.textCnt);
|
|
varNum++;
|
|
snprintf(print.QRvars[varNum].text,sizeof(print.QRvars[varNum].text),"%s",para.qrOption.text);
|
|
snprintf(print.QRvars[varNum].text2,sizeof(print.QRvars[varNum].text2),"%s",para.qrOption.text2);
|
|
snprintf(print.QRvars[varNum].textCnt,sizeof(print.QRvars[varNum].textCnt),"%s",para.qrOption.textCnt);
|
|
print.textEditLineSpace = para.textEditLineSpace;
|
|
print.textEditCharSpace = para.textEditCharSpace;
|
|
if(file.isOpen())
|
|
{
|
|
file.seek(0);
|
|
file.write((char *)&print,(long long int)sizeof(print));
|
|
fsync(file.handle());
|
|
file.close();
|
|
}
|
|
}
|
|
}
|
|
|
|
void SysPara::loadParaToPrintInit(){
|
|
printInit.SynCntEn = para.SynCntEn ;
|
|
printInit.cnt1CurrValue = para.cnt1CurrValue; // 20170313 cnt1StartValue;20191226 cnt1CurrValue
|
|
printInit.cnt1EndValue = para.cnt1EndValue ;
|
|
printInit.Cnt1NatureValue = para.Cnt1NatureValue ;
|
|
printInit.charBold = para.charBold ;
|
|
printInit.cnt1RepeateValue = para.cnt1RepeateValue ;
|
|
printInit.cnt1StartValue = para.cnt1StartValue ;
|
|
printInit.cnt1StepValue = para.cnt1StepValue ;
|
|
printInit.cnt2CurrValue = para.cnt2CurrValue ;
|
|
printInit.cnt2EndValue = para.cnt2EndValue ;
|
|
printInit.cnt2RepeateValue = para.cnt2RepeateValue ;
|
|
printInit.cnt2StartValue = para.cnt2StartValue ;
|
|
printInit.cnt2StepValue = para.cnt2StepValue ;
|
|
|
|
printInit.cnt4CurrValue = para.cnt4CurrValue;
|
|
printInit.HiddenConditionValue = para.HiddenConditionValue;
|
|
printInit.HiddenFuncEnable = para.HiddenFuncEnable;
|
|
printInit.HiddenMeterEnable = para.HiddenMeterEnable;
|
|
|
|
if(para.printNumPoint == 0 && para.rrr_nc == 0)
|
|
printInit.decimalBits = 0;
|
|
else if(para.printNumPoint == 1 && para.rrr_nc == 0)
|
|
printInit.decimalBits = 1;
|
|
else if(para.printNumPoint == 0 && para.rrr_nc == 1)
|
|
printInit.decimalBits = 2;
|
|
else if(para.printNumPoint == 1 && para.rrr_nc == 1)
|
|
printInit.decimalBits = 3;
|
|
|
|
printInit.currPrintMode = para.currPrintMode ;
|
|
printInit.elecEyeTriggerInterval = para.elecEyeTriggerInterval ;
|
|
printInit.eleEyeClearCntInSynMode = para.eleEyeClearCntInSynMode ;
|
|
printInit.eleEyeTriggerPrintDelay = para.eleEyeTriggerPrintDelay ;
|
|
printInit.eleEyeTriggerSynPrintEn = para.eleEyeTriggerSynPrintEn ;
|
|
printInit.HighVoltageAmplitude = para.HighVoltageAmplitude ;
|
|
printInit.leftRightInverse = para.leftRightInverse ;
|
|
printInit.outputPulseDelayMs = para.outputPulseDelayMs ;
|
|
printInit.photoElectricityRepeateNum = para.photoElectricityRepeateNum ;
|
|
printInit.printColDelay = para.printColDelay ;
|
|
printInit.printDelayMs = para.printDelayMs ;
|
|
|
|
printInit.printTriggerMode = para.printTriggerMode ;
|
|
printInit.productCntPerOutputPulse = para.productCntPerOutputPulse ;
|
|
|
|
printInit.pulseOutputEnable = para.pulseOutputEnable ;
|
|
printInit.reducedPixelNumRatio = para.reducedPixelNumRatio ;
|
|
printInit.scanInverse = para.scanInverse ;
|
|
|
|
printInit.synClearCntInEleEyeMode = para.synClearCntInEleEyeMode ;
|
|
printInit.synTriggerPrintLenMm = para.synTriggerPrintLenMm ;
|
|
|
|
printInit.sysTriggerPrintMode = para.sysTriggerPrintMode ;
|
|
printInit.timeTriggerPrintDelayMs = para.timeTriggerPrintDelayMs ;
|
|
printInit.timeTriggerPrintMode = para.timeTriggerPrintMode ;
|
|
printInit.upDownInverse = para.upDownInverse ;
|
|
printInit.eleMaskTime = para.eleMaskTime;
|
|
|
|
printInit.varLen = para.varLen;
|
|
printInit.varLen1 = para.varLen1;
|
|
printInit.varLenEn = para.varLenEn;
|
|
printInit.headLen = para.headLen;
|
|
printInit.endLen = para.endLen;
|
|
|
|
printInit.textEditLineSpace = para.textEditLineSpace;
|
|
printInit.textEditCharSpace = para.textEditCharSpace;
|
|
}
|
|
|
|
void SysPara::updatePrintInitToPara(){
|
|
para.charBold = printInit.charBold ;
|
|
|
|
para.SynCntEn = printInit.SynCntEn ;
|
|
para.cnt1CurrValue = printInit.cnt1CurrValue; // 20170313 cnt1StartValue;20191226 cnt1CurrValue
|
|
para.cnt1EndValue = printInit.cnt1EndValue ;
|
|
para.Cnt1NatureValue = printInit.Cnt1NatureValue ;
|
|
|
|
para.cnt1RepeateValue = printInit.cnt1RepeateValue ;
|
|
para.cnt1StartValue = printInit.cnt1StartValue ;
|
|
para.cnt1StepValue = printInit.cnt1StepValue ;
|
|
para.cnt2CurrValue = printInit.cnt2CurrValue;//20170313 cnt2StartValue ; /// 20191226cnt2CurrValue
|
|
para.cnt2EndValue = printInit.cnt2EndValue ;
|
|
para.cnt2RepeateValue = printInit.cnt2RepeateValue ;
|
|
para.cnt2StartValue = printInit.cnt2StartValue ;
|
|
para.cnt2StepValue = printInit.cnt2StepValue ;
|
|
|
|
para.cnt4CurrValue = printInit.cnt4CurrValue;
|
|
para.HiddenConditionValue = printInit.HiddenConditionValue;
|
|
para.HiddenFuncEnable = printInit.HiddenFuncEnable;
|
|
para.HiddenMeterEnable = printInit.HiddenMeterEnable;
|
|
|
|
if(printInit.decimalBits == 0){
|
|
para.printNumPoint == 0 ;
|
|
para.rrr_nc == 0;
|
|
}else if(printInit.decimalBits == 1){
|
|
para.printNumPoint == 1;
|
|
para.rrr_nc == 0;
|
|
}else if(printInit.decimalBits == 2){
|
|
para.printNumPoint == 0;
|
|
para.rrr_nc == 1;
|
|
}else if(printInit.decimalBits == 3){
|
|
para.printNumPoint == 1;
|
|
para.rrr_nc == 1;
|
|
}
|
|
para.currPrintMode = printInit.currPrintMode ;
|
|
para.elecEyeTriggerInterval = printInit.elecEyeTriggerInterval ;
|
|
para.eleEyeClearCntInSynMode = printInit.eleEyeClearCntInSynMode ;
|
|
para.eleEyeTriggerPrintDelay = printInit.eleEyeTriggerPrintDelay ;
|
|
para.eleEyeTriggerSynPrintEn = printInit.eleEyeTriggerSynPrintEn ;
|
|
para.HighVoltageAmplitude = printInit.HighVoltageAmplitude ;
|
|
|
|
para.leftRightInverse = printInit.leftRightInverse ;
|
|
para.outputPulseDelayMs = printInit.outputPulseDelayMs ;
|
|
para.photoElectricityRepeateNum = printInit.photoElectricityRepeateNum ;
|
|
para.printColDelay = printInit.printColDelay ;
|
|
para.printDelayMs = printInit.printDelayMs ;
|
|
para.printTriggerMode = printInit.printTriggerMode ; //打印触发模式
|
|
para.productCntPerOutputPulse = printInit.productCntPerOutputPulse ;
|
|
para.pulseOutputEnable = printInit.pulseOutputEnable ;
|
|
para.reducedPixelNumRatio = printInit.reducedPixelNumRatio ;
|
|
para.scanInverse = printInit.scanInverse ;
|
|
|
|
para.synClearCntInEleEyeMode = printInit.synClearCntInEleEyeMode ;
|
|
para.synTriggerPrintLenMm = printInit.synTriggerPrintLenMm ; //喷印间隔
|
|
para.sysTriggerPrintMode = printInit.sysTriggerPrintMode ;
|
|
para.timeTriggerPrintDelayMs = printInit.timeTriggerPrintDelayMs ;
|
|
para.timeTriggerPrintMode = printInit.timeTriggerPrintMode ;
|
|
para.upDownInverse = printInit.upDownInverse ;
|
|
|
|
para.varLen = printInit.varLen;
|
|
printInit.varLen1 = para.varLen1;
|
|
para.varLenEn = printInit.varLenEn?1:0;
|
|
para.headLen = printInit.headLen;
|
|
para.endLen = printInit.endLen;
|
|
para.set_HVData_Flag = 0;
|
|
para.eleMaskTime = printInit.eleMaskTime;
|
|
para.textEditLineSpace = printInit.textEditLineSpace;
|
|
para.textEditCharSpace = printInit.textEditCharSpace;
|
|
}
|
|
|
|
void SysPara::loadVolteParaFromFile(PRINT_MODE mode)
|
|
{
|
|
QString volParaFilePath;
|
|
unsigned int type = status.fpgaVersionNum >> 12;
|
|
// unsigned int type = 6;
|
|
if(mode == FAST_PRINT )
|
|
{
|
|
volParaFilePath = ":/conf/VoltParaHi.bin";
|
|
}
|
|
else if(mode == STANDARD_PRINT)
|
|
{
|
|
volParaFilePath = PARA_ROOT_DIR"VoltParaStd.bin";
|
|
}
|
|
|
|
if(status.build_dat.builTime == 73){
|
|
volParaFilePath = ":/conf/VoltePara_No73.bin";
|
|
status.currVoltageVersion = VersionOf73;
|
|
}
|
|
else if(type == 6 || type == 8){
|
|
if(status.currPrintRow <=21){
|
|
volParaFilePath = ":/conf/VoltDataStd21.bin";
|
|
status.currVoltageVersion = VersionOf72And21R;
|
|
}
|
|
else if(status.currPrintRow <=25){
|
|
volParaFilePath = ":/conf/VoltDataStd25.bin";
|
|
status.currVoltageVersion = VersionOf72And25R;
|
|
}
|
|
else if(para.currSelectVolPara == FiveLineFiveDot){
|
|
volParaFilePath = ":/conf/VoltDataStd5Row5Dot.bin";
|
|
status.currVoltageVersion = VersionOf72And5Row5Dot;
|
|
if(status.currPrintRow > 32){
|
|
volParaFilePath = ":/conf/VoltDataStd5R5DOf34Dot.bin"; //34dot
|
|
status.currVoltageVersion = VersionOf72And5Row5Dot34;
|
|
}
|
|
}
|
|
else if(para.currSelectVolPara == FourLineSevenDot){
|
|
volParaFilePath = ":/conf/VoltDataStd4Row7Dot.bin";
|
|
status.currVoltageVersion = VersionOf72And4Row7Dot;
|
|
if(status.currPrintRow > 32){
|
|
volParaFilePath = ":/conf/VoltDataStd4R7DOf34Dot.bin"; //34dot
|
|
status.currVoltageVersion = VersionOf72And4Row7Dot34;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
volParaFilePath = ":/conf/VoltDataStd32.bin";
|
|
status.currVoltageVersion = VersionOf72And32R;
|
|
}
|
|
}
|
|
|
|
LogInfo::setRunStatusText(QString("volParaFilePath:%1").arg(volParaFilePath));
|
|
|
|
QFile file(volParaFilePath);
|
|
|
|
QDir dir;
|
|
char buf[200];
|
|
if (!dir.exists(DOC_ROOT_DIR)){
|
|
snprintf(buf, sizeof(buf), "mkdir -p %s", DOC_ROOT_DIR);
|
|
system(buf);
|
|
}
|
|
if (!dir.exists(PARA_ROOT_DIR)){
|
|
snprintf(buf, sizeof(buf), "mkdir -p %s", PARA_ROOT_DIR);
|
|
system(buf);
|
|
}
|
|
if (!dir.exists(PARA_ROOT_DIR)){
|
|
QMessageBox::warning(0, QString("warnning"), QString("Path") + PARA_ROOT_DIR + QString("not Found."));
|
|
return;
|
|
}
|
|
|
|
qDebug() << "loadVolteParaFromFile: " << volParaFilePath;
|
|
|
|
if (file.exists(volParaFilePath)){
|
|
if (!file.open(QIODevice::ReadOnly)){
|
|
}
|
|
else {
|
|
QMessageBox::StandardButton ret = QMessageBox::Ok;
|
|
qint32 copy_len;
|
|
char *volteStruct = (char *)&voltePara;
|
|
size_t sizeofVolteParaStruct = sizeof(voltePara);
|
|
if(status.build_dat.builTime == 73){
|
|
volteStruct = (char *)&voltePara_No73;
|
|
sizeofVolteParaStruct = sizeof(voltePara_No73);
|
|
}
|
|
else if(type == 6 || type ==8){
|
|
memset(&voltePara_25Dots,0,sizeof(voltePara_25Dots));
|
|
volteStruct = (char *)&voltePara_25Dots;
|
|
sizeofVolteParaStruct = sizeof(voltePara_25Dots);
|
|
}
|
|
if (file.size() != sizeofVolteParaStruct){
|
|
// qDebug()<<"注意,电压文件大小不对!";
|
|
// LogInfo::setRunStatusText(QString("注意,电压文件大小不对!"));
|
|
#ifdef VNLG
|
|
;
|
|
#else
|
|
ret = QMessageBox::warning(NULL, QString("警告"), QString("配置文件大小不一致,按 确定 将采取兼容方式读取配置文件"),
|
|
QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
|
|
|
|
#endif
|
|
if (ret == QMessageBox::Ok){
|
|
copy_len = file.size() < sizeofVolteParaStruct?file.size():sizeofVolteParaStruct;
|
|
file.seek(0);
|
|
file.read(volteStruct, copy_len);
|
|
file.close();
|
|
}
|
|
else if (ret == QMessageBox::Cancel) {
|
|
file.close();
|
|
}
|
|
}
|
|
else {
|
|
file.seek(0);
|
|
file.read(volteStruct, (long long int)sizeofVolteParaStruct);
|
|
file.close();
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
qDebug() << "There is no Volte Para File.";
|
|
LogInfo::setRunStatusText(QString("There is no Volte Para File."));
|
|
}
|
|
}
|
|
|
|
void SysPara::saveRFIDPara()
|
|
{
|
|
QFile file(RFID_FILE_PATH);
|
|
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) {
|
|
qDebug() << "Error: Could not open file for writing";
|
|
return;
|
|
}
|
|
QDataStream out(&file);
|
|
out.setVersion(QDataStream::Qt_4_6); // Set the version compatible with Qt 4.8.5
|
|
out << RFIDPara.PrintInkDots;
|
|
out << RFIDPara.InkEmptyCnt;
|
|
out << RFIDPara.SOLVEmptyCnt;
|
|
out << RFIDPara.InkRFIDCnt;
|
|
out << RFIDPara.SOLVRFIDCnt;
|
|
out << RFIDPara.solventNumber;
|
|
out << RFIDPara.needInkCard;
|
|
out << RFIDPara.needSolventCard;
|
|
out << RFIDPara.inkCardTimeOut;
|
|
out << RFIDPara.solventCardTimeOut;
|
|
out << RFIDPara.maintenanceDate;
|
|
out << RFIDPara.maintenanceInterval;
|
|
out << RFIDPara.maintenanceEndDate;
|
|
out << RFIDPara.needMaintenance;
|
|
out << (unsigned int)(RFIDPara.runtimeMs / 1000);
|
|
out << RFIDPara.maintenanceHours;
|
|
out << RFIDPara.addedInk;
|
|
out << RFIDPara.addedSolvent;
|
|
out << RFIDPara.cardInk;
|
|
out << RFIDPara.cardSolvent;
|
|
out << para.rfidCountDown;
|
|
out << status.showInkWarningNumber << status.showSolventWarningNumber;
|
|
out << RFIDPara.inInkAndRFIDProgress << RFIDPara.inSolventAndRFIDProgress << RFIDPara.runtimeMs;
|
|
|
|
if(!file.flush()){
|
|
LogInfo::setRunStatusText("RFID Para save Failed 1");
|
|
qDebug()<<"RFID Para save Failed 1";
|
|
file.close();
|
|
return;
|
|
}
|
|
int ret = fsync(file.handle());
|
|
if(ret == -1){
|
|
qDebug()<<"RFID Para save Failed 2";
|
|
LogInfo::setRunStatusText("RFID Para save Failed 2");
|
|
}
|
|
file.close();
|
|
}
|
|
|
|
bool SysPara::loadRFIDPara()
|
|
{
|
|
QFile file(RFID_FILE_PATH);
|
|
if (!file.open(QIODevice::ReadOnly)) {
|
|
qDebug() << "Error: Could not open file for reading";
|
|
return false;
|
|
}
|
|
|
|
QDataStream in(&file);
|
|
in.setVersion(QDataStream::Qt_4_6); // Set the version compatible with Qt 4.8.5
|
|
uint oldRuntimeSec = 0;
|
|
|
|
RFIDPara.inInkAndRFIDProgress = 0;
|
|
RFIDPara.inSolventAndRFIDProgress = 0;
|
|
RFIDPara.runtimeMs = 0;
|
|
|
|
in >> RFIDPara.PrintInkDots;
|
|
in >> RFIDPara.InkEmptyCnt;
|
|
in >> RFIDPara.SOLVEmptyCnt;
|
|
in >> RFIDPara.InkRFIDCnt;
|
|
in >> RFIDPara.SOLVRFIDCnt;
|
|
in >> RFIDPara.solventNumber;
|
|
in >> RFIDPara.needInkCard;
|
|
in >> RFIDPara.needSolventCard;
|
|
in >> RFIDPara.inkCardTimeOut;
|
|
in >> RFIDPara.solventCardTimeOut;
|
|
in >> RFIDPara.maintenanceDate;
|
|
in >> RFIDPara.maintenanceInterval;
|
|
in >> RFIDPara.maintenanceEndDate;
|
|
in >> RFIDPara.needMaintenance;
|
|
in >> oldRuntimeSec;
|
|
in >> RFIDPara.maintenanceHours;
|
|
in >> RFIDPara.addedInk;
|
|
in >> RFIDPara.addedSolvent;
|
|
in >> RFIDPara.cardInk;
|
|
in >> RFIDPara.cardSolvent;
|
|
in >> para.rfidCountDown;
|
|
in >> status.showInkWarningNumber >> status.showSolventWarningNumber;
|
|
in >> RFIDPara.inInkAndRFIDProgress >> RFIDPara.inSolventAndRFIDProgress >> RFIDPara.runtimeMs;
|
|
|
|
// 兼容获取旧的运行时间,如果新的运行时间为0且旧的运行时间大于0,则使用旧的运行时间
|
|
// 新时间所占用的8字节空间,在旧实现上也是没有用的,它们总是被写入为0,因此RFIDPara.runtimeMs为 0 ,表示软件刚刚升级,第一次运行,应该使用旧的运行时间
|
|
if(RFIDPara.runtimeMs == 0){
|
|
RFIDPara.runtimeMs = oldRuntimeSec * 1000;
|
|
}
|
|
|
|
file.close();
|
|
return true;
|
|
}
|
|
|
|
void SysPara::comparePrintStruct(){
|
|
|
|
if(print.charBold != printPre.charBold){
|
|
printInit.charBold = print.charBold;
|
|
}
|
|
if(print.SynCntEn != printPre.SynCntEn){
|
|
printInit.SynCntEn = print.SynCntEn;
|
|
}
|
|
if(print.cnt1CurrValue != printPre.cnt1CurrValue){
|
|
printInit.cnt1CurrValue = print.cnt1CurrValue;
|
|
|
|
}
|
|
if(print.cnt1EndValue != printPre.cnt1EndValue){
|
|
printInit.cnt1EndValue = print.cnt1EndValue;
|
|
|
|
}
|
|
if(print.Cnt1NatureValue != printPre.Cnt1NatureValue){
|
|
printInit.Cnt1NatureValue = print.Cnt1NatureValue;
|
|
|
|
}
|
|
if(print.charBold != printPre.charBold){
|
|
printInit.charBold = print.charBold;
|
|
}
|
|
if(print.cnt1RepeateValue != printPre.cnt1RepeateValue){
|
|
printInit.cnt1RepeateValue = printPre.cnt1RepeateValue;
|
|
|
|
}
|
|
if(print.cnt1StartValue != printPre.cnt1StartValue){
|
|
printInit.cnt1StartValue = print.cnt1StartValue;
|
|
|
|
}
|
|
if(print.cnt1StepValue != printPre.cnt1StepValue ){
|
|
printInit.cnt1StepValue = print.cnt1StepValue;
|
|
|
|
}
|
|
if(print.cnt2CurrValue != printPre.cnt2CurrValue){
|
|
printInit.cnt2CurrValue = print.cnt2CurrValue;
|
|
}
|
|
if(print.cnt2EndValue != printPre.cnt2EndValue){
|
|
printInit.cnt2EndValue = print.cnt2EndValue;
|
|
|
|
}
|
|
if(print.cnt2RepeateValue != printPre.cnt2RepeateValue){
|
|
printInit.cnt2RepeateValue = print.cnt2RepeateValue;
|
|
|
|
}
|
|
if(print.cnt2StartValue != printPre.cnt2StartValue){
|
|
printInit.cnt2StartValue = print.cnt2StartValue;
|
|
|
|
}
|
|
if(print.cnt2StepValue != printPre.cnt2StepValue ){
|
|
printInit.cnt2StepValue = print.cnt2StepValue;
|
|
}
|
|
|
|
if(print.cnt4CurrValue != printPre.cnt4CurrValue){
|
|
printInit.cnt4CurrValue = print.cnt4CurrValue;
|
|
|
|
}
|
|
if(print.HiddenConditionValue != printPre.HiddenConditionValue){
|
|
printInit.HiddenConditionValue = print.HiddenConditionValue;
|
|
}
|
|
if(print.HiddenFuncEnable != printPre.HiddenFuncEnable){
|
|
printInit.HiddenFuncEnable = print.HiddenFuncEnable;
|
|
}
|
|
if(print.HiddenMeterEnable != printPre.HiddenMeterEnable){
|
|
printInit.HiddenMeterEnable = print.HiddenMeterEnable;
|
|
}
|
|
|
|
if(print.currPrintMode != printPre.currPrintMode ){
|
|
printInit.currPrintMode = print.currPrintMode;
|
|
}
|
|
if(print.elecEyeTriggerInterval != printPre.elecEyeTriggerInterval){
|
|
printInit.elecEyeTriggerInterval = print.elecEyeTriggerInterval;
|
|
}
|
|
if(print.eleEyeClearCntInSynMode != printPre.eleEyeClearCntInSynMode){
|
|
printInit.eleEyeClearCntInSynMode = print.eleEyeClearCntInSynMode;
|
|
}
|
|
if(print.eleEyeTriggerPrintDelay != printPre.eleEyeTriggerPrintDelay){
|
|
printInit.eleEyeTriggerPrintDelay = print.eleEyeTriggerPrintDelay;
|
|
}
|
|
if(print.eleEyeTriggerSynPrintEn != printPre.eleEyeTriggerSynPrintEn){
|
|
printInit.eleEyeTriggerSynPrintEn = print.eleEyeTriggerSynPrintEn;
|
|
}
|
|
|
|
if(print.HighVoltageAmplitude != printPre.HighVoltageAmplitude){
|
|
printInit.HighVoltageAmplitude = print.HighVoltageAmplitude;
|
|
}
|
|
|
|
if(print.leftRightInverse != printPre.leftRightInverse){
|
|
printInit.leftRightInverse = print.leftRightInverse;
|
|
}
|
|
|
|
if(print.outputPulseDelayMs != printPre.outputPulseDelayMs){
|
|
printInit.outputPulseDelayMs = print.outputPulseDelayMs;
|
|
|
|
}
|
|
if(print.photoElectricityRepeateNum != printPre.photoElectricityRepeateNum){
|
|
printInit.photoElectricityRepeateNum = print.photoElectricityRepeateNum;
|
|
}
|
|
|
|
if(print.printColDelay != printPre.printColDelay){
|
|
printInit.printColDelay = print.printColDelay;
|
|
}
|
|
if(print.printDelayMs != printPre.printDelayMs){
|
|
printInit.printDelayMs = print.printDelayMs;
|
|
}
|
|
|
|
if(print.printTriggerMode != printPre.printTriggerMode){
|
|
printInit.printTriggerMode = print.printTriggerMode;
|
|
}
|
|
if(print.productCntPerOutputPulse != printPre.productCntPerOutputPulse){
|
|
printInit.productCntPerOutputPulse = print.productCntPerOutputPulse;
|
|
}
|
|
if(print.pulseOutputEnable != printPre.pulseOutputEnable){
|
|
printInit.pulseOutputEnable = print.pulseOutputEnable;
|
|
}
|
|
|
|
if(print.reducedPixelNumRatio != printPre.reducedPixelNumRatio){
|
|
printInit.reducedPixelNumRatio = print.reducedPixelNumRatio;
|
|
}
|
|
|
|
if(print.synClearCntInEleEyeMode != printPre.synClearCntInEleEyeMode){
|
|
printInit.synClearCntInEleEyeMode = print.synClearCntInEleEyeMode;
|
|
|
|
}
|
|
|
|
if(print.synTriggerPrintLenMm != printPre.synTriggerPrintLenMm){
|
|
printInit.synTriggerPrintLenMm = print.synTriggerPrintLenMm;
|
|
}
|
|
|
|
if(print.sysTriggerPrintMode != printPre.sysTriggerPrintMode){
|
|
printInit.sysTriggerPrintMode = print.sysTriggerPrintMode;
|
|
}
|
|
if(print.timeTriggerPrintDelayMs != printPre.timeTriggerPrintDelayMs){
|
|
printInit.timeTriggerPrintDelayMs = print.timeTriggerPrintDelayMs;
|
|
}
|
|
if(print.timeTriggerPrintMode != printPre.timeTriggerPrintMode){
|
|
printInit.timeTriggerPrintMode = print.timeTriggerPrintMode;
|
|
}
|
|
|
|
if(print.upDownInverse != printPre.upDownInverse){
|
|
printInit.upDownInverse = print.upDownInverse;
|
|
}
|
|
if(print.eleMaskTime != printPre.eleMaskTime){
|
|
printInit.eleMaskTime = print.eleMaskTime;
|
|
}
|
|
if(print.varLen != printPre.varLen){
|
|
printInit.varLen = print.varLen;
|
|
}
|
|
if(print.varLen1 != printPre.varLen1){
|
|
printInit.varLen1 = print.varLen1;
|
|
}
|
|
if(print.varLenEn != printPre.varLenEn){
|
|
printInit.varLenEn = print.varLenEn;
|
|
}
|
|
if(print.headLen != printPre.headLen){
|
|
printInit.headLen = print.headLen;
|
|
}
|
|
if(print.endLen != printPre.endLen){
|
|
printInit.endLen = print.endLen;
|
|
}
|
|
if(print.textEditLineSpace != printPre.textEditLineSpace){
|
|
printInit.textEditLineSpace = print.textEditLineSpace;
|
|
}
|
|
if(print.textEditCharSpace != printPre.textEditCharSpace){
|
|
printInit.textEditCharSpace = print.textEditCharSpace;
|
|
|
|
}
|
|
}
|
|
|
|
|