hlp:桂林国际齿轮泵代码
This commit is contained in:
+742
@@ -0,0 +1,742 @@
|
||||
/*
|
||||
* 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"
|
||||
#define VNLG
|
||||
SysPara::SysPara(void):
|
||||
devOp(new DevOp(this)){
|
||||
|
||||
|
||||
memset(¶,0,sizeof(para));
|
||||
memset(&status,0,sizeof(status));
|
||||
//qDebug("start to loadParaFromFile.");
|
||||
loadParaFromFile();
|
||||
//qDebug("loadParaFromFile ok.");
|
||||
|
||||
//para.HVFaultCloseEn= 0;
|
||||
|
||||
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->writeFpgaVariCtrl();
|
||||
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;
|
||||
status.alterPrintCnt= 1;
|
||||
memset(para.reserved2,0,sizeof(para.reserved2));
|
||||
#ifdef __RFID_CARD
|
||||
if(!loadRFIDPara()){
|
||||
memset(&RFIDPara,0,sizeof(RFIDPara));
|
||||
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 {
|
||||
//qDebug("PARA_FILE_PATH1");
|
||||
#if 0
|
||||
QMessageBox::StandardButton ret = QMessageBox::Ok;
|
||||
qint32 copy_len;
|
||||
if(file.size() != sizeof(para)){
|
||||
#ifdef VNLG
|
||||
;
|
||||
#else
|
||||
ret = QMessageBox::warning(NULL,QString("警告"),QString("配置文件大小不一致,按 确定 将采取兼容方式读取配置文件,否则将恢复成默认设置"),
|
||||
QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok );
|
||||
|
||||
#endif
|
||||
if(ret == QMessageBox::Ok){
|
||||
if(file.size()>sizeof(print))
|
||||
copy_len = sizeof(print);
|
||||
else
|
||||
copy_len = file.size();
|
||||
file.seek(0);
|
||||
file.read((char *)¶,copy_len);
|
||||
file.close();
|
||||
//qDebug("normal load para");
|
||||
}
|
||||
else if(ret == QMessageBox::Cancel){
|
||||
loadDefaultPara();//qDebug("loadDefaultPara");
|
||||
file.close();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
file.seek(0);
|
||||
file.read((char *)¶,(long long int)sizeof(para));
|
||||
file.close();
|
||||
////////////////////
|
||||
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;
|
||||
loadPrintParaFromFile(sysFile);
|
||||
para.flagOfSecMi = true;
|
||||
|
||||
}
|
||||
|
||||
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.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;//混和阀是否是新管路
|
||||
}
|
||||
|
||||
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 引起参数错误,去掉试试看
|
||||
#ifdef VNLG
|
||||
;
|
||||
#else
|
||||
|
||||
QMessageBox::warning(0,QString("警告"),QString("无法打开配置文件 ") + PARA_FILE_PATH,
|
||||
QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok );
|
||||
#endif
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
#ifdef DEBUG1
|
||||
qDebug()<<"sysFile:11"<<file.fileName()<<sizeof(para);
|
||||
#endif
|
||||
if(file.isOpen()){
|
||||
#ifdef DEBUG1
|
||||
qDebug()<<"sysFile:write"<<sysFile;
|
||||
#endif
|
||||
file.seek(0);
|
||||
file.write((char *)¶,(long long int)sizeof(para));
|
||||
//#if defined(__CONVERTERBOARD__)|| defined(__VX__)
|
||||
#if 1
|
||||
fsync(file.handle());
|
||||
#endif
|
||||
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();
|
||||
}
|
||||
////////////////
|
||||
}
|
||||
|
||||
#ifdef DEBUG1
|
||||
qDebug()<<"sysFile:close";
|
||||
#endif
|
||||
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 ;
|
||||
|
||||
#ifndef CABLEUSER
|
||||
para.SynCntEn = 0 ;
|
||||
para.autoSynSpeedEn =0 ;
|
||||
para.cnt1CurrValue =0 ;
|
||||
para.cnt1EndValue = 0 ;
|
||||
para.Cnt1NatureValue =0 ;
|
||||
#else
|
||||
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 ;
|
||||
#endif
|
||||
|
||||
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.cnt1ByGroupEnalbe = print.cnt1ByGroupEnalbe;
|
||||
para.startVoltage = print.startVoltage ;para.cnt2ByGroupEnalbe = print.cnt2ByGroupEnalbe;
|
||||
//print.stepPrint = print.stepPrint ;
|
||||
memcpy( (char *)¶.stepPrint,(char *)&print.stepPrint,sizeof(stepPrint_t)) ;
|
||||
memcpy( (char *)¶.adjVolDacRate,(char *)&print.adjVolDacRate,sizeof(print.adjVolDacRate)) ;
|
||||
if(para.cnt1ByGroupEnalbe)
|
||||
memcpy( (char *)¶.Cnt1ByGroup,(char *)&print.Cnt1ByGroup,sizeof(print.Cnt1ByGroup)) ;
|
||||
else
|
||||
memset(¶.Cnt1ByGroup,0,sizeof(para.Cnt1ByGroup));
|
||||
if(para.cnt2ByGroupEnalbe)
|
||||
memcpy( (char *)¶.Cnt2ByGroup,(char *)&print.Cnt2ByGroup,sizeof(print.Cnt2ByGroup)) ;
|
||||
else
|
||||
memset(¶.Cnt2ByGroup,0,sizeof(para.Cnt2ByGroup));
|
||||
//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::loadDefaultPrintPara(){
|
||||
// memset(&print,0,sizeof(print));
|
||||
// print.alterPrint.enable = 0;
|
||||
// print.stepPrint.enbale = 0;
|
||||
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 ;
|
||||
|
||||
#ifndef CABLEUSER
|
||||
print.SynCntEn = 0 ;
|
||||
print.autoSynSpeedEn =0 ;
|
||||
|
||||
print.cnt1CurrValue =0 ;
|
||||
print.cnt1EndValue = 0 ;
|
||||
print.Cnt1NatureValue =0 ;
|
||||
#else
|
||||
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 ;
|
||||
#endif
|
||||
|
||||
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.cnt2ByGroupEnalbe = para.cnt2ByGroupEnalbe;
|
||||
print.reducedPixelNum = para.reducedPixelNum ;
|
||||
print.reducedPixelNumRatio = para.reducedPixelNumRatio ;
|
||||
print.scanInverse = para.scanInverse ;print.cnt1ByGroupEnalbe = para.cnt1ByGroupEnalbe;
|
||||
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)) ;
|
||||
if(print.cnt1ByGroupEnalbe)
|
||||
memcpy( (char *)&print.Cnt1ByGroup,(char *)¶.Cnt1ByGroup,sizeof(para.Cnt1ByGroup)) ;
|
||||
else
|
||||
memset(&print.Cnt1ByGroup,0,sizeof(print.Cnt1ByGroup));
|
||||
if(print.cnt2ByGroupEnalbe)
|
||||
memcpy( (char *)&print.Cnt2ByGroup,(char *)¶.Cnt2ByGroup,sizeof(para.Cnt2ByGroup)) ;
|
||||
else
|
||||
memset(&print.Cnt2ByGroup,0,sizeof(print.Cnt2ByGroup));
|
||||
//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;
|
||||
#if 0 //不需要每个文件都存相位的参数
|
||||
print.phaseHighLowRatio = para.phaseHighLowRatio;
|
||||
print.phaseDetectVol = para.phaseDetectVol;
|
||||
print.phaseShift = para.phaseShift;
|
||||
print.phase_detect_pulse_num = para.phase_detect_pulse_num;
|
||||
print.phaseDetectDelay = para.phaseDetectDelay;
|
||||
#endif
|
||||
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));
|
||||
//#if defined(__CONVERTERBOARD__)|| defined(__VX__)
|
||||
#if 1
|
||||
fsync(file.handle());
|
||||
#endif
|
||||
file.close();
|
||||
//qDebug()<<"File1:2";
|
||||
}
|
||||
//qDebug()<<"File1:3";
|
||||
}
|
||||
}
|
||||
|
||||
void SysPara::showDebug(QString s){
|
||||
#ifdef DEBUG1
|
||||
qDebug()<<s;
|
||||
#endif
|
||||
}
|
||||
void SysPara::showDebug(int s){
|
||||
#ifdef DEBUG1
|
||||
qDebug()<<s;
|
||||
#endif
|
||||
}
|
||||
|
||||
void SysPara::loadVolteParaFromFile(PRINT_MODE mode)
|
||||
{
|
||||
QString volParaFilePath;
|
||||
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";
|
||||
QFile file(volParaFilePath);
|
||||
#if 1
|
||||
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;
|
||||
}
|
||||
#endif
|
||||
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);
|
||||
}
|
||||
|
||||
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."));
|
||||
}
|
||||
}
|
||||
#ifdef __RFID_CARD
|
||||
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;
|
||||
|
||||
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
|
||||
|
||||
in >> RFIDPara.PrintInkDots;
|
||||
in >> RFIDPara.InkEmptyCnt;
|
||||
in >> RFIDPara.SOLVEmptyCnt;
|
||||
in >> RFIDPara.InkRFIDCnt;
|
||||
in >> RFIDPara.SOLVRFIDCnt;
|
||||
in >> RFIDPara.solventNumber;
|
||||
|
||||
file.close();
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user