hlp:640x480-小屏vx4齿轮泵代码提交

This commit is contained in:
kite_lucs
2026-09-10 15:19:23 +08:00
commit b1ff3223e9
1534 changed files with 237996 additions and 0 deletions
+682
View File
@@ -0,0 +1,682 @@
/*
* 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(&para,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;
}
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 *)&para,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 *)&para,(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 *)&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;
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.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 *)&para,(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 *)&para.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 *)&para.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.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.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)) ;
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.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 *)&para.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.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.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)) ;
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.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.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;
unsigned int type = status.fpgaVersionNum >> 12;
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";
else if(type == 6){
if(status.currPrintRow<=21){
volParaFilePath = ":/conf/VoltDataStd21.bin";
}
else if(status.currPrintRow <=25){
volParaFilePath = ":/conf/VoltDataStd25.bin";
}
else
volParaFilePath = ":/conf/VoltDataStd32.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);
}
else if(type == 6){
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."));
}
}