Files

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(&para,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 *)&para,(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 *)&para.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(&para,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;
para.closeReclaimTankWhenPhaseFault = false;
}
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 *)&para,(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 *)&para.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 *)&para.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 *)&para.stepPrint,(char *)&print.stepPrint,sizeof(stepPrint_t)) ;
memcpy( (char *)&para.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 *)&para.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 *)&para.stepPrint,(char *)&print.stepPrint,sizeof(stepPrint_t)) ;
// memcpy( (char *)&para.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 *)&para.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 *)&para.stepPrint,sizeof(stepPrint_t)) ;
memcpy( (char *)&print.adjVolDacRate,(char *)&para.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 *)&para.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 *)&para.stepPrint,sizeof(stepPrint_t)) ;
// memcpy( (char *)&print.adjVolDacRate,(char *)&para.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;
}
}