From 9a0a0882edb130d9d272386a108933144cd286d0 Mon Sep 17 00:00:00 2001 From: byloveletter Date: Fri, 29 Sep 2017 19:11:30 +0900 Subject: [PATCH] =?UTF-8?q?=EC=BF=A1=EB=B6=81=20=ED=8C=8C=EC=9D=BC=20?= =?UTF-8?q?=EC=95=95=EC=B6=95=20=EC=95=94=ED=98=B8=ED=99=94=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/gui/oven_control/fileprocessdlg.cpp | 85 +++++++++++++++++++++++++++++---- app/gui/oven_control/fileprocessdlg.h | 1 + 2 files changed, 77 insertions(+), 9 deletions(-) diff --git a/app/gui/oven_control/fileprocessdlg.cpp b/app/gui/oven_control/fileprocessdlg.cpp index b6d99f6..eca7d99 100644 --- a/app/gui/oven_control/fileprocessdlg.cpp +++ b/app/gui/oven_control/fileprocessdlg.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "fileprocessdlg.h" #include "ui_fileprocessdlg.h" #include "fileprocessor.h" @@ -37,7 +38,7 @@ void ProgramCopyWorker::workerMain(){ QStringList strdirlist; QString srcFilepath; QString destFilePath; - bool m_bRst=true; + bool bRst=true; //make destination folder QDir destdir(m_strDestDir); @@ -60,9 +61,10 @@ void ProgramCopyWorker::workerMain(){ qDebug() << " Dir List info : count = " << m_arrSrcFileList.size() << ", File Total Size = " << nTotalFileSize; if(nTotalFileSize <=0 ){ emit errorFired("SIZE ERROR "); - QThread::currentThread()->msleep(5000); - emit finished(); + QThread::currentThread()->msleep(1000); + bRst = false; emit progressed(0,0); + emit finished(); return; } @@ -80,7 +82,7 @@ void ProgramCopyWorker::workerMain(){ } if(QFile::copy(srcFilepath,destFilePath)==false){ qDebug() << srcFilepath << " file copy fail!"; - m_bRst = false; + bRst = false; emit errorFired(finfo.fileName()); QThread::currentThread()->msleep(5000); break; @@ -99,14 +101,14 @@ void ProgramCopyWorker::workerMain(){ qDebug() << "File List Copy Finished"; - if(QThread::currentThread()->isInterruptionRequested() == false || m_bRst == false){ + if(QThread::currentThread()->isInterruptionRequested() == false || bRst == false){ foreach(QString srcpath, m_arrSrcDirList){ qDebug() << "src dir : " << srcpath; QDir srcdir(srcpath); if(srcdir.exists() == false){ qDebug() << "Source Dir is not exist"; - m_bRst = false; + bRst = false; emit errorFired("DIR not exist"); QThread::currentThread()->msleep(5000); break; @@ -133,7 +135,7 @@ void ProgramCopyWorker::workerMain(){ srcFilepath = finfo.absoluteFilePath(); destFilePath = QString("%1/%2").arg(QString(strDir).replace(srcpath,targetpath)).arg(finfo.fileName()); if(QFile::copy(srcFilepath, destFilePath)==false){ - m_bRst = false; + bRst = false; emit errorFired(finfo.fileName()); qDebug() << srcFilepath << " file copy fail!"; QThread::currentThread()->msleep(5000); @@ -151,7 +153,7 @@ void ProgramCopyWorker::workerMain(){ } //QThread::currentThread()->msleep(100); } - if(QThread::currentThread()->isInterruptionRequested() || m_bRst == false) break; + if(QThread::currentThread()->isInterruptionRequested() || bRst == false) break; } strdirlist.clear(); if(QThread::currentThread()->isInterruptionRequested()) break; @@ -159,7 +161,7 @@ void ProgramCopyWorker::workerMain(){ } qDebug() << "File Copy Complete! SRC File Size = " << nTotalFileSize << "DEST File Size = " << nCpyFileSize; - if(QThread::currentThread()->isInterruptionRequested() || m_bRst == false){ + if(QThread::currentThread()->isInterruptionRequested() || bRst == false){ foreach(QString strinfo, m_arrSrcFileList){ QString filepath = strinfo.left(strinfo.indexOf(',',0)+1); QString destfiledir = strinfo.right(strinfo.size() - (strinfo.indexOf(',',0)+1)); @@ -253,6 +255,9 @@ FileProcessDlg::FileProcessDlg(QWidget *parent, ConfigType type, bool isDown) : this->setFocus(); ui->ctrBtnCancel->setFocus(); + m_bRst = true; + m_nCfgtype = type; + ui->ctrWjProcess->setMinimum(0); ui->ctrWjProcess->setMaximum(100); @@ -584,12 +589,71 @@ void FileProcessDlg::programDownload(){ } void FileProcessDlg::onProgressFinished(){ + QString strDescPath; + QString strZipCmd; + m_bRst = true; + QProcess process; + + FileProcessor::detectUSB(strDescPath); + + strZipCmd = QString("sh -c \"unzip -P 1234 %1/prime/prime.zip -d /prime\"").arg(strDescPath); + QFileInfo info(QString("%1/prime/prime.zip").arg(strDescPath)); + + + QDir cookbooksrc("/prime/cookbook"); + QDir cookBookback("/prime/cookbook_back"); + QDir multibooksrc("/prime/multi"); + QDir multibookback("/prime/multi_back"); + + qDebug() << info.absoluteFilePath(); + + if(m_nCfgtype == config_program_upload && m_bRst && info.exists()==true){ + if(cookbooksrc.exists()){ + if(cookBookback.exists()){ + process.start("sh -c \"rm -r /prime/cookbook_back\""); + process.waitForFinished(); + process.start("sync"); + process.waitForFinished(); + } + qDebug() << "cook book exists"; + process.start("sh -c \"mv /prime/cookbook /prime/cookbook_back\""); + process.waitForFinished(); + process.start("sync"); + process.waitForFinished(); + } + + if(multibooksrc.exists()){ + if(multibookback.exists()){ + process.start("sh -c \"rm -r /prime/multi_back\""); + process.waitForFinished(); + process.start("sync"); + process.waitForFinished(); + } + qDebug() << "multi book exists"; + process.start("sh -c \"mv /prime/multi /prime/multi_back\""); + process.waitForFinished(); + process.start("sync"); + process.waitForFinished(); + } + + qDebug() << "cook book upload"; + qDebug() << QTime::currentTime(); + + process.start(strZipCmd); + if(process.waitForFinished(120000)==false){ + ui->ctrLbRemainTime->setText("Cook book copy fail"); + } + process.start("sync"); + process.waitForFinished(); + qDebug() << QTime::currentTime(); + } ui->ctrLbRemainTime->setText(tr("완료")); QTimer::singleShot(1000,this, SLOT(close())); } void FileProcessDlg::onErrorFired(QString Desc) { + m_bRst = false; ui->ctrLbRemainTime->setText(QString("%1 %2").arg(Desc).arg(tr("에러 발생으로 종료합니다."))); //QTimer::singleShot(1000,this, SLOT(close())); } @@ -614,6 +678,9 @@ void FileProcessDlg::programUpload(){ QString strDescPath; QString strSrcPath; + + + if(FileProcessor::detectUSB(strSrcPath)){ worker.addSrcFile(QString("%1/prime/superdaemon,/prime").arg(strSrcPath)); worker.addSrcFile(QString("%1/prime/superdaemon.ini,/prime").arg(strSrcPath)); diff --git a/app/gui/oven_control/fileprocessdlg.h b/app/gui/oven_control/fileprocessdlg.h index e7a4841..31cbe32 100644 --- a/app/gui/oven_control/fileprocessdlg.h +++ b/app/gui/oven_control/fileprocessdlg.h @@ -82,6 +82,7 @@ private: ConfigType m_nCfgtype; QThread programCopyThd; ProgramCopyWorker worker; + bool m_bRst; }; #endif // FILEPROCESSDLG_H -- 2.1.4