diff --git a/app/gui/oven_control/engineermenuwindow.cpp b/app/gui/oven_control/engineermenuwindow.cpp index 7a73ed3..cb71113 100644 --- a/app/gui/oven_control/engineermenuwindow.cpp +++ b/app/gui/oven_control/engineermenuwindow.cpp @@ -1,5 +1,8 @@ #include "engineermenuwindow.h" #include "ui_engineermenuwindow.h" +#include "servicehistorymain.h" +#include "operationtimemain.h" +#include "realtimemain.h" engineermenuwindow::engineermenuwindow(QWidget *parent) : QMainWindow(parent), @@ -17,3 +20,24 @@ engineermenuwindow::~engineermenuwindow() { delete ui; } + +void engineermenuwindow::on_servicehistorybutton_clicked() +{ + serviceHistoryMain *w = new serviceHistoryMain(this); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void engineermenuwindow::on_operationtimebutton_clicked() +{ + operationTimeMain *w = new operationTimeMain(this); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void engineermenuwindow::on_realdatabutton_clicked() +{ + realtimeMain* w = new realtimeMain(this); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} diff --git a/app/gui/oven_control/engineermenuwindow.h b/app/gui/oven_control/engineermenuwindow.h index b16f144..2506a5a 100644 --- a/app/gui/oven_control/engineermenuwindow.h +++ b/app/gui/oven_control/engineermenuwindow.h @@ -15,6 +15,13 @@ public: explicit engineermenuwindow(QWidget *parent = 0); ~engineermenuwindow(); +private slots: + void on_servicehistorybutton_clicked(); + + void on_operationtimebutton_clicked(); + + void on_realdatabutton_clicked(); + private: Ui::engineermenuwindow *ui; }; diff --git a/app/gui/oven_control/engineermenuwindow.ui b/app/gui/oven_control/engineermenuwindow.ui index 7d27fab..287973c 100644 --- a/app/gui/oven_control/engineermenuwindow.ui +++ b/app/gui/oven_control/engineermenuwindow.ui @@ -56,49 +56,15 @@ 84 - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic 11 + + color: rgb(255, 255, 255); + 서비스단계(엔지니어모드) @@ -157,70 +123,6 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - - 190 - 190 - 190 - - - - - - Roboto @@ -231,11 +133,9 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } - QPushButton { border-image: url(:/images/config/pannel.png); } + QPushButton { border-image: url(:/images/config/pannel.png); color: rgb(255, 255, 255);} QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } QPushButton { text-align: left;} - - @@ -248,43 +148,6 @@ QPushButton { text-align: left;} true - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic @@ -293,6 +156,9 @@ QPushButton { text-align: left;} true + + color: rgb(255, 255, 255); + EM-1 @@ -327,70 +193,6 @@ QPushButton { text-align: left;} 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - - 190 - 190 - 190 - - - - - - Roboto @@ -401,7 +203,7 @@ QPushButton { text-align: left;} - QPushButton { border-image: url(:/images/config/pannel.png); } + QPushButton { border-image: url(:/images/config/pannel.png); color: rgb(255, 255, 255);} QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } QPushButton { text-align: left;} @@ -415,43 +217,6 @@ QPushButton { text-align: left;} true - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic @@ -460,6 +225,9 @@ QPushButton { text-align: left;} true + + color: rgb(255, 255, 255); + EM-2 @@ -494,70 +262,6 @@ QPushButton { text-align: left;} 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - - 190 - 190 - 190 - - - - - - Roboto @@ -570,7 +274,7 @@ QPushButton { text-align: left;} QPushButton { border-image: url(:/images/config/pannel.png); } QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } -QPushButton { text-align: left;} +QPushButton { color: rgb(255, 255, 255);text-align: left;} 기능테스트 @@ -582,43 +286,6 @@ QPushButton { text-align: left;} true - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic @@ -627,6 +294,9 @@ QPushButton { text-align: left;} true + + color: rgb(255, 255, 255); + EM-3 @@ -661,70 +331,6 @@ QPushButton { text-align: left;} 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - - 190 - 190 - 190 - - - - - - Roboto @@ -737,7 +343,7 @@ QPushButton { text-align: left;} QPushButton { border-image: url(:/images/config/pannel.png); } QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } -QPushButton { text-align: left;} +QPushButton {color: rgb(255, 255, 255); text-align: left;} 서비스기록 @@ -749,43 +355,6 @@ QPushButton { text-align: left;} true - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic @@ -794,6 +363,9 @@ QPushButton { text-align: left;} true + + color: rgb(255, 255, 255); + EM-4 @@ -828,70 +400,6 @@ QPushButton { text-align: left;} 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - - 190 - 190 - 190 - - - - - - Roboto @@ -903,7 +411,7 @@ QPushButton { text-align: left;} QPushButton { border-image: url(:/images/config/pannel.png); } -QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { text-align: left;} +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { color: rgb(255, 255, 255);text-align: left;} 실시간데이터 @@ -915,43 +423,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu true - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic @@ -960,6 +431,9 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu true + + color: rgb(255, 255, 255); + EM-5 @@ -994,70 +468,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - - 190 - 190 - 190 - - - - - - Roboto @@ -1069,7 +479,7 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu QPushButton { border-image: url(:/images/config/pannel.png); } -QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { text-align: left;} +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { color: rgb(255, 255, 255);text-align: left;} 작동시간 @@ -1081,43 +491,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu true - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic @@ -1126,6 +499,9 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu true + + color: rgb(255, 255, 255); + EM-6 @@ -1160,70 +536,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu 0 - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 0 - 0 - 0 - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - - 190 - 190 - 190 - - - - - - Roboto @@ -1236,7 +548,7 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu QPushButton { border-image: url(:/images/config/pannel.png); } QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } -QPushButton { text-align: left;} +QPushButton { color: rgb(255, 255, 255);text-align: left;} 제품모델설정 @@ -1248,43 +560,6 @@ QPushButton { text-align: left;} true - - - - - - - 255 - 255 - 255 - - - - - - - - - 255 - 255 - 255 - - - - - - - - - 190 - 190 - 190 - - - - - - Malgun Gothic @@ -1293,6 +568,9 @@ QPushButton { text-align: left;} true + + color: rgb(255, 255, 255); + EM-7 diff --git a/app/gui/oven_control/historylistwindow.cpp b/app/gui/oven_control/historylistwindow.cpp new file mode 100644 index 0000000..a627484 --- /dev/null +++ b/app/gui/oven_control/historylistwindow.cpp @@ -0,0 +1,361 @@ +#include +#include +#include +#include +#include "historylistwindow.h" +#include "ui_historylistwindow.h" +#include "leftitemlinedelegate.h" +#include "ovenstatics.h" + + + +historyListWindow::historyListWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::historyListWindow) +{ + ui->setupUi(this); + + m_ctrlErrorNameLabel = ui->ctrlLabelErrPartName; + + m_ctrlFirstTimeLabels[0] = ui->ctrlLabelStarTime_1; + m_ctrlFirstTimeLabels[1] = ui->ctrlLabelStarTime_2; + m_ctrlFirstTimeLabels[2] = ui->ctrlLabelStarTime_3; + m_ctrlFirstTimeLabels[3] = ui->ctrlLabelStarTime_4; + m_ctrlFirstTimeLabels[4] = ui->ctrlLabelStarTime_5; + m_ctrlFirstTimeLabels[5] = ui->ctrlLabelStarTime_6; + m_ctrlFirstTimeLabels[6] = ui->ctrlLabelStarTime_7; + m_ctrlFirstTimeLabels[7] = ui->ctrlLabelStarTime_8; + m_ctrlFirstTimeLabels[8] = ui->ctrlLabelStarTime_9; + m_ctrlFirstTimeLabels[9] = ui->ctrlLabelStarTime_10; + + m_ctrlLastTimeLabels[0] = ui->ctrlLabelLastTime_1; + m_ctrlLastTimeLabels[1] = ui->ctrlLabelLastTime_2; + m_ctrlLastTimeLabels[2] = ui->ctrlLabelLastTime_3; + m_ctrlLastTimeLabels[3] = ui->ctrlLabelLastTime_4; + m_ctrlLastTimeLabels[4] = ui->ctrlLabelLastTime_5; + m_ctrlLastTimeLabels[5] = ui->ctrlLabelLastTime_6; + m_ctrlLastTimeLabels[6] = ui->ctrlLabelLastTime_7; + m_ctrlLastTimeLabels[7] = ui->ctrlLabelLastTime_8; + m_ctrlLastTimeLabels[8] = ui->ctrlLabelLastTime_9; + m_ctrlLastTimeLabels[9] = ui->ctrlLabelLastTime_10; + + m_ctrlCountLabels[0] = ui->ctrlLabelCount_1; + m_ctrlCountLabels[1] = ui->ctrlLabelCount_2; + m_ctrlCountLabels[2] = ui->ctrlLabelCount_3; + m_ctrlCountLabels[3] = ui->ctrlLabelCount_4; + m_ctrlCountLabels[4] = ui->ctrlLabelCount_5; + m_ctrlCountLabels[5] = ui->ctrlLabelCount_6; + m_ctrlCountLabels[6] = ui->ctrlLabelCount_7; + m_ctrlCountLabels[7] = ui->ctrlLabelCount_8; + m_ctrlCountLabels[8] = ui->ctrlLabelCount_9; + m_ctrlCountLabels[9] = ui->ctrlLabelCount_10; + + m_ctrlErrBtns[0] = ui->ctrlBtnErr01; + m_ctrlErrBtns[1] = ui->ctrlBtnErr02; + m_ctrlErrBtns[2] = ui->ctrlBtnErr03; + m_ctrlErrBtns[3] = ui->ctrlBtnErr04; + m_ctrlErrBtns[4] = ui->ctrlBtnErr05; + m_ctrlErrBtns[5] = ui->ctrlBtnErr06; + m_ctrlErrBtns[6] = ui->ctrlBtnErr07; + m_ctrlErrBtns[7] = ui->ctrlBtnErr08; + m_ctrlErrBtns[8] = ui->ctrlBtnErr09; + m_ctrlErrBtns[9] = ui->ctrlBtnErr10; + + m_bDataInitCplt = false; + m_nWindowType = ERROR_HISTORY_UPPERBUNNER; +} + +historyListWindow::~historyListWindow() +{ + delete ui; +} + +void historyListWindow::on_ctrlBtnBack_clicked() +{ + deleteLater(); +} + +void historyListWindow::reloadDataset(void){ + int i = 0; + QString strPrefix = tr("에러"); + QString strTemp = ""; + char strTime[64]; + error_item *item; + struct tm *timeptr; + + + for(i=0;ifirst_fired==0){ + strTemp = strPrefix + strTemp.sprintf("%d",m_nCurDpStartPos+i+1); + m_ctrlErrBtns[i]->setText(strTemp); + m_ctrlCountLabels[i] ->setText("0"); + m_ctrlFirstTimeLabels[i]->setText("-"); + m_ctrlLastTimeLabels[i]->setText("-"); + } + else{ + strTemp = strPrefix + strTemp.sprintf("%d",m_nCurDpStartPos+i+1); + item = err_items[m_nCurDpStartPos+i]; + m_ctrlErrBtns[i]->setText(strTemp); + m_ctrlCountLabels[i] ->setText(strTemp.sprintf("%d",item->fired_cnt)); + timeptr = gmtime(&(item->first_fired)); + strftime(strTime,64,"%y-%m-%d %H:%M:%S",timeptr); + m_ctrlFirstTimeLabels[i]->setText(strTime); + timeptr = gmtime(&(item->last_fried)); + strftime(strTime,64,"%y-%m-%d %H:%M:%S",timeptr); + m_ctrlLastTimeLabels[i]->setText(strTime); + } + } + else{ + strTemp = strPrefix + strTemp.sprintf("%d",m_nCurDpStartPos+ i +1); + m_ctrlErrBtns[i]->setText(strTemp); + m_ctrlCountLabels[i] ->setText("-"); + m_ctrlFirstTimeLabels[i]->setText("-"); + m_ctrlLastTimeLabels[i]->setText("-"); + } + } +} + +void historyListWindow::setUpperBunnerDataSet(void){ + OvenStatics *ovenst = OvenStatics::getInstance(); + m_nCurDpStartPos = 0; + m_nCurSelPos = 0; + int i = 0; + if(ovenst != NULL){ + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>"); + strName.append(tr(m_strWindowName[ERROR_HISTORY_UPPERBUNNER ])); + m_ctrlErrorNameLabel->setText(strName); + for(i=0;isrvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_UPPERBUNNER][i]]); + } + reloadDataset(); + } +} + +void historyListWindow::setSteamBunnerDataSet(void){ + OvenStatics *ovenst = OvenStatics::getInstance(); + m_nCurDpStartPos = 0; + m_nCurSelPos = 0; + int i = 0; + if(ovenst != NULL){ + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>"); + strName.append(tr(m_strWindowName[ERROR_HISTORY_STEAMBUNNER ])); + m_ctrlErrorNameLabel->setText(strName); + for(i=0;isrvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_STEAMBUNNER][i]]); + } + reloadDataset(); + } +} + +void historyListWindow::setLowerBunnerDataSet(void){ + OvenStatics *ovenst = OvenStatics::getInstance(); + m_nCurDpStartPos = 0; + m_nCurSelPos = 0; + int i = 0; + if(ovenst != NULL){ + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>"); + strName.append(tr(m_strWindowName[ERROR_HISTORY_LOWERBUNNER ])); + m_ctrlErrorNameLabel->setText(strName); + for(i=0;isrvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_LOWERBUNNER][i]]); + } + reloadDataset(); + } +} + +void historyListWindow::setTotalServiceDataSet(void){ + int i = 0; + error_item *item; + time_t firsttimebuf=0,lasttimebuf=0; + uint16_t firecntbuf=0; + OvenStatics *ovenst = OvenStatics::getInstance(); + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>"); + strName.append(tr(m_strWindowName[ERROR_HISTORY_TOTAL ])); + m_ctrlErrorNameLabel->setText(strName); + //01 상부 점화 장치 데이터 초기화 + for(i=0;isrvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_UPPERBUNNER][i]]); + if(i==0) {firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;} + else{ + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired; + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried; + firecntbuf += item->fired_cnt; + } + + } + total_items[0].fired_cnt = firecntbuf; + total_items[0].first_fired = firsttimebuf; + total_items[0].last_fried = lasttimebuf; + + //02 스팀 점화 장치 데이터 초기화 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + for(i=0;isrvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_STEAMBUNNER][i]]); + if(i==0) {firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;} + else{ + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired; + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried; + firecntbuf += item->fired_cnt; + } + } + total_items[1].fired_cnt = firecntbuf; + total_items[1].first_fired = firsttimebuf; + total_items[1].last_fried = lasttimebuf; + //03 하부 점화 장치 데이터 초기화 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + for(i=0;isrvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_LOWERBUNNER][i]]); + if(i==0) {firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;} + else{ + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired; + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried; + firecntbuf += item->fired_cnt; + } + } + total_items[2].fired_cnt = firecntbuf; + total_items[2].first_fired = firsttimebuf; + total_items[2].last_fried = lasttimebuf; + + //04 WATER + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.inner_temp_fail); + firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + item = &(ovenst->srvdatas->err_log.items.qunching_temp_fail); + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired; + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried; + firecntbuf += item->fired_cnt; + total_items[3].fired_cnt = firecntbuf; + total_items[3].first_fired = firsttimebuf; + total_items[3].last_fried = lasttimebuf; + + //05 구성품 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + total_items[4].fired_cnt = 0; + total_items[4].first_fired = 0; + total_items[4].last_fried = 0; + + //06 중복 에러 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.repeat_error); + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + total_items[5].fired_cnt = firecntbuf; + total_items[5].first_fired = firsttimebuf; + total_items[5].last_fried = lasttimebuf; + + //07 B1 센서 에러 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.inner_temp_high_alarm); + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + total_items[6].fired_cnt = firecntbuf; + total_items[6].first_fired = firsttimebuf; + total_items[6].last_fried = lasttimebuf; + + //08 B2 센서 에러 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.qunching_temp_high_alarm); + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + total_items[7].fired_cnt = firecntbuf; + total_items[7].first_fired = firsttimebuf; + total_items[7].last_fried = lasttimebuf; + + //09 B3 센서 에러 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.meatprove_temp1_high_alarm); + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + total_items[8].fired_cnt = firecntbuf; + total_items[8].first_fired = firsttimebuf; + total_items[8].last_fried = lasttimebuf; + + //10 B4 센서 에러 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.wall_temp1_high_alarm); + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + total_items[9].fired_cnt = firecntbuf; + total_items[9].first_fired = firsttimebuf; + total_items[9].last_fried = lasttimebuf; + + //11 B5 센서 에러 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.steam_gen_temp_high_alram); + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + total_items[10].fired_cnt = firecntbuf; + total_items[10].first_fired = firsttimebuf; + total_items[10].last_fried = lasttimebuf; + + //12 수위센 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0; + item = &(ovenst->srvdatas->err_log.items.water_level_sensor_fail); + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt; + total_items[11].fired_cnt = firecntbuf; + total_items[11].first_fired = firsttimebuf; + total_items[11].last_fried = lasttimebuf; + + + for(i=0;i<20;i++){ + err_items[i] = &total_items[i]; + } + reloadDataset(); +} + +void historyListWindow::setWindosDataSet(ERROR_HISTORY_TYPE type){ + switch((uint16_t)type){ + case ERROR_HISTORY_UPPERBUNNER: + m_nWindowType = ERROR_HISTORY_UPPERBUNNER; + setUpperBunnerDataSet(); + break; + case ERROR_HISTORY_STEAMBUNNER: + m_nWindowType = ERROR_HISTORY_STEAMBUNNER; + setSteamBunnerDataSet(); + break; + case ERROR_HISTORY_LOWERBUNNER: + m_nWindowType = ERROR_HISTORY_LOWERBUNNER; + setLowerBunnerDataSet(); + break; + case ERROR_HISTORY_TOTAL: + m_nWindowType = ERROR_HISTORY_TOTAL; + setTotalServiceDataSet(); + break; + } +} + +void historyListWindow::on_ctrlBackBtn_clicked() +{ + OvenStatics* ovenst = OvenStatics::getInstance(); + time_t ltime; + ltime = time(NULL); + ovenst->srvdatas->err_log.items.upper_fire_fail.fired_cnt++; + if(ovenst->srvdatas->err_log.items.upper_fire_fail.first_fired ==0) ovenst->srvdatas->err_log.items.upper_fire_fail.first_fired = ltime; + ovenst->srvdatas->err_log.items.upper_fire_fail.last_fried = ltime; + deleteLater(); +} + +void historyListWindow::on_ctrlUpBtn_clicked() +{ + if(m_nCurDpStartPos == 8 && m_arrErrorMaxIdx[m_nWindowType] > 8 ){ + m_nCurDpStartPos = 0; + reloadDataset(); + } +} + +void historyListWindow::on_ctrflDownBtn_clicked() +{ + if(m_nCurDpStartPos == 0 && m_arrErrorMaxIdx[m_nWindowType] > 8){ + m_nCurDpStartPos = 8; + reloadDataset(); + } +} + +void historyListWindow::on_ctrlResetBtn_clicked() +{ + int i = 0; + OvenStatics *ovenst = OvenStatics::getInstance(); + for(i=0;isrvdatas->err_log.values[i].fired_cnt = 0; + ovenst->srvdatas->err_log.values[i].first_fired = 0; + ovenst->srvdatas->err_log.values[i].last_fried = 0; + } + ovenst->srvdatas->saveServiceDatas(); + setWindosDataSet(m_nWindowType); + +} diff --git a/app/gui/oven_control/historylistwindow.h b/app/gui/oven_control/historylistwindow.h new file mode 100644 index 0000000..923f40b --- /dev/null +++ b/app/gui/oven_control/historylistwindow.h @@ -0,0 +1,82 @@ +#ifndef HISTORYLISTWINDOW_H +#define HISTORYLISTWINDOW_H + +#include +#include +#include "servicedatas.h" +#include + +namespace Ui { +class historyListWindow; +} + +#define MAX_DISP_ITEM 10 + +enum ERROR_HISTORY_TYPE{ + ERROR_HISTORY_UPPERBUNNER=0, + ERROR_HISTORY_STEAMBUNNER, + ERROR_HISTORY_LOWERBUNNER, + ERROR_HISTORY_TOTAL +}; + + + +class historyListWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit historyListWindow(QWidget *parent = 0); + ~historyListWindow(); + void setWindosDataSet(ERROR_HISTORY_TYPE type); + +private slots: + void on_ctrlBtnBack_clicked(); + + void on_ctrlBackBtn_clicked(); + + void on_ctrlUpBtn_clicked(); + + void on_ctrflDownBtn_clicked(); + + void on_ctrlResetBtn_clicked(); + +private: + Ui::historyListWindow *ui; + + const uint8_t m_arrErrorMaxIdx[4] = {3,4,3,12}; + + const char m_strWindowName[4][64] = {"상부점화장치\0", + "스팀점화장치\0","하부점화장치\0","서비스에러기록종합\0"}; + const uint16_t m_arrErrorIdxs[3][20] = { //서비스 에러 기록 종합은 합산 + {ERROR_IDX_upper_fire_fail,ERROR_IDX_upper_pan_fail,ERROR_IDX_upper_motor_fail}, + {ERROR_IDX_steam_fire_fail,ERROR_IDX_steam_pan_fail,ERROR_IDX_water_level_sensor_fail,ERROR_IDX_steam_gen_temp_high_alram}, + {ERROR_IDX_lower_fire_fail,ERROR_IDX_lower_pan_fail,ERROR_IDX_lower_motor_fail} + }; + + QLabel* m_ctrlFirstTimeLabels[10]; + QLabel* m_ctrlCountLabels[10]; + QLabel* m_ctrlLastTimeLabels[10]; + QLabel* m_ctrlErrorNameLabel; + QPushButton* m_ctrlErrBtns[10]; + error_item *err_items[20]; + error_item total_items[20]; //for 서비스 에러 기록 종합 + + + ERROR_HISTORY_TYPE m_nWindowType; + uint16_t m_nCurDpStartPos = 0; + uint16_t m_nCurSelPos = 0; + + + + bool m_bDataInitCplt; + +private: + void setUpperBunnerDataSet(void); + void setSteamBunnerDataSet(void); + void setLowerBunnerDataSet(void); + void setTotalServiceDataSet(void); + void reloadDataset(void); +}; + +#endif // HISTORYLISTWINDOW_H diff --git a/app/gui/oven_control/historylistwindow.ui b/app/gui/oven_control/historylistwindow.ui new file mode 100644 index 0000000..60901e7 --- /dev/null +++ b/app/gui/oven_control/historylistwindow.ui @@ -0,0 +1,1400 @@ + + + historyListWindow + + + + 0 + 0 + 900 + 1600 + + + + + 0 + 0 + + + + MainWindow + + + QLabel[style = "info"]{font-size : 8pt} + + + + #centralwidget2 { background-image: url(:/images/config/service/service_grid_background.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } + + + + + +QScrollBar:vertical { + border: 2px solid grey; + background: #32CC99; + width: 30px; + margin: 22px 0 22px 0; + } +#ctrlHistoryTable QScrollBar::handle:vertical { + background: white; + min-height: 20px; + } + +#tableWidget QScrollBar::handle:vertical { + background: yellow; + height: 50px; + width :30px; + } + +QScrollBar::add-line:vertical { + border: 2px solid grey; + background: #32CC99; + height: 20px; + subcontrol-position: bottom; + subcontrol-origin: margin; + } + +QScrollBar::sub-line:vertical { + border: 2px solid grey; + background: #32CC99; + height: 20px; + subcontrol-position: top; + subcontrol-origin: margin; + } +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical { + border: 2px solid grey; + width: 3px; + height: 3px; + background: white; + } + +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { + background: none; + } + + + + + 0 + 1450 + 900 + 150 + + + + + + 228 + 27 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + 343 + 27 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/006_sys_icon_12.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/006_sys_icon_12_ov.png); } + + + + + + + + + 458 + 27 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/006_sys_icon_13.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/006_sys_icon_13_ov.png); } + + + + + + + + + 573 + 27 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/006_sys_icon_14.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/006_sys_icon_14_ov.png); } + + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 1600 + 84 + + + + + 8 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 서비스기록 > + + + info + + + + + + 40 + 540 + 151 + 61 + + + + + 8 + + + + color: rgb(255, 255, 255); + + + 목록 + + + Qt::AlignCenter + + + + + + 200 + 530 + 231 + 71 + + + + + 8 + + + + color: rgb(255, 255, 255); + + + 최초발생시간 + + + Qt::AlignCenter + + + + + + 430 + 530 + 121 + 71 + + + + + 8 + + + + color: rgb(255, 255, 255); + + + 발생횟수 + + + Qt::AlignCenter + + + + + + 550 + 530 + 291 + 71 + + + + + 8 + + + + color: rgb(255, 255, 255); + + + 최근발생시간 + + + Qt::AlignCenter + + + + + + 38 + 620 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러01 + + + + + + 38 + 717 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러02 + + + + + + 38 + 814 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러03 + + + + + + 38 + 911 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러04 + + + + + + 37 + 1008 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러05 + + + + + + 37 + 1105 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러06 + + + + + + 37 + 1202 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러07 + + + + + + 37 + 1299 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러08 + + + + + + 37 + 1396 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러09 + + + + + + 37 + 1493 + 148 + 64 + + + + + 0 + 0 + + + + + 10 + 50 + false + + + + QPushButton {border-image: url(:/images/button/152.png);} +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);} +QPushButton { text-align:center;} + + + 에러10 + + + + + + 200 + 599 + 231 + 101 + + + + + 나눔고딕 + 8 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 697 + 231 + 101 + + + + + 나눔고딕 + 8 + 75 + true + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 795 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 891 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 988 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 1086 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 1184 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 1280 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 1377 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 200 + 1474 + 231 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 696 + 111 + 101 + + + + + 나눔고딕 + 8 + 75 + true + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 794 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 598 + 111 + 101 + + + + + 나눔고딕 + 8 + 50 + false + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 890 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 1085 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 1183 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 1376 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 1473 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 1279 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 433 + 987 + 111 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 698 + 290 + 101 + + + + + 나눔고딕 + 8 + 50 + false + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 796 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 600 + 290 + 101 + + + + + 나눔고딕 + 8 + 50 + false + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 892 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 1087 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 1185 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 1378 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 1475 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 1281 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + + + + 549 + 989 + 290 + 101 + + + + color: rgb(255, 255, 255); + + + - + + + Qt::AlignCenter + + + info + + + ctrlLabelLastTime_10 + ctrlLabelCount_10 + ctrlLabelStarTime_10 + ctrlBtnErr10 + upperStack + ctrlLabelErrPartName + label + label_2 + label_3 + label_4 + ctrlBtnErr01 + ctrlBtnErr02 + ctrlBtnErr03 + ctrlBtnErr04 + ctrlBtnErr05 + ctrlBtnErr06 + ctrlBtnErr07 + ctrlBtnErr08 + ctrlBtnErr09 + ctrlLabelStarTime_1 + ctrlLabelStarTime_2 + ctrlLabelStarTime_3 + ctrlLabelStarTime_4 + ctrlLabelStarTime_5 + ctrlLabelStarTime_6 + ctrlLabelStarTime_7 + ctrlLabelStarTime_8 + ctrlLabelStarTime_9 + bottomBar + ctrlLabelCount_2 + ctrlLabelCount_3 + ctrlLabelCount_1 + ctrlLabelCount_4 + ctrlLabelCount_6 + ctrlLabelCount_7 + ctrlLabelCount_9 + ctrlLabelCount_8 + ctrlLabelCount_5 + ctrlLabelLastTime_2 + ctrlLabelLastTime_3 + ctrlLabelLastTime_1 + ctrlLabelLastTime_4 + ctrlLabelLastTime_6 + ctrlLabelLastTime_7 + ctrlLabelLastTime_9 + ctrlLabelLastTime_8 + ctrlLabelLastTime_5 + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + +
diff --git a/app/gui/oven_control/images/config/service/operationtime_heat_bgnd.png b/app/gui/oven_control/images/config/service/operationtime_heat_bgnd.png new file mode 100644 index 0000000000000000000000000000000000000000..5c700f2210f6d69be1647c29ad700c28d1d294e3 GIT binary patch literal 1418 zcmeAS@N?(olHy`uVBq!ia0y~yV3uHDVC3Rp1By)i^Z722VoUONcVYMsf(!O8p9~b? zEbxddW?i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvOi=IWR}yM5%V@2C?r|p8d2h$pPQSSSHj?2l$uzQ znxasiS(2gP?&%v4-pD7;z#w4Y>EaktaqI1^jl9eb94wBH|5e9rcle;RAW=v#cVCdihioh5SDL@WL1k6xkMq<1Bz^`P5lX^*pj^6T^Rm@;DWu&Cj&(| z3p^r=85p>QL70(Y)*K0-AbW|YuPggQ7C}}%mdR)C9|Q_XmbgZgIOpf)rskC}I2WZR zmZYXAlxLP?D7bt2281{Ai8C+=zx8x+45_&F_SQvCW&WBZVkhB#&18u*hdQm>X(ao-nVA~i`@z_NzXM5 z2Rhib59Bu3?z=i#64R(MDu}yvjfa8Zz~&PkNvsTRHW7?@%x^xfR39LJKHyqz?1r!?XBGMuV&W*MPfoY2_qYe$XM;j(|&Bvn+6Y6(q c8j|ZSU0c23c>2N5z_?`aboFyt=akR{01Uz_w*UYD literal 0 HcmV?d00001 diff --git a/app/gui/oven_control/images/config/service/oprationtime_menu_line.png b/app/gui/oven_control/images/config/service/oprationtime_menu_line.png new file mode 100644 index 0000000000000000000000000000000000000000..773528d2778e1d6c91de8e9488f56ba70da42ae5 GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^GC=%|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfLl!|s4d#>eiL-!0EuJopAr-gY-eTlrP!MrGxc;y8 zc|I=YhjESE8+<4EY_xsa;GiJD!NSytO#Ne8_btz`O$bv4MctnBues5+q9|Ztl3z7{ a1E2gY$rb#~OZ9;6VeoYIb6Mw<&;$UUuRSRM literal 0 HcmV?d00001 diff --git a/app/gui/oven_control/images/config/service/realtime_menu_line.png b/app/gui/oven_control/images/config/service/realtime_menu_line.png new file mode 100644 index 0000000000000000000000000000000000000000..8862a5a40463055d8100160bf39ccbb3bf67a9ef GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^GC{@+~*q}Y|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfLlz-MC5_&h_xAyXl001;Lo)8Yz2(TuV93DaxbB~A zvD`0(Orz`s7KdAAhy9K*HaaK>aIi2TQ#GuAuI+Z^QN@%&QCD&Q&)2Waej5cj^B0HJ Q18rmQboFyt=akR{0Ef;vkpKVy literal 0 HcmV?d00001 diff --git a/app/gui/oven_control/images/config/service/realtime_parts_bgnd.png b/app/gui/oven_control/images/config/service/realtime_parts_bgnd.png new file mode 100644 index 0000000000000000000000000000000000000000..298f703e5eab8b801689cc30479f680dc4d19a88 GIT binary patch literal 4007 zcmeAS@N?(olHy`uVBq!ia0y~yV3q{p01h^wh|88m(LjnV$=lt9;Xep2*t>i(P=vF< zBeIx*fm;}a85w5HkpK#^mw5WRvOi=IVq%mKU$3Ucz`$?f>EaktaqI1^jl9f;JS+#N z|9)S2m%*9)h_tb)!1Of>o-_VX4qewEo78M}VqHJbGzKMR1_lA33mQ%UIdFyx&^2HY z5JSNTC^eB0iP6CW6#+3EQh*#d17_Z^G8h~JbuU6Jfq}(v;J{(dG7hs7cK4U!4Fzzx zz=DHN@S=n>f#4l_1`9~~p{EfPPoO3i%*2NhI`HHOPjhevD6}yR-Z2_+z|e<>A)Eoq z(gc#)z(yRXI64qLM=KrZdDpW6_ z#OIDi9HJ5(jW}=#L{c!IBvw#ifLc!s!q&=Yj>9ZvMk9`>GPt5U_$jDa&A`mBenatw z!ta{tOh~mhf%Z4{mJd9Kz!~t$AI=yC20Nr!3}El%!J^TKL+Uz`lGFw^;=n~!{zuk0 X#fiU9MXmsK$r(Id{an^LB{Ts5-YgCv literal 0 HcmV?d00001 diff --git a/app/gui/oven_control/images/config/service/realtime_sensor_bgnd.png b/app/gui/oven_control/images/config/service/realtime_sensor_bgnd.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3bb36c4f0d752814322966a5ab2441d82791a9 GIT binary patch literal 4331 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¬s3A1a{0>Wk3i!A8G_T%o%PHuarp9 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 z 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

RmJ6^AIt&(3 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 literal 0 HcmV?d00001 diff --git a/app/gui/oven_control/mainwindow.cpp b/app/gui/oven_control/mainwindow.cpp index 24d601b..8889808 100644 --- a/app/gui/oven_control/mainwindow.cpp +++ b/app/gui/oven_control/mainwindow.cpp @@ -11,6 +11,7 @@ #include "functiontestwindow.h" #include "autocookselectionwindow.h" #include "washwindow.h" +#include "engineermenuwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -107,3 +108,10 @@ void MainWindow::on_washButton_clicked() w->showFullScreen(); w->raise(); } + +void MainWindow::on_helpButton_clicked() +{ + engineermenuwindow *w = new engineermenuwindow(this); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} diff --git a/app/gui/oven_control/mainwindow.h b/app/gui/oven_control/mainwindow.h index 3f9eb2a..ff8968b 100644 --- a/app/gui/oven_control/mainwindow.h +++ b/app/gui/oven_control/mainwindow.h @@ -38,6 +38,8 @@ private slots: void on_washButton_clicked(); + void on_helpButton_clicked(); + private: Ui::MainWindow *ui; diff --git a/app/gui/oven_control/operationtimeheat.cpp b/app/gui/oven_control/operationtimeheat.cpp new file mode 100644 index 0000000..92704c0 --- /dev/null +++ b/app/gui/oven_control/operationtimeheat.cpp @@ -0,0 +1,60 @@ +#include "operationtimeheat.h" +#include "ui_operationtimeheat.h" +#include "ovenstatics.h" + +operationTimeHeat::operationTimeHeat(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::operationTimeHeat) +{ + ui->setupUi(this); + reloadUI(); + +} + +operationTimeHeat::~operationTimeHeat() +{ + delete ui; +} + +void operationTimeHeat::on_btnReset1_clicked() +{ + //스팀 가열 시간 초기화 + OvenStatics* ovs = OvenStatics::getInstance(); + if(ovs!=NULL){ + ovs->srvdatas->use_log.items.steam_heat=0; + ovs->srvdatas->saveServiceDatas(); + reloadUI(); + } +} + +void operationTimeHeat::on_btnReset2_clicked() +{ + //건열 가열 시간 초기화 + OvenStatics* ovs = OvenStatics::getInstance(); + if(ovs!=NULL){ + ovs->srvdatas->use_log.items.dry_heat=0; + ovs->srvdatas->use_log.items.upper_heat=0; + ovs->srvdatas->use_log.items.lower_heat=0; + ovs->srvdatas->saveServiceDatas(); + reloadUI(); + } +} + +void operationTimeHeat::reloadUI(void){ + uint32_t timetemp; + OvenStatics* ovs = OvenStatics::getInstance(); + QString strTemp=""; + if(ovs!=NULL){ + timetemp = ovs->srvdatas->use_log.items.steam_heat; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime1->setText(strTemp); + timetemp = ovs->srvdatas->use_log.items.dry_heat; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime2->setText(strTemp); + } +} + +void operationTimeHeat::on_backButton_clicked() +{ + deleteLater(); +} diff --git a/app/gui/oven_control/operationtimeheat.h b/app/gui/oven_control/operationtimeheat.h new file mode 100644 index 0000000..eb3c574 --- /dev/null +++ b/app/gui/oven_control/operationtimeheat.h @@ -0,0 +1,30 @@ +#ifndef OPERATIONTIMEHEAT_H +#define OPERATIONTIMEHEAT_H + +#include + +namespace Ui { +class operationTimeHeat; +} + +class operationTimeHeat : public QMainWindow +{ + Q_OBJECT + +public: + explicit operationTimeHeat(QWidget *parent = 0); + ~operationTimeHeat(); + +private slots: + void on_btnReset1_clicked(); + + void on_btnReset2_clicked(); + + void on_backButton_clicked(); + +private: + Ui::operationTimeHeat *ui; + void reloadUI(void); +}; + +#endif // OPERATIONTIMEHEAT_H diff --git a/app/gui/oven_control/operationtimeheat.ui b/app/gui/oven_control/operationtimeheat.ui new file mode 100644 index 0000000..a210ea0 --- /dev/null +++ b/app/gui/oven_control/operationtimeheat.ui @@ -0,0 +1,358 @@ + + + operationTimeHeat + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } +#midwidget { background-image: url(:/images/config/service/operationtime_heat_bgnd.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 1500 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 작동시간 > 가열 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 343 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + 457 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/help.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); } + + + + + + + + + + 57 + 532 + 792 + 266 + + + + QLabel { + color:white; +} + + + + + 0 + 0 + 267 + 71 + + + + 목록 + + + Qt::AlignCenter + + + + + + 266 + 0 + 265 + 71 + + + + 초기화 + + + Qt::AlignCenter + + + + + + 530 + 0 + 263 + 71 + + + + 시간 + + + Qt::AlignCenter + + + + + + 0 + 70 + 267 + 97 + + + + + 10 + + + + 스팀가열시간 + + + Qt::AlignCenter + + + + + + 0 + 170 + 267 + 97 + + + + + 10 + + + + 건열가열시간 + + + Qt::AlignCenter + + + + + + 275 + 88 + 245 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 275 + 188 + 245 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 530 + 70 + 267 + 97 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 530 + 170 + 267 + 97 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + + + Clock + QWidget +

clock.h
+ 1 + + + + + diff --git a/app/gui/oven_control/operationtimemain.cpp b/app/gui/oven_control/operationtimemain.cpp new file mode 100644 index 0000000..2321bff --- /dev/null +++ b/app/gui/oven_control/operationtimemain.cpp @@ -0,0 +1,43 @@ +#include "operationtimemain.h" +#include "ui_operationtimemain.h" +#include "operationtimeheat.h" +#include "operationtimemode.h" +#include "operationtimeparts.h" + +operationTimeMain::operationTimeMain(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::operationTimeMain) +{ + ui->setupUi(this); +} + +operationTimeMain::~operationTimeMain() +{ + delete ui; +} + +void operationTimeMain::on_btnHeatPartTime_clicked() +{ + operationTimeHeat* w = new operationTimeHeat(); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void operationTimeMain::on_btnModeTime_clicked() +{ + operationTimeMode* w = new operationTimeMode(); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void operationTimeMain::on_btnPartsTime_clicked() +{ + operationTimeParts*w = new operationTimeParts(); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void operationTimeMain::on_backButton_clicked() +{ + deleteLater(); +} diff --git a/app/gui/oven_control/operationtimemain.h b/app/gui/oven_control/operationtimemain.h new file mode 100644 index 0000000..9af655b --- /dev/null +++ b/app/gui/oven_control/operationtimemain.h @@ -0,0 +1,31 @@ +#ifndef OPERATIONTIMEMAIN_H +#define OPERATIONTIMEMAIN_H + +#include + +namespace Ui { +class operationTimeMain; +} + +class operationTimeMain : public QMainWindow +{ + Q_OBJECT + +public: + explicit operationTimeMain(QWidget *parent = 0); + ~operationTimeMain(); + +private slots: + void on_btnHeatPartTime_clicked(); + + void on_btnModeTime_clicked(); + + void on_btnPartsTime_clicked(); + + void on_backButton_clicked(); + +private: + Ui::operationTimeMain *ui; +}; + +#endif // OPERATIONTIMEMAIN_H diff --git a/app/gui/oven_control/operationtimemain.ui b/app/gui/oven_control/operationtimemain.ui new file mode 100644 index 0000000..6d2b810 --- /dev/null +++ b/app/gui/oven_control/operationtimemain.ui @@ -0,0 +1,321 @@ + + + operationTimeMain + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 900 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 작동시간 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 401 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + + 40 + 545 + 821 + 66 + + + + + 0 + + + + + false + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/config/pannel.png);color: rgb(255, 255, 255); } +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } +QPushButton { text-align: left;} + + + + 작동시간 + + + + + + + true + + + + Malgun Gothic + 11 + 75 + true + + + + color: rgb(255, 255, 255); + + + EM-6 + + + Qt::AlignCenter + + + 0 + + + + + + + + + 124 + 630 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 가열부 + + + + + + 124 + 717 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 모드 + + + + + + 124 + 802 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 부품 + + + + + + 100 + 606 + 28 + 231 + + + + + + + :/images/config/service/oprationtime_menu_line.png + + + label + upperStack + label_15 + bottomBar + gridLayoutWidget + btnHeatPartTime + btnModeTime + btnPartsTime + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + + + +
diff --git a/app/gui/oven_control/operationtimemode.cpp b/app/gui/oven_control/operationtimemode.cpp new file mode 100644 index 0000000..86d776c --- /dev/null +++ b/app/gui/oven_control/operationtimemode.cpp @@ -0,0 +1,80 @@ +#include "operationtimemode.h" +#include "ui_operationtimemode.h" +#include "ovenstatics.h" + +operationTimeMode::operationTimeMode(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::operationTimeMode) +{ + ui->setupUi(this); + reloadUi(); +} + +operationTimeMode::~operationTimeMode() +{ + delete ui; +} + +void operationTimeMode::on_backButton_clicked() +{ + deleteLater(); +} + + +void operationTimeMode::reloadUi(void){ + uint32_t timetemp; + OvenStatics* ovs = OvenStatics::getInstance(); + QString strTemp=""; + uint32_t totaltime; + if(ovs!=NULL){ + //건열 조리 모드 + timetemp = ovs->srvdatas->use_log.items.cook_dry_mode; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime1->setText(strTemp); + //스팀 조리 모드 + timetemp = ovs->srvdatas->use_log.items.cook_steam_mode; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime2->setText(strTemp); + //콤비 조리 모드 + timetemp = ovs->srvdatas->use_log.items.cook_combi_mode; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime3->setText(strTemp); + //세제없이 헹굼 + timetemp = ovs->srvdatas->use_log.items.wash_mode_nocleanser; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime4->setText(strTemp); + //간이 세척 + timetemp = ovs->srvdatas->use_log.items.wash_mode_simple; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime5->setText(strTemp); + //표준 세척 + timetemp = ovs->srvdatas->use_log.items.wash_mode_standard; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime6->setText(strTemp); + //강세척 + timetemp = ovs->srvdatas->use_log.items.wash_mode_strong; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime7->setText(strTemp); + //고속 세척 + timetemp = ovs->srvdatas->use_log.items.wash_mode_speed; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime8->setText(strTemp); + //쿨다운 + timetemp = ovs->srvdatas->use_log.items.cooldown_mode; + totaltime += timetemp; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime9->setText(strTemp); + //전체 작동 시간 + timetemp = totaltime; + strTemp.sprintf("%d h", timetemp/3600); + ui->m_ctrlLbListTime10->setText(strTemp); + } +} diff --git a/app/gui/oven_control/operationtimemode.h b/app/gui/oven_control/operationtimemode.h new file mode 100644 index 0000000..fbcb903 --- /dev/null +++ b/app/gui/oven_control/operationtimemode.h @@ -0,0 +1,26 @@ +#ifndef OPERATIONTIMEMODE_H +#define OPERATIONTIMEMODE_H + +#include + +namespace Ui { +class operationTimeMode; +} + +class operationTimeMode : public QMainWindow +{ + Q_OBJECT + +public: + explicit operationTimeMode(QWidget *parent = 0); + ~operationTimeMode(); + +private slots: + void on_backButton_clicked(); + +private: + Ui::operationTimeMode *ui; + void reloadUi(void); +}; + +#endif // OPERATIONTIMEMODE_H diff --git a/app/gui/oven_control/operationtimemode.ui b/app/gui/oven_control/operationtimemode.ui new file mode 100644 index 0000000..bf514cb --- /dev/null +++ b/app/gui/oven_control/operationtimemode.ui @@ -0,0 +1,748 @@ + + + operationTimeMode + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } +#midwidget { background-image: url(:/images/config/service/operationtime_mode_bgnd.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 1500 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 작동시간 > 모드 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 343 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + 457 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/help.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); } + + + + + + + + + + 57 + 532 + 793 + 769 + + + + QLabel { + color:white; +} + + + + + 3 + 0 + 377 + 71 + + + + 목록 + + + Qt::AlignCenter + + + + + + 379 + 0 + 413 + 70 + + + + 시간 + + + Qt::AlignCenter + + + + + + 0 + 75 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 건열모드 + + + + + + 380 + 69 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 0 + 145 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 스팀모드 + + + + + + 0 + 215 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 콤비모드 + + + + + + 0 + 285 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 세제없이헹굼 + + + + + + 0 + 355 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 간이세척 + + + + + + 0 + 425 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 표준세 + + + + + + 0 + 495 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 강세척 + + + + + + 0 + 565 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 고속세척 + + + + + + 0 + 635 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 쿨다운 + + + + + + 0 + 705 + 375 + 58 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 전체작동시간 + + + + + + 380 + 139 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 209 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 279 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 349 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 419 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 489 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 559 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 629 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 380 + 699 + 411 + 71 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + +
diff --git a/app/gui/oven_control/operationtimeparts.cpp b/app/gui/oven_control/operationtimeparts.cpp new file mode 100644 index 0000000..a36c593 --- /dev/null +++ b/app/gui/oven_control/operationtimeparts.cpp @@ -0,0 +1,107 @@ +#include +#include "operationtimeparts.h" +#include "ui_operationtimeparts.h" +#include "ovenstatics.h" + +operationTimeParts::operationTimeParts(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::operationTimeParts) +{ + int i=0; + OvenStatics* ovs = OvenStatics::getInstance(); + ui->setupUi(this); + + m_arrTimeLabels[0] = ui->m_ctrlLbListTime_1; + m_arrTimeLabels[1] = ui->m_ctrlLbListTime_2; + m_arrTimeLabels[2] = ui->m_ctrlLbListTime_3; + m_arrTimeLabels[3] = ui->m_ctrlLbListTime_4; + m_arrTimeLabels[4] = ui->m_ctrlLbListTime_5; + m_arrTimeLabels[5] = ui->m_ctrlLbListTime_6; + m_arrTimeLabels[6] = ui->m_ctrlLbListTime_7; + m_arrTimeLabels[7] = ui->m_ctrlLbListTime_8; + m_arrTimeLabels[8] = ui->m_ctrlLbListTime_9; + m_arrTimeLabels[9] = ui->m_ctrlLbListTime_10; + m_arrTimeLabels[10] = ui->m_ctrlLbListTime_11; + + m_arrResetBtn[0] = ui->btnReset_1; + m_arrResetBtn[1] = ui->btnReset_2; + m_arrResetBtn[2] = ui->btnReset_3; + m_arrResetBtn[3] = ui->btnReset_4; + m_arrResetBtn[4] = ui->btnReset_5; + m_arrResetBtn[5] = ui->btnReset_6; + m_arrResetBtn[6] = ui->btnReset_7; + m_arrResetBtn[7] = ui->btnReset_8; + m_arrResetBtn[8] = ui->btnReset_9; + m_arrResetBtn[9] = ui->btnReset_10; + m_arrResetBtn[10] = ui->btnReset_11; + + + m_btnGrops = new QButtonGroup(); + + for(i=0;iaddButton(m_arrResetBtn[i],i); + } + + connect(m_btnGrops,SIGNAL(buttonClicked(int)),this,SLOT(on_btnResets_clicked(int))); + + if(ovs != NULL){ + for( i =0;isrvdatas->use_log.values[m_arrPartItemIdxs[i]]); + } + else m_arrUseItems[i] = NULL; + } + } + reloadUi(); +} + +operationTimeParts::~operationTimeParts() +{ + delete ui; +} + +void operationTimeParts::on_backButton_clicked() +{ + deleteLater(); +} + +void operationTimeParts::reloadUi(void){ + uint32_t timetemp; + OvenStatics* ovs = OvenStatics::getInstance(); + QString strTemp=""; + int i = 0; + + if(ovs != NULL){ + for(i = 0; isetText(strTemp); + } + else{ + m_arrTimeLabels[i]->setText("-"); + } + } + } + else{ + for(i=0;isetText("-"); + } + } +} + +void operationTimeParts::on_btnReset_2_clicked() +{ + +} + +void operationTimeParts::on_btnResets_clicked(int idx){ + qDebug() << "PUSH BUTTON " << idx; + if(idx < OPERATION_TIME_CONTROL_MAX){ + if(m_arrUseItems[idx] !=NULL){ + *m_arrUseItems[idx]=0; + reloadUi(); + } + } + +} diff --git a/app/gui/oven_control/operationtimeparts.h b/app/gui/oven_control/operationtimeparts.h new file mode 100644 index 0000000..5b943e6 --- /dev/null +++ b/app/gui/oven_control/operationtimeparts.h @@ -0,0 +1,47 @@ +#ifndef OPERATIONTIMEPARTS_H +#define OPERATIONTIMEPARTS_H + +#include +#include +#include +#include +#include "servicedatas.h" + +#define OPERATION_TIME_CONTROL_MAX 11 +#define OPERATION_TIME_PARTS_MAX_ITEM 10 + +namespace Ui { +class operationTimeParts; +} + +class operationTimeParts : public QMainWindow +{ + Q_OBJECT + +public: + explicit operationTimeParts(QWidget *parent = 0); + ~operationTimeParts(); + +private slots: + void on_backButton_clicked(); + + void on_btnReset_2_clicked(); + void on_btnResets_clicked(int); + +private: + const uint16_t m_arrPartItemIdxs[OPERATION_TIME_PARTS_MAX_ITEM] = { + USE_ITEM_door_open,USE_ITEM_dv_open,USE_ITEM_ssv_open,USE_ITEM_qnv_open,USE_ITEM_snv_open, + 0xffff, USE_ITEM_ssp_open, USE_ITEM_hdm_open, USE_ITEM_dp_open, USE_ITEM_unp_open + }; + + + uint32_t* m_arrUseItems[OPERATION_TIME_PARTS_MAX_ITEM]; + QLabel* m_arrTimeLabels[OPERATION_TIME_CONTROL_MAX]; + QPushButton* m_arrResetBtn[OPERATION_TIME_CONTROL_MAX]; + QButtonGroup* m_btnGrops; + + Ui::operationTimeParts *ui; + void reloadUi(void); +}; + +#endif // OPERATIONTIMEPARTS_H diff --git a/app/gui/oven_control/operationtimeparts.ui b/app/gui/oven_control/operationtimeparts.ui new file mode 100644 index 0000000..091d2cd --- /dev/null +++ b/app/gui/oven_control/operationtimeparts.ui @@ -0,0 +1,1051 @@ + + + operationTimeParts + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } +#midwidget { background-image: url(:/images/config/service/operationtime_parts_bgnd.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 1500 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 작동시간 > 부품 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 343 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + 457 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/help.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); } + + + + + + + + + + 43 + 533 + 839 + 836 + + + + QLabel { + color:white; +} + + + + + 6 + 0 + 351 + 71 + + + + 목록 + + + Qt::AlignCenter + + + + + + 621 + 0 + 171 + 70 + + + + 시간 + + + Qt::AlignCenter + + + + + + 358 + -1 + 261 + 71 + + + + 초기화 + + + Qt::AlignCenter + + + + + + 368 + 74 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 620 + 69 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 0 + 69 + 357 + 75 + + + + + 10 + + + + 도어 OPEN + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 146 + 357 + 75 + + + + + 10 + + + + 볼밸브 OPEN + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 223 + 357 + 75 + + + + + 10 + + + + S/G 급수 솔레노이드 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 299 + 357 + 75 + + + + + 10 + + + + 퀀칭 솔레노이드 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 376 + 357 + 75 + + + + + 10 + + + + 고내살수 노즐 솔레노이드 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 452 + 357 + 75 + + + + + 10 + + + + 호스릴 솔레노이드 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 529 + 357 + 75 + + + + + 10 + + + + 세제공급펌프 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 605 + 357 + 75 + + + + + 10 + + + + 배습댐퍼 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 682 + 357 + 75 + + + + + 10 + + + + 소형펌프모터 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 759 + 357 + 75 + + + + + 10 + + + + 중형펌프모터 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 0 + 836 + 357 + 75 + + + + + 10 + + + + 중형펌프모터 + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter + + + + + + 368 + 151 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 228 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 305 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 382 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 459 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 536 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 613 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 690 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 767 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 368 + 844 + 242 + 66 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + RESET + + + + + + 620 + 146 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 223 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 300 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 377 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 454 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 531 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 608 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 685 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 762 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 620 + 839 + 171 + 75 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + +
diff --git a/app/gui/oven_control/oven_control.pro b/app/gui/oven_control/oven_control.pro index 1f4b7ad..8491f70 100644 --- a/app/gui/oven_control/oven_control.pro +++ b/app/gui/oven_control/oven_control.pro @@ -51,7 +51,16 @@ SOURCES += main.cpp\ define.cpp \ autocook.cpp \ keepwarmpopup.cpp \ - errorpopupdlg.cpp + errorpopupdlg.cpp \ + servicehistorymain.cpp \ + historylistwindow.cpp \ + operationtimemain.cpp \ + operationtimeheat.cpp \ + operationtimemode.cpp \ + operationtimeparts.cpp \ + realtimemain.cpp \ + realtimepartswindow.cpp \ + realtimesensorwindow.cpp HEADERS += mainwindow.h \ cook.h \ @@ -91,7 +100,16 @@ HEADERS += mainwindow.h \ define.h \ autocook.h \ keepwarmpopup.h \ - errorpopupdlg.h + errorpopupdlg.h \ + servicehistorymain.h \ + historylistwindow.h \ + operationtimemain.h \ + operationtimeheat.h \ + operationtimemode.h \ + operationtimeparts.h \ + realtimemain.h \ + realtimepartswindow.h \ + realtimesensorwindow.h FORMS += mainwindow.ui \ manualcookwindow.ui \ @@ -112,7 +130,16 @@ FORMS += mainwindow.ui \ engineermenuwindow.ui \ popupwindow.ui \ keepwarmpopup.ui \ - errorpopupdlg.ui + errorpopupdlg.ui \ + servicehistorymain.ui \ + historylistwindow.ui \ + operationtimemain.ui \ + operationtimeheat.ui \ + operationtimemode.ui \ + operationtimeparts.ui \ + realtimemain.ui \ + realtimepartswindow.ui \ + realtimesensorwindow.ui RESOURCES += \ resources.qrc diff --git a/app/gui/oven_control/ovenstatics.cpp b/app/gui/oven_control/ovenstatics.cpp index ece6e75..d26ed7f 100644 --- a/app/gui/oven_control/ovenstatics.cpp +++ b/app/gui/oven_control/ovenstatics.cpp @@ -7,6 +7,7 @@ #include "popupwindow.h" #include "engineermenuwindow.h" #include "errorpopupdlg.h" +#include "historylistwindow.h" OvenStatics* OvenStatics::p_singtonInstance=NULL; @@ -17,8 +18,8 @@ OvenStatics* OvenStatics::getInstance(QObject *parent, UdpHandler* udp, Oven* ov p_singtonInstance->udp = udp; p_singtonInstance->oven = oven; //for singletone event debug - MainWindow* mw = (MainWindow*)parent; - connect(mw->pcombiButton, SIGNAL(clicked()),p_singtonInstance, SLOT(onDataChanged())); +// MainWindow* mw = (MainWindow*)parent; +// connect(mw->pcombiButton, SIGNAL(clicked()),p_singtonInstance, SLOT(onDataChanged())); connect(p_singtonInstance->udp , SIGNAL(changed()), p_singtonInstance, SLOT(onDataChanged())); QTimer *timer = new QTimer(p_singtonInstance); connect(timer, SIGNAL(timeout()),p_singtonInstance,SLOT(oneSecTimerFired())); @@ -35,11 +36,20 @@ void OvenStatics::destroy(){ OvenStatics::OvenStatics(QObject* parent) :QObject(parent) { + int i = 0; curdoorstate = false; curSysErrorState = 0; curCommErrorState = 0; curSensorErrorState = 0; bDataRefreshed = false; + realdata.d32 = 0; + + for(i=0;iloadServiceDatas(); } @@ -269,6 +279,17 @@ void OvenStatics::clearNeedErrorClear(){ } void OvenStatics::oneSecTimerFired(void){ + static int nOneSecCnt=1; + time_t ltime; + + ltime = time(NULL); + + nOneSecCnt++; + if( (nOneSecCnt % 10) ==0 ) { + srvdatas->saveServiceDatas(); + qDebug()<<"statics data saved"; + } + if(bDataRefreshed) bDataRefreshed= false; else{ udp->fillControl(control); @@ -324,8 +345,10 @@ void OvenStatics::oneSecTimerFired(void){ srvdatas->use_log.items.cooldown_mode+=1; } //부품 - if(state.door_state ==1){ + qDebug() << "door state = " <use_log.items.door_open+=1; + realdata.b.door_open = 1; } if(state.onoff_state2 !=0){ if( (state.onoff_state2 & LOAD_STATE2_DV)!=0){ @@ -353,10 +376,103 @@ void OvenStatics::oneSecTimerFired(void){ srvdatas->use_log.items.unp_open+=1; } } + + //Real time Data Refresh + + realdata.b.door_open = state.door_state==0?0:1; + realdata.b.dv_open = (state.onoff_state2&LOAD_STATE2_DV)==0?0:1; + realdata.b.qnv_open = (state.onoff_state2&LOAD_STATE2_QNV)==0?0:1; + realdata.b.sgnv_open = (state.onoff_state2&LOAD_STATE2_SGNV)==0?0:1; + realdata.b.snv_open = (state.onoff_state2&LOAD_STATE2_SNV)==0?0:1; + realdata.b.ssp_opne = (state.onoff_state2&LOAD_STATE2_SSP)==0?0:1; + realdata.b.ssv_open = (state.onoff_state2&LOAD_STATE2_SSV)==0?0:1; + realdata.b.water_level = 0; + + if(srvdatas->sensor_log.items.B1.high_temp.itemp < state.sensor1 ){ + srvdatas->sensor_log.items.B1.high_temp.itemp = state.sensor1; + srvdatas->sensor_log.items.B1.last_high_time = ltime; + } + curSensorValue[0].itemp = state.sensor1; + + if(srvdatas->sensor_log.items.B2.high_temp.itemp < state.sensor2 ){ + srvdatas->sensor_log.items.B2.high_temp.itemp = state.sensor2; + srvdatas->sensor_log.items.B2.last_high_time = ltime; + } + curSensorValue[1].itemp = state.sensor2; + + if(srvdatas->sensor_log.items.B3_1.high_temp.itemp < state.sensor6 ){ + srvdatas->sensor_log.items.B3_1.high_temp.itemp = state.sensor6; + srvdatas->sensor_log.items.B3_1.last_high_time = ltime; + } + curSensorValue[5].itemp = state.sensor6; + + if(srvdatas->sensor_log.items.B4.high_temp.itemp < state.sensor4 ){ + srvdatas->sensor_log.items.B4.high_temp.itemp = state.sensor4; + srvdatas->sensor_log.items.B4.last_high_time = ltime; + } + curSensorValue[3].itemp = state.sensor4; + + if(srvdatas->sensor_log.items.B5.high_temp.itemp < state.sensor5 ){ + srvdatas->sensor_log.items.B5.high_temp.itemp = state.sensor5; + srvdatas->sensor_log.items.B5.last_high_time = ltime; + } + curSensorValue[4].itemp = state.sensor5; + + if(srvdatas->sensor_log.items.B3_2.high_temp.itemp < state.sensor7 ){ + srvdatas->sensor_log.items.B3_2.high_temp.itemp = state.sensor7; + srvdatas->sensor_log.items.B3_2.last_high_time = ltime; + } + curSensorValue[6].itemp = state.sensor7; + + if(srvdatas->sensor_log.items.B3_3.high_temp.itemp < state.sensor8 ){ + srvdatas->sensor_log.items.B3_3.high_temp.itemp = state.sensor8; + srvdatas->sensor_log.items.B3_3.last_high_time = ltime; + } + curSensorValue[7].itemp = state.sensor8; + + if(srvdatas->sensor_log.items.B3_4.high_temp.itemp < state.sensor9 ){ + srvdatas->sensor_log.items.B3_4.high_temp.itemp = state.sensor9; + srvdatas->sensor_log.items.B3_4.last_high_time = ltime; + } + curSensorValue[8].itemp = state.sensor9; + + if(srvdatas->sensor_log.items.mbar1.high_temp.utemp < state.sensor11 ){ + srvdatas->sensor_log.items.mbar1.high_temp.utemp = state.sensor11; + srvdatas->sensor_log.items.mbar1.last_high_time = ltime; + } + curSensorValue[10].utemp = state.sensor11; + if(srvdatas->sensor_log.items.mbar2.high_temp.utemp < state.sensor12 ){ + srvdatas->sensor_log.items.mbar2.high_temp.utemp = state.sensor12; + srvdatas->sensor_log.items.mbar2.last_high_time = ltime; + } + curSensorValue[11].utemp = state.sensor12; + + if(srvdatas->sensor_log.items.pcb.high_temp.itemp < state.sensor13 ){ + srvdatas->sensor_log.items.pcb.high_temp.itemp = state.sensor13; + srvdatas->sensor_log.items.pcb.last_high_time = ltime; + } + curSensorValue[12].itemp = state.sensor13; + + if(srvdatas->sensor_log.items.adc.high_temp.itemp < state.sensor14 ){ + srvdatas->sensor_log.items.adc.high_temp.itemp = state.sensor14; + srvdatas->sensor_log.items.adc.last_high_time = ltime; + } + curSensorValue[13].itemp = state.sensor14; + + + + } void OvenStatics::processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc, time_t ltime){ + if(m_pLastErrItem == item ){ + srvdatas->err_log.items.repeat_error.fired_cnt =item->fired_cnt; + srvdatas->err_log.items.repeat_error.first_fired = item->first_fired; + srvdatas->err_log.items.repeat_error.last_fried = item->last_fried; + } + m_pLastErrItem = item; + if(errtype >= error_type_onlychk){ item->fired_cnt+=1; if(item->first_fired == 0) item->first_fired = ltime; @@ -395,3 +511,16 @@ void OvenStatics::processErrorItems(error_item *item, error_exe_type errtype, co } } + +realtime_data OvenStatics::getPartsRealtimeData(void){ + return realdata; +} + +uint8_t OvenStatics::getSensorTypeByIdx(uint16_t idx){ + if(idx > MAX_LOG_SENSOR) return 0; + return sensorTypeInfo[idx]; +} + +type_temp OvenStatics::getCurSensorValueByIdx(uint16_t idx){ + return curSensorValue[idx]; +} diff --git a/app/gui/oven_control/ovenstatics.h b/app/gui/oven_control/ovenstatics.h index 0d9e4f6..527528e 100644 --- a/app/gui/oven_control/ovenstatics.h +++ b/app/gui/oven_control/ovenstatics.h @@ -47,7 +47,7 @@ #define LOAD_STATE1_CONVEC_FAN1 0x0040 #define LOAD_STATE1_CONVEC_FAN2 0x0080 -#define LOAD_STATE2_DV 0x0001 +/*#define LOAD_STATE2_DV 0x0001 #define LOAD_STATE2_CFAN 0x0002 #define LOAD_STATE2_WSV 0x0004 #define LOAD_STATE2_QNV 0x0008 @@ -62,7 +62,22 @@ #define LOAD_STATE2_HT1 0x1000 #define LOAD_STATE2_HT2 0x2000 #define LOAD_STATE2_HDM 0x4000 -#define LOAD_STATE2_ST1 0x8000 +#define LOAD_STATE2_ST1 0x8000*/ + + + +#define LOAD_STATE2_DV 0x0001 +#define LOAD_STATE2_CFAN 0x0002 +#define LOAD_STATE2_WSV 0x0004 +#define LOAD_STATE2_QNV 0x0008 +#define LOAD_STATE2_SSV 0x0010 +#define LOAD_STATE2_SNV 0x0020 +#define LOAD_STATE2_HL 0x0040 +#define LOAD_STATE2_DP 0x0080 +#define LOAD_STATE2_SSP 0x0100 +#define LOAD_STATE2_UNP 0x0200 +#define LOAD_STATE2_HDM 0x0400 +#define LOAD_STATE2_SGNV 0x0800 enum sys_state_type{ SYS_OFF_COOK_OFF=0, @@ -127,14 +142,37 @@ enum wash_mode_type{ wash_mode_highspeed }; + +typedef union +{ + uint32_t d32; + struct + { + uint32_t reserved : 9; + uint32_t door_open : 1; + uint32_t ssp_opne : 1; + uint32_t dv_open : 1; + uint32_t sgnv_open : 1; + uint32_t water_level : 16; + uint32_t snv_open : 1; + uint32_t qnv_open : 1; + uint32_t ssv_open : 1; + }b; +}realtime_data; + class OvenStatics : public QObject { Q_OBJECT public: + servicedatas* srvdatas; + static OvenStatics* getInstance(QObject* parent = 0,UdpHandler * udp=0, Oven* oven=0); static void destroy(); bool getNeedErrorClear(); void clearNeedErrorClear(); + realtime_data getPartsRealtimeData(void); + uint8_t getSensorTypeByIdx(uint16_t idx); + type_temp getCurSensorValueByIdx(uint16_t idx); private: @@ -167,7 +205,12 @@ private: error_type_popnonclr,error_type_allnone,error_type_allnone,error_type_allnone,error_type_popnonclr}, // SYS_OFF_COOK_ON state same with SYS_OFF_COOK_OFF }; + const uint8_t sensorTypeInfo[MAX_LOG_SENSOR] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 2, 0, 1, 1 + }; //Type 2 is /10 value; + type_temp curSensorValue[MAX_LOG_SENSOR]; static OvenStatics* p_singtonInstance; @@ -175,7 +218,8 @@ private: Oven* oven; oven_control_t control; oven_state_t state; - servicedatas* srvdatas; + error_item* m_pLastErrItem; + bool curdoorstate; @@ -184,6 +228,7 @@ private: uint16_t curSensorErrorState; bool bNeedErrorClear; bool bDataRefreshed; + realtime_data realdata; explicit OvenStatics(QObject* parent); ~OvenStatics(); void processSystemError(uint16_t errflag,time_t ltime); @@ -191,6 +236,7 @@ private: void processSensorError(uint16_t errflag, time_t ltime); void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc, time_t ltime); + public slots: void onDataChanged(); void oneSecTimerFired(void); diff --git a/app/gui/oven_control/realtimemain.cpp b/app/gui/oven_control/realtimemain.cpp new file mode 100644 index 0000000..b42f5ea --- /dev/null +++ b/app/gui/oven_control/realtimemain.cpp @@ -0,0 +1,35 @@ +#include "realtimemain.h" +#include "ui_realtimemain.h" +#include "realtimepartswindow.h" +#include "realtimesensorwindow.h" + +realtimeMain::realtimeMain(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::realtimeMain) +{ + ui->setupUi(this); +} + +realtimeMain::~realtimeMain() +{ + delete ui; +} + +void realtimeMain::on_btnPartsReal_clicked() +{ + realtimePartsWindow* w = new realtimePartsWindow(this); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void realtimeMain::on_btnTemperatureReal_clicked() +{ + realtimeSensorWindow* w = new realtimeSensorWindow(this); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void realtimeMain::on_backButton_clicked() +{ + deleteLater(); +} diff --git a/app/gui/oven_control/realtimemain.h b/app/gui/oven_control/realtimemain.h new file mode 100644 index 0000000..914e2bb --- /dev/null +++ b/app/gui/oven_control/realtimemain.h @@ -0,0 +1,29 @@ +#ifndef REALTIMEMAIN_H +#define REALTIMEMAIN_H + +#include + +namespace Ui { +class realtimeMain; +} + +class realtimeMain : public QMainWindow +{ + Q_OBJECT + +public: + explicit realtimeMain(QWidget *parent = 0); + ~realtimeMain(); + +private slots: + void on_btnPartsReal_clicked(); + + void on_btnTemperatureReal_clicked(); + + void on_backButton_clicked(); + +private: + Ui::realtimeMain *ui; +}; + +#endif // REALTIMEMAIN_H diff --git a/app/gui/oven_control/realtimemain.ui b/app/gui/oven_control/realtimemain.ui new file mode 100644 index 0000000..632e99c --- /dev/null +++ b/app/gui/oven_control/realtimemain.ui @@ -0,0 +1,285 @@ + + + realtimeMain + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 900 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 실시간데이터 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 401 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + + 40 + 545 + 821 + 66 + + + + + 0 + + + + + false + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/config/pannel.png);color: rgb(255, 255, 255); } +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } +QPushButton { text-align: left;} + + + + 실시간데이터 + + + + + + + true + + + + Malgun Gothic + 11 + 75 + true + + + + color: rgb(255, 255, 255); + + + EM-5 + + + Qt::AlignCenter + + + 0 + + + + + + + + + 124 + 634 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 구성품 + + + + + + 124 + 720 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 온도센서 + + + + + + 100 + 606 + 28 + 151 + + + + + + + :/images/config/service/realtime_menu_line.png + + + label + upperStack + label_15 + bottomBar + gridLayoutWidget + btnPartsReal + btnTemperatureReal + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + + + +
diff --git a/app/gui/oven_control/realtimepartswindow.cpp b/app/gui/oven_control/realtimepartswindow.cpp new file mode 100644 index 0000000..98c04cd --- /dev/null +++ b/app/gui/oven_control/realtimepartswindow.cpp @@ -0,0 +1,99 @@ +#include "realtimepartswindow.h" +#include "ui_realtimepartswindow.h" +#include "ovenstatics.h" + +realtimePartsWindow::realtimePartsWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::realtimePartsWindow) +{ + ui->setupUi(this); + +// for(i=0;im_ctrlLbListState_1_1; + m_arrLbState[0][1] = ui->m_ctrlLbListState_1_2; + m_arrLbState[0][2] = ui->m_ctrlLbListState_1_3; + m_arrLbState[0][3] = ui->m_ctrlLbListState_1_4; + m_arrLbState[0][4] = ui->m_ctrlLbListState_1_5; + m_arrLbState[0][5] = ui->m_ctrlLbListState_1_6; + m_arrLbState[0][6] = ui->m_ctrlLbListState_1_7; + m_arrLbState[0][7] = ui->m_ctrlLbListState_1_8; + + m_arrLbState[1][0] = ui->m_ctrlLbListState_2_1; + m_arrLbState[1][1] = ui->m_ctrlLbListState_2_2; + m_arrLbState[1][2] = ui->m_ctrlLbListState_2_3; + m_arrLbState[1][3] = ui->m_ctrlLbListState_2_4; + m_arrLbState[1][4] = ui->m_ctrlLbListState_2_5; + m_arrLbState[1][5] = ui->m_ctrlLbListState_2_6; + m_arrLbState[1][6] = ui->m_ctrlLbListState_2_7; + m_arrLbState[1][7] = ui->m_ctrlLbListState_2_8; + + m_arrLbState[2][0] = ui->m_ctrlLbListState_3_1; + m_arrLbState[2][1] = ui->m_ctrlLbListState_3_2; + m_arrLbState[2][2] = ui->m_ctrlLbListState_3_3; + m_arrLbState[2][3] = ui->m_ctrlLbListState_3_4; + m_arrLbState[2][4] = ui->m_ctrlLbListState_3_5; + m_arrLbState[2][5] = ui->m_ctrlLbListState_3_6; + m_arrLbState[2][6] = ui->m_ctrlLbListState_3_7; + m_arrLbState[2][7] = ui->m_ctrlLbListState_3_8; + + + reloadUi(); + +} + +realtimePartsWindow::~realtimePartsWindow() +{ + delete ui; +} + +void realtimePartsWindow::on_backButton_clicked() +{ + deleteLater(); +} + +void realtimePartsWindow::reloadUi(void){ + OvenStatics* ovs = OvenStatics::getInstance(); + QString strTemp = ""; + int i = 0,j=0; + realtime_data realdata; + if(ovs != NULL){ + realdata = ovs->getPartsRealtimeData(); + } + + if(realdata.b.ssv_open) ui->m_ctrlLbListState_1_1->setText(tr("ON")); + else ui->m_ctrlLbListState_1_1->setText(tr("OFF")); + + if(realdata.b.qnv_open) ui->m_ctrlLbListState_1_2->setText(tr("ON")); + else ui->m_ctrlLbListState_1_2->setText(tr("OFF")); + + if(realdata.b.snv_open) ui->m_ctrlLbListState_1_3->setText(tr("ON")); + else ui->m_ctrlLbListState_1_3->setText(tr("OFF")); + + strTemp.sprintf("%d",realdata.b.water_level); + ui->m_ctrlLbListState_1_4->setText(strTemp); + + if(realdata.b.sgnv_open) ui->m_ctrlLbListState_1_5->setText(tr("ON")); + else ui->m_ctrlLbListState_1_5->setText(tr("OFF")); + + if(realdata.b.dv_open) ui->m_ctrlLbListState_1_6->setText(tr("ON")); + else ui->m_ctrlLbListState_1_6->setText(tr("OFF")); + + if(realdata.b.ssp_opne) ui->m_ctrlLbListState_1_7->setText(tr("ON")); + else ui->m_ctrlLbListState_1_7->setText(tr("OFF")); + + if(realdata.b.door_open) ui->m_ctrlLbListState_1_8->setText(tr("ON")); + else ui->m_ctrlLbListState_1_8->setText(tr("OFF")); + + + for(i=1;isetText("-"); + } + } + +} diff --git a/app/gui/oven_control/realtimepartswindow.h b/app/gui/oven_control/realtimepartswindow.h new file mode 100644 index 0000000..db1d7f3 --- /dev/null +++ b/app/gui/oven_control/realtimepartswindow.h @@ -0,0 +1,33 @@ +#ifndef REALTIMEPARTSWINDOW_H +#define REALTIMEPARTSWINDOW_H + +#include +#include + +#define CONTROL_LIST_COL_MAX 3 +#define CONTROL_LIST_ITEM_MAX 8 + + +namespace Ui { +class realtimePartsWindow; +} + +class realtimePartsWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit realtimePartsWindow(QWidget *parent = 0); + ~realtimePartsWindow(); + +private slots: + void on_backButton_clicked(); + +private: + Ui::realtimePartsWindow *ui; + QLabel *m_arrLbState[CONTROL_LIST_COL_MAX][CONTROL_LIST_ITEM_MAX]; + + void reloadUi(void); +}; + +#endif // REALTIMEPARTSWINDOW_H diff --git a/app/gui/oven_control/realtimepartswindow.ui b/app/gui/oven_control/realtimepartswindow.ui new file mode 100644 index 0000000..c2dfe71 --- /dev/null +++ b/app/gui/oven_control/realtimepartswindow.ui @@ -0,0 +1,1004 @@ + + + realtimePartsWindow + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } +#midwidget { background-image: url(:/images/config/service/realtime_parts_bgnd.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 1500 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 실시간데이터 > 구성품 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 343 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + 457 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/help.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); } + + + + + + + + + + 62 + 532 + 793 + 848 + + + + QLabel { + color:white; +} + + + + + 4 + 0 + 301 + 71 + + + + 목록 + + + Qt::AlignCenter + + + + + + 309 + 0 + 161 + 70 + + + + 상태 + + + Qt::AlignCenter + + + + + + 0 + 87 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + S/G 솔레노이드 + + + + + + 310 + 78 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 0 + 184 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 퀀칭 솔레노이드 + + + + + + 0 + 281 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 고내살수 노즐 솔레노이드 + + + + + + 0 + 378 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 수위센서 + + + + + + 0 + 475 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + S/G펌프모터 + + + + + + 0 + 572 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 드레인볼밸브 + + + + + + 0 + 669 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 세제공급펌프 + + + + + + 0 + 766 + 300 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 도어센서 + + + + + + 471 + 0 + 161 + 70 + + + + 상태 + + + Qt::AlignCenter + + + + + + 632 + 0 + 161 + 70 + + + + 상태 + + + Qt::AlignCenter + + + + + + 310 + 175 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 310 + 272 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 310 + 369 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 310 + 466 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 310 + 563 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 310 + 660 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 310 + 757 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 78 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 369 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 175 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 563 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 272 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 757 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 466 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 471 + 660 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 78 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 369 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 175 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 563 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 272 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 757 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 466 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 632 + 660 + 161 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + +
diff --git a/app/gui/oven_control/realtimesensorwindow.cpp b/app/gui/oven_control/realtimesensorwindow.cpp new file mode 100644 index 0000000..87420fc --- /dev/null +++ b/app/gui/oven_control/realtimesensorwindow.cpp @@ -0,0 +1,123 @@ +#include "realtimesensorwindow.h" +#include "ui_realtimesensorwindow.h" +#include "ovenstatics.h" + +realtimeSensorWindow::realtimeSensorWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::realtimeSensorWindow) +{ + OvenStatics* ovs = OvenStatics::getInstance(); + int i = 0; + ui->setupUi(this); + + m_arrLbState[0][0] = ui->m_ctrlLbListState_1_1; + m_arrLbState[0][1] = ui->m_ctrlLbListState_1_2; + m_arrLbState[0][2] = ui->m_ctrlLbListState_1_3; + m_arrLbState[0][3] = ui->m_ctrlLbListState_1_4; + m_arrLbState[0][4] = ui->m_ctrlLbListState_1_5; + m_arrLbState[0][5] = ui->m_ctrlLbListState_1_6; + m_arrLbState[0][6] = ui->m_ctrlLbListState_1_7; + m_arrLbState[0][7] = ui->m_ctrlLbListState_1_8; + m_arrLbState[0][8] = ui->m_ctrlLbListState_1_9; + + m_arrLbState[1][0] = ui->m_ctrlLbListState_2_1; + m_arrLbState[1][1] = ui->m_ctrlLbListState_2_2; + m_arrLbState[1][2] = ui->m_ctrlLbListState_2_3; + m_arrLbState[1][3] = ui->m_ctrlLbListState_2_4; + m_arrLbState[1][4] = ui->m_ctrlLbListState_2_5; + m_arrLbState[1][5] = ui->m_ctrlLbListState_2_6; + m_arrLbState[1][6] = ui->m_ctrlLbListState_2_7; + m_arrLbState[1][7] = ui->m_ctrlLbListState_2_8; + m_arrLbState[1][8] = ui->m_ctrlLbListState_2_9; + + m_arrLbState[2][0] = ui->m_ctrlLbListState_3_1; + m_arrLbState[2][1] = ui->m_ctrlLbListState_3_2; + m_arrLbState[2][2] = ui->m_ctrlLbListState_3_3; + m_arrLbState[2][3] = ui->m_ctrlLbListState_3_4; + m_arrLbState[2][4] = ui->m_ctrlLbListState_3_5; + m_arrLbState[2][5] = ui->m_ctrlLbListState_3_6; + m_arrLbState[2][6] = ui->m_ctrlLbListState_3_7; + m_arrLbState[2][7] = ui->m_ctrlLbListState_3_8; + m_arrLbState[2][8] = ui->m_ctrlLbListState_3_9; + + m_arrLbState[3][0] = ui->m_ctrlLbListState_4_1; + m_arrLbState[3][1] = ui->m_ctrlLbListState_4_2; + m_arrLbState[3][2] = ui->m_ctrlLbListState_4_3; + m_arrLbState[3][3] = ui->m_ctrlLbListState_4_4; + m_arrLbState[3][4] = ui->m_ctrlLbListState_4_5; + m_arrLbState[3][5] = ui->m_ctrlLbListState_4_6; + m_arrLbState[3][6] = ui->m_ctrlLbListState_4_7; + m_arrLbState[3][7] = ui->m_ctrlLbListState_4_8; + m_arrLbState[3][8] = ui->m_ctrlLbListState_4_9; + + for(i=0;isrvdatas->sensor_log.values[m_arrSensorItemIdxs[i]]); + } + reloadUi(); +} + +realtimeSensorWindow::~realtimeSensorWindow() +{ + delete ui; +} + +void realtimeSensorWindow::on_backButton_clicked() +{ + deleteLater(); +} + +uint16_t i_temp1,i_temp2; +type_temp temp_temp; + +void realtimeSensorWindow::reloadUi(void){ + char strTime[64]; + QString strTemp=""; + struct tm *timeptr; + int i = 0; + OvenStatics* ovs = OvenStatics::getInstance(); + if(ovs!= NULL){ + for(i=0;igetSensorTypeByIdx(m_arrSensorItemIdxs[i]); + temp_temp = ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]); + + if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 2 ) + strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp/10); + else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1 ) + strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).utemp); + else strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp); + m_arrLbState[0][i]->setText(strTemp); + } + + for(i=0;igetSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 2 ) + strTemp.sprintf("%d℃",m_arrSensorItems[i]->high_temp.itemp/10); + else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1) + strTemp.sprintf("%d℃",m_arrSensorItems[i]->high_temp.utemp); + else strTemp.sprintf("%d℃",m_arrSensorItems[i]->high_temp.itemp); + m_arrLbState[1][i]->setText(strTemp); + } + + for(i=0;isetText(strTemp); + } + + + for(i=0;ilast_high_time !=0){ + timeptr = gmtime(&(m_arrSensorItems[i]->last_high_time)); + strftime(strTime,64,"%y-%m-%d\n%H:%M:%S",timeptr); + m_arrLbState[3][i]->setText(strTime); + } + else{ + m_arrLbState[3][i]->setText("-"); + } + } + + + + + } + +} diff --git a/app/gui/oven_control/realtimesensorwindow.h b/app/gui/oven_control/realtimesensorwindow.h new file mode 100644 index 0000000..89da473 --- /dev/null +++ b/app/gui/oven_control/realtimesensorwindow.h @@ -0,0 +1,42 @@ +#ifndef REALTIMESENSORWINDOW_H +#define REALTIMESENSORWINDOW_H + +#include +#include +#include "servicedatas.h" + +#define REALSENSOR_CONTROL_LIST_COL_MAX 4 +#define REALSENSOR_CONTROL_LIST_ITEM_MAX 9 + +namespace Ui { +class realtimeSensorWindow; +} + +class realtimeSensorWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit realtimeSensorWindow(QWidget *parent = 0); + ~realtimeSensorWindow(); + +private slots: + void on_backButton_clicked(); + +private: + const uint16_t m_arrSensorItemIdxs[REALSENSOR_CONTROL_LIST_ITEM_MAX]={ + 0,1,4,5,6,7,8,12,13 + }; + const uint16_t m_arrCriticalValue[REALSENSOR_CONTROL_LIST_ITEM_MAX] = { + 320,120,270,300,300,300,300,80,80 + }; + + Ui::realtimeSensorWindow *ui; + QLabel *m_arrLbState[REALSENSOR_CONTROL_LIST_COL_MAX][REALSENSOR_CONTROL_LIST_ITEM_MAX]; + sensor_log_item* m_arrSensorItems[REALSENSOR_CONTROL_LIST_ITEM_MAX]; + + + void reloadUi(void); +}; + +#endif // REALTIMESENSORWINDOW_H diff --git a/app/gui/oven_control/realtimesensorwindow.ui b/app/gui/oven_control/realtimesensorwindow.ui new file mode 100644 index 0000000..9fa8bb2 --- /dev/null +++ b/app/gui/oven_control/realtimesensorwindow.ui @@ -0,0 +1,1338 @@ + + + realtimeSensorWindow + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } +#midwidget { background-image: url(:/images/config/service/realtime_sensor_bgnd.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 1500 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 실시간데이터 > 온도센서 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 343 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + 457 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/help.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); } + + + + + + + + + + 57 + 532 + 793 + 916 + + + + QLabel { + color:white; +} + + + + + 3 + 0 + 261 + 71 + + + + + 나눔고딕 + 8 + + + + 목록 + + + Qt::AlignCenter + + + + + + 269 + 0 + 111 + 70 + + + + + 나눔고딕 + 8 + + + + 현재온도 + + + Qt::AlignCenter + + + + + + 0 + 87 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 실내온도 + + + + + + 269 + 78 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 0 + 182 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 퀀칭온도 + + + + + + 0 + 277 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 스팀제네레이터온도 + + + + + + 0 + 372 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 미트프로브온도1 + + + + + + 0 + 467 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 미트프로브온도2 + + + + + + 0 + 562 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 미트프로브온도3 + + + + + + 0 + 657 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 미트프로브온도4 + + + + + + 0 + 752 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + PCB온도 + + + + + + 382 + 0 + 111 + 70 + + + + + 나눔고딕 + 8 + + + + 최대온도 + + + Qt::AlignCenter + + + + + + 495 + 0 + 111 + 70 + + + + + 나눔고딕 + 8 + + + + 허용범위 + + + Qt::AlignCenter + + + + + + 269 + 173 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 269 + 268 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 269 + 363 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 269 + 458 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 269 + 553 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 269 + 648 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 269 + 743 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 0 + 842 + 256 + 62 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 기계식온도 + + + + + + 269 + 838 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 363 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 648 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 838 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 78 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 553 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 268 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 743 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 173 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 382 + 458 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 363 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 648 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 78 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 838 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 553 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 268 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 743 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 173 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 496 + 458 + 111 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 363 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 648 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 78 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 838 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 553 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 268 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 743 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 173 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 610 + 458 + 181 + 81 + + + + + 10 + + + + + + + Qt::AlignCenter + + + + + + 609 + 0 + 181 + 70 + + + + + 나눔고딕 + 8 + + + + 최대온도 +도달시간 + + + Qt::AlignCenter + + + + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + +
diff --git a/app/gui/oven_control/resources.qrc b/app/gui/oven_control/resources.qrc index d1864fc..85ff0f3 100644 --- a/app/gui/oven_control/resources.qrc +++ b/app/gui/oven_control/resources.qrc @@ -422,5 +422,14 @@ images/slider_icon/thermometer_ov.png images/background/popup/error.png images/symbol/warning_big.png + images/config/service/service_grid_background.png + images/config/service/service_menu_line.png + images/config/service/oprationtime_menu_line.png + images/config/service/operationtime_heat_bgnd.png + images/config/service/operationtime_mode_bgnd.png + images/config/service/operationtime_parts_bgnd.png + images/config/service/realtime_menu_line.png + images/config/service/realtime_parts_bgnd.png + images/config/service/realtime_sensor_bgnd.png diff --git a/app/gui/oven_control/servicedatas.cpp b/app/gui/oven_control/servicedatas.cpp index d9509ae..62c0586 100644 --- a/app/gui/oven_control/servicedatas.cpp +++ b/app/gui/oven_control/servicedatas.cpp @@ -1,19 +1,113 @@ #include "string.h" #include "servicedatas.h" #include +#include +#include // write(), close() + +#define FRAM_SIZE 2048 +#define FRAM_TEST_PROCESS 0 + +#define fRam_path "/sys/bus/spi/devices/spi0.0/fram" +#define INIT_FRAM 1 + servicedatas::servicedatas() { - qDebug()<< "Statics Data Size Report\r\n error_log size = " << sizeof(error_log) << " \r\nuse_static_log size = " << sizeof(use_statics_log); + qDebug()<< "Statics Data Size Report\r\n error_log size = " << sizeof(error_log) << " \r\nuse_static_log size = " << sizeof(use_statics_log) \ + << "\r\nsensor_statics_log size = " << sizeof(sensor_statics_log); memset((void*)err_log.datas,0x00,sizeof(error_log)); memset((void*)use_log.datas,0x00,sizeof(use_statics_log)); - + memset((void*)sensor_log.datas,0x00, sizeof(sensor_statics_log)); +#if INIT_FRAM == 1 + saveServiceDatas(); +#else + loadServiceDatas(); +#endif } + + bool servicedatas::loadServiceDatas(void){ + uint8_t buffs[FRAM_SIZE]; + int fd; + +#if FRAM_TEST_PROCESS == 1 + int i; + memset(buffs,0x00,256); + for(i=0;i<256;i++){ + buffs[i] = i; + } + fd = open(fRam_path, O_RDWR); + if(fd>0){ + write(fd,buffs,256); + close(fd); + } + else{ + qDebug()<<"FRAM open fail!"; + return false; + } + i=0; + memset(buffs,0x00,256); + fd = open(fRam_path, O_RDONLY ); + if(fd>0){ + read(fd,buffs,256); + close(fd); + }else{ + qDebug()<<"FRAM open fail!"; + return false; + } + for(i=0;i<256;i++){ + if(i !=buffs[i]) { + qDebug()<<"FRAM Test Fail"; + return false; + } + } + qDebug()<<"FRAM Test Success!"; return true; +#endif + + + + + + + fd = open(fRam_path, O_RDONLY ); + if(fd>0){ + memset(buffs,0x00,FRAM_SIZE); + read(fd,buffs,FRAM_SIZE); + if(buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log)] != 0x9C){ + close(fd); + return saveServiceDatas(); + } + + qDebug() << "FRAM Read, Write Size is " << sizeof(error_log)+sizeof(use_statics_log); + memcpy((void*)err_log.datas,buffs,sizeof(error_log)); + memcpy((void*)use_log.datas, (void*)(&buffs[sizeof(error_log)]),sizeof(use_statics_log)); + memcpy((void*)sensor_log.datas,(void*)(&buffs[sizeof(error_log) + sizeof(use_statics_log)]),sizeof(sensor_statics_log)); + close(fd); + }else{ + qDebug()<<"FRAM FILE Open fail!!"; + } + return true; } bool servicedatas::saveServiceDatas(void){ - return true; + uint8_t buffs[FRAM_SIZE]; + int fd; + fd = open(fRam_path, O_RDWR | O_SYNC); + if(fd>0){ + memset(buffs,0x00,FRAM_SIZE); + memcpy(buffs,(void*)err_log.datas,sizeof(error_log)); + memcpy((void*)(&buffs[sizeof(error_log)]),(void*)use_log.datas,sizeof(use_statics_log)); + memcpy((void*)(&buffs[sizeof(error_log) + sizeof(use_statics_log)]),(void*)sensor_log.datas,sizeof(sensor_statics_log)); + buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log)] = 0x9C; + write(fd,buffs,FRAM_SIZE); + close(fd); + }else{ + qDebug()<<"FRAM FILE Open fail!!"; + return false; + } + return true; } + + diff --git a/app/gui/oven_control/servicedatas.h b/app/gui/oven_control/servicedatas.h index 0a193fd..bff96f6 100644 --- a/app/gui/oven_control/servicedatas.h +++ b/app/gui/oven_control/servicedatas.h @@ -6,16 +6,53 @@ #define STRUCT_PACK __attribute__ ((packed)) -#define MAX_ERROR_TYPE_CNT 30 +#define MAX_ERROR_TYPE_CNT 31 #define MAX_STATICS_CNT 23 +#define MAX_LOG_SENSOR 16 + typedef struct _error_item{ uint16_t fired_cnt; time_t first_fired; time_t last_fried; }STRUCT_PACK error_item; +typedef union{ + int16_t itemp; + uint16_t utemp; +}type_temp; + +typedef struct _sensor_log_item{ + type_temp high_temp; + time_t last_high_time; +}STRUCT_PACK sensor_log_item; + + +typedef union _sensor_statics_log{ + uint8_t datas[MAX_LOG_SENSOR * sizeof(sensor_log_item)]; + sensor_log_item values[MAX_LOG_SENSOR]; + struct{ + sensor_log_item B1; + sensor_log_item B2; + sensor_log_item Reserved1; + sensor_log_item B4; + sensor_log_item B5; + sensor_log_item B3_1; + sensor_log_item B3_2; + sensor_log_item B3_3; + sensor_log_item B3_4; + sensor_log_item Reserved2; //10 + sensor_log_item mbar1; + sensor_log_item mbar2; + sensor_log_item pcb; + sensor_log_item adc; + sensor_log_item convec_fan_rpm; + sensor_log_item bunner_rpm; + }items; +}STRUCT_PACK sensor_statics_log; + + typedef union _error_log{ uint8_t datas[MAX_ERROR_TYPE_CNT*sizeof(error_item)]; @@ -51,9 +88,71 @@ typedef union _error_log{ error_item midd_motor_fail; error_item supply_motor_fail; // Steam Generator Tank Supply Pump error_item humidity_tamper_fail; + error_item repeat_error; }items; }STRUCT_PACK error_log; +enum ERROR_ITEM_IDX{ + ERROR_IDX_door=0, + ERROR_IDX_upper_fire_fail, + ERROR_IDX_upper_pan_fail, + ERROR_IDX_lower_fire_fail, + ERROR_IDX_lower_pan_fail, + ERROR_IDX_steam_fire_fail, + ERROR_IDX_steam_pan_fail, + ERROR_IDX_water_level_sensor_fail, + ERROR_IDX_water_flow_sensor_fail, + ERROR_IDX_inner_temp_high_alarm, //B1 Sensor + ERROR_IDX_inner_temp_fail, + ERROR_IDX_qunching_temp_high_alarm, //B2 Sensor + ERROR_IDX_qunching_temp_fail, + ERROR_IDX_meatprove_temp1_high_alarm, //B3 Sensor + ERROR_IDX_meatprove_temp1_fail, + ERROR_IDX_wall_temp1_high_alarm, //B4 Sensor + ERROR_IDX_wall_temp1_fail, + ERROR_IDX_steam_gen_temp_high_alram, //B5 Sensor + ERROR_IDX_steam_gen_temp_fail, + ERROR_IDX_meatprove_temp2_fail, + ERROR_IDX_meatprove_temp3_fail, + ERROR_IDX_meatprove_temp4_fail, + ERROR_IDX_pcb_temp_high_alarm, //PCB Temp + ERROR_IDX_pcb_temp_fail, + ERROR_IDX_upper_motor_fail, + ERROR_IDX_lower_motor_fail, + ERROR_IDX_small_motor_fail, + ERROR_IDX_midd_motor_fail, + ERROR_IDX_supply_motor_fail, // Steam Generator Tank Supply Pump + ERROR_IDX_humidity_tamper_fail +}; + +enum USE_ITEMS_IDX{ + USE_ITEM_steam_heat=0, + USE_ITEM_dry_heat, + USE_ITEM_upper_heat, + USE_ITEM_lower_heat, + USE_ITEM_cook_dry_mode, + USE_ITEM_cook_steam_mode, + USE_ITEM_cook_combi_mode, + USE_ITEM_wash_mode_nocleanser, + USE_ITEM_wash_mode_simple, + USE_ITEM_wash_mode_standard, + USE_ITEM_wash_mode_strong, + USE_ITEM_wash_mode_speed, + USE_ITEM_cooldown_mode, + USE_ITEM_door_open, + USE_ITEM_dv_open, + USE_ITEM_ssv_open, + USE_ITEM_qnv_open, + USE_ITEM_ssp_open, + USE_ITEM_snv_open, + USE_ITEM_hosereel, + USE_ITEM_hdm_open, + USE_ITEM_dp_open, + USE_ITEM_unp_open +}; + + + typedef union _use_statics_log{ uint8_t datas[MAX_STATICS_CNT*4]; @@ -89,8 +188,12 @@ class servicedatas { public: servicedatas(); + + error_log err_log; use_statics_log use_log; + sensor_statics_log sensor_log; + uint16_t m_nRepeatErrorIdx; bool saveServiceDatas(void); bool loadServiceDatas(void); }; diff --git a/app/gui/oven_control/servicehistorymain.cpp b/app/gui/oven_control/servicehistorymain.cpp new file mode 100644 index 0000000..9812361 --- /dev/null +++ b/app/gui/oven_control/servicehistorymain.cpp @@ -0,0 +1,48 @@ +#include "servicehistorymain.h" +#include "ui_servicehistorymain.h" +#include "historylistwindow.h" + +serviceHistoryMain::serviceHistoryMain(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::serviceHistoryMain) +{ + ui->setupUi(this); + connect(ui->backButton, SIGNAL(released()), this, SLOT(deleteLater())); +} + +serviceHistoryMain::~serviceHistoryMain() +{ + delete ui; +} + +void serviceHistoryMain::on_btnUpperBunner_clicked() +{ + historyListWindow *w = new historyListWindow(this); + w->setWindosDataSet(ERROR_HISTORY_UPPERBUNNER); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void serviceHistoryMain::on_btnSteamBunner_clicked() +{ + historyListWindow *w = new historyListWindow(this); + w->setWindosDataSet(ERROR_HISTORY_STEAMBUNNER); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void serviceHistoryMain::on_btnLowerBunner_clicked() +{ + historyListWindow *w = new historyListWindow(this); + w->setWindosDataSet(ERROR_HISTORY_LOWERBUNNER); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} + +void serviceHistoryMain::on_btnErrorTotal_clicked() +{ + historyListWindow *w = new historyListWindow(this); + w->setWindosDataSet(ERROR_HISTORY_TOTAL); + w->setWindowModality(Qt::WindowModal); + w->showFullScreen(); +} diff --git a/app/gui/oven_control/servicehistorymain.h b/app/gui/oven_control/servicehistorymain.h new file mode 100644 index 0000000..39e0a85 --- /dev/null +++ b/app/gui/oven_control/servicehistorymain.h @@ -0,0 +1,31 @@ +#ifndef SERVICEHISTORYMAIN_H +#define SERVICEHISTORYMAIN_H + +#include + +namespace Ui { +class serviceHistoryMain; +} + +class serviceHistoryMain : public QMainWindow +{ + Q_OBJECT + +public: + explicit serviceHistoryMain(QWidget *parent = 0); + ~serviceHistoryMain(); + +private slots: + void on_btnUpperBunner_clicked(); + + void on_btnSteamBunner_clicked(); + + void on_btnLowerBunner_clicked(); + + void on_btnErrorTotal_clicked(); + +private: + Ui::serviceHistoryMain *ui; +}; + +#endif // SERVICEHISTORYMAIN_H diff --git a/app/gui/oven_control/servicehistorymain.ui b/app/gui/oven_control/servicehistorymain.ui new file mode 100644 index 0000000..a4e2f17 --- /dev/null +++ b/app/gui/oven_control/servicehistorymain.ui @@ -0,0 +1,357 @@ + + + serviceHistoryMain + + + + 0 + 0 + 900 + 1600 + + + + MainWindow + + + #centralwidget { background-image: url(:/images/background/config_service.png); } +#bottomBar { background-image: url(:/images/bottom_bar/background.png); } + + + + + + + + + 0 + 0 + 900 + 426 + + + + + #clockContainer { background-image: url(:/images/clock/background.png); } + + + + + 272 + 36 + 356 + 355 + + + + + + + + + + 55 + 426 + 900 + 84 + + + + + Malgun Gothic + 11 + + + + color: rgb(255, 255, 255); + + + 서비스단계(엔지니어모드) > 서비스기록 + + + + + + 0 + 1450 + 900 + 150 + + + + + + 401 + 26 + 97 + 97 + + + + + 0 + 0 + + + + QPushButton { border-image: url(:/images/bottom_bar/back.png); } +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); } + + + + + + + + + + 40 + 545 + 821 + 66 + + + + + 0 + + + + + false + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/config/pannel.png);color: rgb(255, 255, 255); } +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); } +QPushButton { text-align: left;} + + + + 서비스기록 + + + + + + + true + + + + Malgun Gothic + 11 + 75 + true + + + + color: rgb(255, 255, 255); + + + EM-4 + + + Qt::AlignCenter + + + 0 + + + + + + + + + 124 + 630 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 상부점화장치 + + + + + + 124 + 717 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 스팀점화장치 + + + + + + 124 + 802 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 하부점화장치 + + + + + + 124 + 887 + 381 + 65 + + + + + 0 + 0 + + + + + Roboto + 10 + 75 + true + false + + + + QPushButton { border-image: url(:/images/button/379_63.png); +color: rgb(55, 55, 55); } +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); } +QPushButton { text-align: center;} + + + + 서비스에러기록종합 + + + + + + 100 + 606 + 28 + 314 + + + + + + + :/images/config/service/service_menu_line.png + + + label + upperStack + label_15 + bottomBar + gridLayoutWidget + btnUpperBunner + btnSteamBunner + btnLowerBunner + btnErrorTotal + + + + + Clock + QWidget +
clock.h
+ 1 +
+
+ + + + +
diff --git a/app/gui/oven_control/udphandler.cpp b/app/gui/oven_control/udphandler.cpp index 2a72b41..3341cf5 100644 --- a/app/gui/oven_control/udphandler.cpp +++ b/app/gui/oven_control/udphandler.cpp @@ -13,7 +13,8 @@ typedef struct { UdpHandler::UdpHandler(QObject *parent) : QObject(parent) { - + bzero(&control, sizeof(control)); + bzero(&state, sizeof(state)); } bool UdpHandler::init()