Commit 1fe2b99730a943facd5b3769149f867587bb83f7
1 parent
7fa4fdb0e3
Exists in
master
and in
2 other branches
시스템 관리 기능 버그 수정
- 인포데이터 다운로드 버그 수정 - 서비스데이터 다운로드 버그 수정 - 기본 설정 다운로드 버그 수정 - 기본 설정 업로드 버그 수정
Showing
1 changed file
with
124 additions
and
10 deletions
Show diff stats
app/gui/oven_control/fileprocessdlg.cpp
1 | #include <QTimer> | 1 | #include <QTimer> |
2 | +#include <unistd.h> | ||
2 | #include "fileprocessdlg.h" | 3 | #include "fileprocessdlg.h" |
3 | #include "ui_fileprocessdlg.h" | 4 | #include "ui_fileprocessdlg.h" |
4 | #include "fileprocessor.h" | 5 | #include "fileprocessor.h" |
@@ -7,10 +8,11 @@ | @@ -7,10 +8,11 @@ | ||
7 | #include <QDebug> | 8 | #include <QDebug> |
8 | 9 | ||
9 | 10 | ||
10 | -#define ERROR_LOG_FILE_TOP "/GasErrorHistoryTop.log" | ||
11 | -#define ERROR_LOG_FILE_STEAM "/GasErrorHistorySteam.log" | ||
12 | -#define ERROR_LOG_FILE_BOTTOM "/GasErrorHistoryBottom.log" | ||
13 | -#define ERROR_LOG_FILE_TOTAL "/TotalError.log" | 11 | +#define ERROR_LOG_FILE_TOP "/GasErrorHistoryTop.csv" |
12 | +#define ERROR_LOG_FILE_STEAM "/GasErrorHistorySteam.csv" | ||
13 | +#define ERROR_LOG_FILE_BOTTOM "/GasErrorHistoryBottom.csv" | ||
14 | +#define ERROR_LOG_FILE_TOTAL "/TotalError.csv" | ||
15 | +#define SERVICE_DATA_FILE "/ServiceData.csv" | ||
14 | 16 | ||
15 | FileProcessDlg::FileProcessDlg(QWidget *parent, ConfigType type, bool isDown) : | 17 | FileProcessDlg::FileProcessDlg(QWidget *parent, ConfigType type, bool isDown) : |
16 | QDialog(parent), | 18 | QDialog(parent), |
@@ -254,6 +256,7 @@ void FileProcessDlg::infodataDownload(){ | @@ -254,6 +256,7 @@ void FileProcessDlg::infodataDownload(){ | ||
254 | saveHistoryLineData(out, erridx,firecntbuf,firsttimebuf,lasttimebuf);erridx++; | 256 | saveHistoryLineData(out, erridx,firecntbuf,firsttimebuf,lasttimebuf);erridx++; |
255 | file.close(); | 257 | file.close(); |
256 | } | 258 | } |
259 | + sync(); | ||
257 | ui->ctrWjProcess->setValue(100); | 260 | ui->ctrWjProcess->setValue(100); |
258 | ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); | 261 | ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); |
259 | QTimer::singleShot(1000,this,SLOT(close())); | 262 | QTimer::singleShot(1000,this,SLOT(close())); |
@@ -261,8 +264,85 @@ void FileProcessDlg::infodataDownload(){ | @@ -261,8 +264,85 @@ void FileProcessDlg::infodataDownload(){ | ||
261 | } | 264 | } |
262 | 265 | ||
263 | void FileProcessDlg::servicedataDownload(){ | 266 | void FileProcessDlg::servicedataDownload(){ |
267 | + QString strUsbPath; | ||
268 | + QString strHeader = "no,name,time\n"; | ||
269 | + QString strFile; | ||
270 | + QFile file; | ||
271 | + error_item *item; | ||
272 | + uint32_t timetemp, totaltime=0; | ||
273 | + int i = 1; | ||
274 | + OvenStatistics *ovs = OvenStatistics::getInstance(); | ||
275 | + if(FileProcessor::detectUSB(strUsbPath)){ | ||
276 | + strFile = strUsbPath + SERVICE_DATA_FILE; | ||
277 | + file.setFileName(strFile); | ||
278 | + if(file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)){ | ||
279 | + QTextStream out(&file); | ||
280 | + out.setCodec("UTF-8"); | ||
281 | + out<< strHeader; | ||
282 | + timetemp = ovs->srvdata->use_log.items.steam_heat/3600; | ||
283 | + out << i++ << tr(",Steam Heating Time,") << timetemp << "h\n"; | ||
284 | + timetemp = ovs->srvdata->use_log.items.dry_heat/3600; | ||
285 | + out << i++ << tr(",Hot Air Heating Time,") << timetemp << "h\n"; | ||
264 | 286 | ||
287 | + i=1;out<< strHeader; | ||
288 | + timetemp = ovs->srvdata->use_log.items.cook_dry_mode/3600; | ||
289 | + totaltime+= ovs->srvdata->use_log.items.cook_dry_mode; | ||
290 | + out << i++ << tr(",Hot Air Mode,") << timetemp << "h\n"; | ||
291 | + timetemp = ovs->srvdata->use_log.items.cook_steam_mode/3600; | ||
292 | + totaltime += ovs->srvdata->use_log.items.cook_steam_mode; | ||
293 | + out << i++ << tr(",Steam Mode,") << timetemp << "h\n"; | ||
294 | + timetemp = ovs->srvdata->use_log.items.cook_combi_mode/3600; | ||
295 | + totaltime += ovs->srvdata->use_log.items.cook_combi_mode; | ||
296 | + out << i++ << tr(",Combi Mode,") << timetemp << "h\n"; | ||
297 | + timetemp = ovs->srvdata->use_log.items.wash_mode_nocleanser/3600; | ||
298 | + totaltime += ovs->srvdata->use_log.items.wash_mode_nocleanser; | ||
299 | + out << i++ << tr(",세제없이 헹굼,").toUtf8() << timetemp << "h\n"; | ||
300 | + timetemp = ovs->srvdata->use_log.items.wash_mode_simple/3600; | ||
301 | + totaltime += ovs->srvdata->use_log.items.wash_mode_simple; | ||
302 | + out << i++ << tr(",간이세척,").toUtf8() << timetemp << "h\n"; | ||
303 | + timetemp = ovs->srvdata->use_log.items.wash_mode_standard/3600; | ||
304 | + totaltime += ovs->srvdata->use_log.items.wash_mode_standard; | ||
305 | + out << i++ << tr(",표준세척,").toUtf8() << timetemp << "h\n"; | ||
306 | + timetemp = ovs->srvdata->use_log.items.wash_mode_strong/3600; | ||
307 | + totaltime += ovs->srvdata->use_log.items.wash_mode_strong; | ||
308 | + out << i++ << tr(",강세척").toUtf8() << timetemp << "h\n"; | ||
309 | + timetemp = ovs->srvdata->use_log.items.wash_mode_speed/3600; | ||
310 | + totaltime +=ovs->srvdata->use_log.items.wash_mode_speed; | ||
311 | + out << i++ << tr(",고속세척,").toUtf8() << timetemp << "h\n"; | ||
312 | + timetemp = ovs->srvdata->use_log.items.cooldown_mode/3600; | ||
313 | + totaltime += ovs->srvdata->use_log.items.cooldown_mode; | ||
314 | + out << i++ << tr(",쿨다운,").toUtf8() << timetemp << "h\n"; | ||
315 | + timetemp = totaltime/3600; | ||
316 | + out << i++ << tr(",전체작동시간,").toUtf8() << timetemp << "h\n"; | ||
265 | 317 | ||
318 | + i=1;out<< strHeader; | ||
319 | + timetemp = ovs->srvdata->use_log.items.door_open/60; | ||
320 | + out << i++ << tr(",도어 Open,").toUtf8() << timetemp << "min\n"; | ||
321 | + timetemp = ovs->srvdata->use_log.items.dv_open/60; | ||
322 | + out << i++ << tr(",볼밸브 Open,").toUtf8() << timetemp << "min\n"; | ||
323 | + timetemp = ovs->srvdata->use_log.items.ssv_open/60; | ||
324 | + out << i++ << tr(",S/G 급수 솔레노이드,").toUtf8() << timetemp << "min\n"; | ||
325 | + timetemp = ovs->srvdata->use_log.items.qnv_open/60; | ||
326 | + out << i++ << tr(",퀀칭 솔레노이드,").toUtf8() << timetemp << "min\n"; | ||
327 | + timetemp = ovs->srvdata->use_log.items.snv_open/60; | ||
328 | + out << i++ << tr(",고내살수 노즐 솔레노이드 ,").toUtf8() << timetemp << "min\n"; | ||
329 | + timetemp = 0; | ||
330 | + out << i++ << tr(",호스릴 솔레노이드,").toUtf8() << timetemp << "min\n"; | ||
331 | + timetemp = ovs->srvdata->use_log.items.ssp_open/60; | ||
332 | + out << i++ << tr(",세제공급장치,").toUtf8() << timetemp << "min\n"; | ||
333 | + timetemp = ovs->srvdata->use_log.items.hdm_open/60; | ||
334 | + out << i++ << tr(",배습댐퍼,").toUtf8() << timetemp << "min\n"; | ||
335 | + timetemp = ovs->srvdata->use_log.items.dp_open/60; | ||
336 | + out << i++ << tr(",소형펌프모터,").toUtf8() << timetemp << "min\n"; | ||
337 | + timetemp = ovs->srvdata->use_log.items.unp_open/60; | ||
338 | + out << i++ << tr(",중형펌프모터,").toUtf8() << timetemp << "min\n"; | ||
339 | + ui->ctrWjProcess->setValue(100); | ||
340 | + ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); | ||
341 | + file.close(); | ||
342 | + sync(); | ||
343 | + QTimer::singleShot(1000,this,SLOT(close())); | ||
344 | + } | ||
345 | + } | ||
266 | } | 346 | } |
267 | 347 | ||
268 | void FileProcessDlg::programDownload(){ | 348 | void FileProcessDlg::programDownload(){ |
@@ -278,44 +358,78 @@ void FileProcessDlg::configDownload(){ | @@ -278,44 +358,78 @@ void FileProcessDlg::configDownload(){ | ||
278 | if(FileProcessor::detectUSB(strUsbPath)){ | 358 | if(FileProcessor::detectUSB(strUsbPath)){ |
279 | strUsbPath.append("/config.ini"); | 359 | strUsbPath.append("/config.ini"); |
280 | qDebug() << strUsbPath; | 360 | qDebug() << strUsbPath; |
361 | + QFile file; | ||
362 | + file.setFileName(strUsbPath); | ||
363 | + if(file.exists()) file.remove(); | ||
281 | if(QFile::copy("/prime/config/config.ini", strUsbPath)){ | 364 | if(QFile::copy("/prime/config/config.ini", strUsbPath)){ |
365 | + sync(); | ||
366 | + ui->ctrWjProcess->setValue(50); | ||
367 | + ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 1초")); | ||
368 | + } | ||
369 | + else{ | ||
370 | + ui->ctrLbRemainTime->setText(tr("설정 다운로드에 실패하였습니다.")); | ||
371 | + QTimer::singleShot(1000,this,SLOT(close())); | ||
372 | + return; | ||
373 | + } | ||
374 | + strUsbPath.replace("/config.ini","/favorite.ini"); | ||
375 | + file.setFileName(strUsbPath); | ||
376 | + if(file.exists()) file.remove(); | ||
377 | + if(QFile::copy("/prime/config/favorite.ini", strUsbPath)){ | ||
378 | + sync(); | ||
282 | ui->ctrWjProcess->setValue(100); | 379 | ui->ctrWjProcess->setValue(100); |
283 | ui->ctrLbRemainTime->setText("남은 예상 시간 : 0초"); | 380 | ui->ctrLbRemainTime->setText("남은 예상 시간 : 0초"); |
284 | ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); | 381 | ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); |
285 | QTimer::singleShot(1000,this,SLOT(close())); | 382 | QTimer::singleShot(1000,this,SLOT(close())); |
286 | } | 383 | } |
287 | else{ | 384 | else{ |
288 | - ui->ctrLbRemainTime->setText(tr("다운로드에 실패하였습니다.")); | 385 | + ui->ctrLbRemainTime->setText(tr("즐겨찾기 다운로드에 실패하였습니다.")); |
289 | QTimer::singleShot(1000,this,SLOT(close())); | 386 | QTimer::singleShot(1000,this,SLOT(close())); |
290 | } | 387 | } |
291 | } | 388 | } |
292 | else{ | 389 | else{ |
293 | - ui->ctrLbRemainTime->setText(tr("다운로드에 실패하였습니다.")); | 390 | + ui->ctrLbRemainTime->setText(tr("USB 인식을 실패하였습니다.")); |
294 | QTimer::singleShot(1000,this,SLOT(close())); | 391 | QTimer::singleShot(1000,this,SLOT(close())); |
295 | } | 392 | } |
296 | } | 393 | } |
297 | 394 | ||
298 | void FileProcessDlg::configUpload(){ | 395 | void FileProcessDlg::configUpload(){ |
299 | QString strUsbPath; | 396 | QString strUsbPath; |
397 | + Config *cfg = Config::getInstance(); | ||
300 | if(FileProcessor::detectUSB(strUsbPath)){ | 398 | if(FileProcessor::detectUSB(strUsbPath)){ |
301 | strUsbPath.append("/config.ini"); | 399 | strUsbPath.append("/config.ini"); |
302 | qDebug() << strUsbPath; | 400 | qDebug() << strUsbPath; |
303 | QFile file("/prime/config/config.ini"); | 401 | QFile file("/prime/config/config.ini"); |
304 | file.remove(); | 402 | file.remove(); |
305 | if(QFile::copy( strUsbPath , "/prime/config/config.ini")){ | 403 | if(QFile::copy( strUsbPath , "/prime/config/config.ini")){ |
306 | - OvenStatistics* ovs = OvenStatistics::getInstance(); | ||
307 | - ovs->srvdata->loadServiceData(); | 404 | + sync(); |
405 | + cfg->loadConfig(); | ||
406 | + cfg->applyConfig(); | ||
407 | + ui->ctrWjProcess->setValue(50); | ||
408 | + ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 1초")); | ||
409 | + } | ||
410 | + else{ | ||
411 | + ui->ctrLbRemainTime->setText(tr("설정 업로드에 실패하였습니다.")); | ||
412 | + QTimer::singleShot(1000,this,SLOT(close())); | ||
413 | + return; | ||
414 | + } | ||
415 | + QFile file2("/prime/config/favorite.ini"); | ||
416 | + file2.remove(); | ||
417 | + strUsbPath.replace("/config.ini", "/favorite.ini"); | ||
418 | + qDebug() << strUsbPath; | ||
419 | + if(QFile::copy( strUsbPath , "/prime/config/favorite.ini")){ | ||
420 | + sync(); | ||
421 | + cfg->loadFavorite(); | ||
308 | ui->ctrWjProcess->setValue(100); | 422 | ui->ctrWjProcess->setValue(100); |
309 | ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); | 423 | ui->ctrLbRemainTime->setText(tr("남은 예상 시간 : 완료")); |
310 | QTimer::singleShot(1000,this,SLOT(close())); | 424 | QTimer::singleShot(1000,this,SLOT(close())); |
311 | } | 425 | } |
312 | else{ | 426 | else{ |
313 | - ui->ctrLbRemainTime->setText(tr("업로드에 실패하였습니다.")); | 427 | + ui->ctrLbRemainTime->setText(tr("즐겨찾기 업로드에 실패하였습니다.")); |
314 | QTimer::singleShot(1000,this,SLOT(close())); | 428 | QTimer::singleShot(1000,this,SLOT(close())); |
315 | } | 429 | } |
316 | } | 430 | } |
317 | else{ | 431 | else{ |
318 | - ui->ctrLbRemainTime->setText(tr("업로드에 실패하였습니다.")); | 432 | + ui->ctrLbRemainTime->setText(tr("USB 인식을 실패하였습니다.")); |
319 | QTimer::singleShot(1000,this,SLOT(close())); | 433 | QTimer::singleShot(1000,this,SLOT(close())); |
320 | } | 434 | } |
321 | } | 435 | } |