652e9cd54
고영탁
Merge
|
1
2
|
#include "ovenstatics.h"
#include <QtDebug>
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
3
4
|
#include <QApplication>
#include <QTimer>
|
652e9cd54
고영탁
Merge
|
5
6
|
#include "mainwindow.h"
#include "ovencontroller.h"
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
7
8
|
#include "engineermenuwindow.h"
#include "errorpopupdlg.h"
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
9
|
#include "historylistwindow.h"
|
652e9cd54
고영탁
Merge
|
10
|
|
42410a75c
김태훈
오타 수정
|
11
|
OvenStatistics* OvenStatistics::p_singletonInstance=NULL;
|
652e9cd54
고영탁
Merge
|
12
|
|
538041ab9
김태훈
소스 코드 구조 개선
|
13
|
OvenStatistics* OvenStatistics::getInstance(QObject *parent){
|
42410a75c
김태훈
오타 수정
|
14
|
if(!p_singletonInstance){
|
42410a75c
김태훈
오타 수정
|
15
|
p_singletonInstance = new OvenStatistics(parent);
|
538041ab9
김태훈
소스 코드 구조 개선
|
16
17
|
p_singletonInstance->udp = UdpHandler::getInstance();
p_singletonInstance->oven = Oven::getInstance();
|
652e9cd54
고영탁
Merge
|
18
|
//for singletone event debug
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
19
20
|
// MainWindow* mw = (MainWindow*)parent;
// connect(mw->pcombiButton, SIGNAL(clicked()),p_singtonInstance, SLOT(onDataChanged()));
|
42410a75c
김태훈
오타 수정
|
21
22
23
|
connect(p_singletonInstance->udp , SIGNAL(changed()), p_singletonInstance, SLOT(onDataChanged()));
QTimer *timer = new QTimer(p_singletonInstance);
connect(timer, SIGNAL(timeout()),p_singletonInstance,SLOT(oneSecTimerFired()));
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
24
|
timer->start(1000); //1000ms fired
|
652e9cd54
고영탁
Merge
|
25
|
}
|
42410a75c
김태훈
오타 수정
|
26
|
return p_singletonInstance;
|
652e9cd54
고영탁
Merge
|
27
|
}
|
42410a75c
김태훈
오타 수정
|
28
29
30
|
void OvenStatistics::destroy(){
if(!p_singletonInstance)
delete p_singletonInstance;
|
652e9cd54
고영탁
Merge
|
31
|
}
|
42410a75c
김태훈
오타 수정
|
32
|
OvenStatistics::OvenStatistics(QObject* parent) :QObject(parent)
|
652e9cd54
고영탁
Merge
|
33
|
{
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
34
|
int i = 0;
|
652e9cd54
고영탁
Merge
|
35
36
|
curdoorstate = false;
curSysErrorState = 0;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
37
38
39
|
curCommErrorState = 0;
curSensorErrorState = 0;
bDataRefreshed = false;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
40
|
realdata.d32 = 0;
|
cefd483e4
고영탁
에러 수정
|
41
42
|
m_bPopupShow = false;
m_nLastPopupidx = MAX_ERROR_TYPE_CNT;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
43
44
45
46
47
|
for(i=0;i<MAX_LOG_SENSOR;i++){
curSensorValue[i].utemp = 0;
}
curSensorValue[12].itemp = 100;
|
14a73498f
김태훈
소스 코드 정리
|
48
|
srvdata = new ServiceData();
|
a21bb5f67
고영탁
버그 수정
|
49
|
|
652e9cd54
고영탁
Merge
|
50
|
}
|
42410a75c
김태훈
오타 수정
|
51
|
OvenStatistics::~OvenStatistics(){
|
14a73498f
김태훈
소스 코드 정리
|
52
|
delete srvdata;
|
652e9cd54
고영탁
Merge
|
53
|
}
|
42410a75c
김태훈
오타 수정
|
54
|
void OvenStatistics::onDataChanged()
|
652e9cd54
고영탁
Merge
|
55
56
57
|
{
error_item *item;
time_t ltime=0;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
58
|
uint16_t errstatetemp;
|
652e9cd54
고영탁
Merge
|
59
|
qDebug() << "statics event fired";
|
652e9cd54
고영탁
Merge
|
60
61
|
udp->fillControl(control);
udp->fillData(state);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
62
|
bDataRefreshed = true;
|
652e9cd54
고영탁
Merge
|
63
|
time(<ime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
64
|
|
652e9cd54
고영탁
Merge
|
65
66
67
|
if(oven->cooking() && control.system){
if(state.door_state ==1 && curdoorstate==0){
//door error
|
14a73498f
김태훈
소스 코드 정리
|
68
|
item = &(srvdata->err_log.items.door);
|
652e9cd54
고영탁
Merge
|
69
70
71
72
73
|
item->fired_cnt+=1;
if(item->first_fired==0)item->first_fired = ltime;
item->last_fried = ltime;
}
curdoorstate = state.door_state;
|
652e9cd54
고영탁
Merge
|
74
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
75
76
77
78
|
if(state.system_error!=0 && state.system_error != curSysErrorState){
processSystemError( state.system_error,ltime);
}
curSysErrorState = state.system_error;
|
fb200c9f1
고영탁
머지 후 컴파일 오류 수정
|
79
|
errstatetemp = state.communication_error;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
80
81
82
83
|
if(errstatetemp!=0 && errstatetemp != curCommErrorState ){
processCommError( errstatetemp,ltime );
}
curCommErrorState = errstatetemp;
|
fb200c9f1
고영탁
머지 후 컴파일 오류 수정
|
84
|
errstatetemp = state.sensor_error;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
85
|
if(errstatetemp!=0 && errstatetemp != curSensorErrorState ){
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
86
|
processSensorError(errstatetemp,ltime );
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
87
88
89
90
91
|
}
curSensorErrorState = errstatetemp;
}
|
42410a75c
김태훈
오타 수정
|
92
|
void OvenStatistics::processSensorError(uint16_t errflag, time_t ltime){
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
93
|
error_item *item;
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
94
|
QString strMsg = "",strTitle="";
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
95
96
97
98
99
100
101
|
uint8_t state;
if( control.system==0 && !oven->cooking()) state = SYS_OFF_COOK_OFF;
else if(control.system != 0 && !oven->cooking()) state = SYS_ON_COOK_OFF;
else if(control.system !=0 && oven->cooking()) state = SYS_ON_COOK_ON;
else state = SYS_ON_COOK_OFF;
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_1)){
|
14a73498f
김태훈
소스 코드 정리
|
102
|
item = &(srvdata->err_log.items.inner_temp_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
103
104
105
|
strTitle = tr("내부 온도 이상 발생");
strMsg = tr("내부 온도 센서에 이상이 발생하였습니다.");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_1],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
106
107
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_2)){
|
14a73498f
김태훈
소스 코드 정리
|
108
|
item = &(srvdata->err_log.items.qunching_temp_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
109
110
111
|
strTitle = tr("퀀칭 온도 이상 발생");
strMsg = tr("퀀칭 온도에 이상이 발생하였습니다.");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_2],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
112
113
114
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_3)){
//Reserved allerrornoe 설정
|
14a73498f
김태훈
소스 코드 정리
|
115
|
item = &(srvdata->err_log.items.qunching_temp_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
116
117
118
|
strTitle = tr("퀀칭 온도 이상 발생");
strMsg = tr("퀀칭 온도 센서에 이상이 발생하였습니다.");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_3],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
119
120
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_4)){
|
14a73498f
김태훈
소스 코드 정리
|
121
|
item = &(srvdata->err_log.items.wall_temp1_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
122
123
124
|
strTitle = tr("벽면 온도 이상 발생");
strMsg = tr("벽면 온도 센서에 이상이 발생하였습니다.");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_4],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
125
126
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_5)){
|
14a73498f
김태훈
소스 코드 정리
|
127
|
item = &(srvdata->err_log.items.steam_gen_temp_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
128
129
130
|
strTitle = tr("스팀제네레이터 온도 이상 발생");
strMsg = tr("스팀제네레이터 온도 센서에 이상이 발생하였습니다.");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_5],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
131
132
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_6)){
|
14a73498f
김태훈
소스 코드 정리
|
133
|
item = &(srvdata->err_log.items.meatprove_temp1_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
134
135
136
|
strTitle = tr("미트프로브 온도 이상 발생");
strMsg = tr("미트프로브 온도 센서에 이상이 발생하였습니다.");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_6],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
137
138
139
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_7)){
//Reseved
|
14a73498f
김태훈
소스 코드 정리
|
140
|
item = &(srvdata->err_log.items.meatprove_temp2_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
141
142
143
|
strTitle = tr("미트프로브2 온도 이상 발생");
strMsg = tr("미트프로브2 온도 센서에 이상이 발생하였습니다.");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_7],strMsg , strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
144
145
146
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_8)){
//Reserved
|
14a73498f
김태훈
소스 코드 정리
|
147
|
item = &(srvdata->err_log.items.meatprove_temp3_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
148
149
150
|
strMsg = tr("미트프로브3 온도 센서에 이상이 발생하였습니다.");
strTitle = tr("미트프로브3 온도 이상 발생");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_8],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
151
152
153
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_9)){
//Reserved
|
14a73498f
김태훈
소스 코드 정리
|
154
|
item = &(srvdata->err_log.items.meatprove_temp4_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
155
156
157
|
strMsg = tr("미트프로브4 온도 센서에 이상이 발생하였습니다.");
strTitle = tr("미트프로브4 온도 이상 발생");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_9],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
158
159
|
}
if(errflag & MAKE_MASK(SENSOR_ERR_SENSOR_10)){
|
14a73498f
김태훈
소스 코드 정리
|
160
|
item = &(srvdata->err_log.items.pcb_temp_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
161
162
163
|
strMsg = tr("PCB 온도 센서에 이상이 발생하였습니다.");
strTitle = tr("PCB 온도 이상 발생");
processErrorItems(item,sensor_err_type_def[state][SENSOR_ERR_SENSOR_10],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
164
165
|
}
}
|
42410a75c
김태훈
오타 수정
|
166
|
void OvenStatistics::processCommError(uint16_t errflag, time_t ltime){
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
167
|
error_item *item;
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
168
|
QString strMsg = "",strTitle="";
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
169
170
171
172
173
174
175
|
uint8_t state;
if( control.system==0 && !oven->cooking()) state = SYS_OFF_COOK_OFF;
else if(control.system != 0 && !oven->cooking()) state = SYS_ON_COOK_OFF;
else if(control.system !=0 && oven->cooking()) state = SYS_ON_COOK_ON;
else state = SYS_ON_COOK_OFF;
if(errflag & MAKE_MASK(COMM_ERR_BUNNER1)){
|
14a73498f
김태훈
소스 코드 정리
|
176
|
item = &(srvdata->err_log.items.upper_pan_fail);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
177
|
strMsg = tr("상부 송풍기 이상 발생");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
178
179
|
strTitle = tr("상부 송풍기 이상 발생");
processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER1],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
180
181
|
}
if(errflag & MAKE_MASK(COMM_ERR_BUNNER2)){
|
14a73498f
김태훈
소스 코드 정리
|
182
|
item = &(srvdata->err_log.items.lower_pan_fail);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
183
|
strMsg = tr("하부 송풍기 이상 발생");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
184
185
|
strTitle = tr("하부 송풍기 이상 발생");
processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
186
187
|
}
if(errflag & MAKE_MASK(COMM_ERR_BUNNER3)){
|
14a73498f
김태훈
소스 코드 정리
|
188
|
item = &(srvdata->err_log.items.steam_pan_fail);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
189
|
strMsg = tr("스팀 송풍기 이상 발생");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
190
191
|
strTitle = tr("스팀 송풍기 이상 발생");
processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER3],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
192
|
}
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
193
|
if(errflag & MAKE_MASK(COMM_ERR_LOWERFAN)){
|
14a73498f
김태훈
소스 코드 정리
|
194
|
item = &(srvdata->err_log.items.lower_motor_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
195
196
197
|
strMsg = tr("하부 모터 컨트롤러 이상 발생");
strTitle = tr("하부 모터 컨트롤러 이상 발생");
processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
198
199
|
}
if(errflag & MAKE_MASK(COMM_ERR_UPPERFAN)){
|
14a73498f
김태훈
소스 코드 정리
|
200
|
item = &(srvdata->err_log.items.upper_motor_fail);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
201
|
strMsg = tr("상부 모터 컨트롤러 이상 발생");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
202
203
|
strTitle = tr("상부 모터 컨트롤러 이상 발생");
processErrorItems(item,comm_err_type_def[state][COMM_ERR_BUNNER2],strMsg,strTitle, ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
204
|
}
|
652e9cd54
고영탁
Merge
|
205
|
}
|
42410a75c
김태훈
오타 수정
|
206
|
void OvenStatistics::processSystemError(uint16_t errflag,time_t ltime){
|
652e9cd54
고영탁
Merge
|
207
|
error_item *item;
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
208
|
QString strMsg = "",strTitle = "";
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
209
210
211
212
213
214
215
|
uint8_t state;
if( control.system==0 && !oven->cooking()) state = SYS_OFF_COOK_OFF;
else if(control.system != 0 && !oven->cooking()) state = SYS_ON_COOK_OFF;
else if(control.system !=0 && oven->cooking()) state = SYS_ON_COOK_ON;
else state = SYS_ON_COOK_OFF;
if( errflag & MAKE_MASK(SYS_ERR_FIRE_TRIGGER1)){
|
652e9cd54
고영탁
Merge
|
216
|
//버너 컨트롤러 1 착화 이상
|
14a73498f
김태훈
소스 코드 정리
|
217
|
item = &(srvdata->err_log.items.upper_fire_fail);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
218
|
strMsg = tr("상부 버너 착하가 되지 않습니다.");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
219
220
|
strTitle = tr("상부 버너 착하 이상 발생");
processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER1],strMsg,strTitle,ltime);
|
652e9cd54
고영탁
Merge
|
221
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
222
|
if(errflag & MAKE_MASK(SYS_ERR_FIRE_TRIGGER2)){
|
652e9cd54
고영탁
Merge
|
223
|
//버너 컨트롤러 2 착화 이상
|
14a73498f
김태훈
소스 코드 정리
|
224
|
item = &(srvdata->err_log.items.lower_fire_fail);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
225
|
strMsg = tr("하부 버너 착하가 되지 않습니다.");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
226
227
|
strTitle = tr("하부 버너 착하 이상 발생");
processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER2],strMsg,strTitle,ltime);
|
652e9cd54
고영탁
Merge
|
228
|
}
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
229
|
if(errflag & MAKE_MASK(SYS_ERR_FIRE_TRIGGER3)){
|
14a73498f
김태훈
소스 코드 정리
|
230
|
item = &(srvdata->err_log.items.steam_fire_fail);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
231
|
strMsg = tr("스팀 버너 착하가 되지 않습니다.");
|
cefd483e4
고영탁
에러 수정
|
232
|
strTitle = tr("스팀 버너 착하 이상 발생");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
233
|
processErrorItems(item, sys_err_type_def[state][SYS_ERR_FIRE_TRIGGER3],strMsg,strTitle,ltime);
|
652e9cd54
고영탁
Merge
|
234
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
235
|
if(errflag & MAKE_MASK(SYS_ERR_OVNE_TEMP_ALARM)){
|
14a73498f
김태훈
소스 코드 정리
|
236
|
item = &(srvdata->err_log.items.inner_temp_high_alarm);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
237
238
239
|
strMsg = tr("내부 온도가 과열되었습니다.");
strTitle = tr("내부 온도 과열 발생");
processErrorItems(item, sys_err_type_def[state][SYS_ERR_OVNE_TEMP_ALARM],strMsg,strTitle,ltime);
|
652e9cd54
고영탁
Merge
|
240
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
241
242
|
if(errflag & MAKE_MASK(SYS_ERR_QUN_TEMP_ALARM)){
//퀀칭 온도 센서 과열
|
14a73498f
김태훈
소스 코드 정리
|
243
|
item = &(srvdata->err_log.items.qunching_temp_high_alarm);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
244
245
246
|
strTitle = tr("퀀칭 온도 센서 이상 발생");
strMsg = tr("퀀칭 온도 센서가 과열되었습니다");
processErrorItems(item, sys_err_type_def[state][SYS_ERR_QUN_TEMP_ALARM],strMsg,strTitle,ltime);
|
652e9cd54
고영탁
Merge
|
247
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
248
249
|
if(errflag & MAKE_MASK(SYS_ERR_CENTER_TEMP_ALARM)){
//중심 온도 과열
|
14a73498f
김태훈
소스 코드 정리
|
250
|
item = &(srvdata->err_log.items.meatprove_temp1_high_alarm);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
251
252
253
|
strTitle = tr("미트프로브 온도 센서 이상 발생.");
strMsg = tr("미트프로브 온도 센서 과열되었습니다.");
processErrorItems(item, sys_err_type_def[state][SYS_ERR_CENTER_TEMP_ALARM],strMsg,strTitle,ltime);
|
652e9cd54
고영탁
Merge
|
254
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
255
|
if(errflag & MAKE_MASK(SYS_ERR_WALL_TEMP_ALARM)){
|
14a73498f
김태훈
소스 코드 정리
|
256
|
item = &(srvdata->err_log.items.wall_temp1_high_alarm);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
257
258
259
260
261
|
strTitle = tr("벽면 온도 센서 이상 발생.");
strMsg = tr("벽면 온도 센서가 과열 되었습니다.");
processErrorItems(item, sys_err_type_def[state][SYS_ERR_WALL_TEMP_ALARM],strMsg,strTitle,ltime);
}
if(errflag & MAKE_MASK(SYS_ERR_STAM_TEMP_ALARM)){
|
14a73498f
김태훈
소스 코드 정리
|
262
|
item = &(srvdata->err_log.items.steam_gen_temp_high_alram);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
263
264
265
266
|
strTitle = tr("스팀제네레이터 온도 과열 발생.");
strMsg = tr("스팀제네레이터 온도 센서 과열이 발생되었습니다.");
processErrorItems(item, sys_err_type_def[state][SYS_ERR_STAM_TEMP_ALARM],strMsg,strTitle,ltime);
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
267
268
|
if(errflag & MAKE_MASK(SYS_ERR_WATER_SPLY_FAIL)){
//급수 이상 -> 유량 센서 이상
|
14a73498f
김태훈
소스 코드 정리
|
269
|
item = &(srvdata->err_log.items.water_level_sensor_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
270
|
strTitle = tr("급수 이상 발생");
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
271
|
strMsg = tr("급수가 되지 않습니다.");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
272
|
processErrorItems(item, sys_err_type_def[state][SYS_ERR_WATER_SPLY_FAIL],strMsg,strTitle,ltime);
|
652e9cd54
고영탁
Merge
|
273
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
274
275
|
if(errflag & MAKE_MASK(SYS_ERR_WATER_LEVEL_FAIL)){
//급수 이상 -> 수위 센서 이상
|
14a73498f
김태훈
소스 코드 정리
|
276
|
item = &(srvdata->err_log.items.water_level_sensor_fail);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
277
|
strTitle = tr("급수 이상 발생");
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
278
|
strMsg = tr("급수가 되지 않습니다.");
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
279
|
processErrorItems(item, sys_err_type_def[state][SYS_ERR_WATER_LEVEL_FAIL],strMsg,strTitle,ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
280
281
|
}
}
|
42410a75c
김태훈
오타 수정
|
282
|
bool OvenStatistics::getNeedErrorClear(){
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
283
284
|
return bNeedErrorClear;
}
|
42410a75c
김태훈
오타 수정
|
285
|
void OvenStatistics::clearNeedErrorClear(){
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
286
287
288
|
//에러클리어 송신 후 flag clear
bNeedErrorClear = false;
}
|
42410a75c
김태훈
오타 수정
|
289
|
void OvenStatistics::oneSecTimerFired(void){
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
290
291
292
293
294
295
296
|
static int nOneSecCnt=1;
time_t ltime;
ltime = time(NULL);
nOneSecCnt++;
if( (nOneSecCnt % 10) ==0 ) {
|
14a73498f
김태훈
소스 코드 정리
|
297
|
srvdata->saveServiceData();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
298
|
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
299
300
301
302
303
304
305
|
if(bDataRefreshed) bDataRefreshed= false;
else{
udp->fillControl(control);
udp->fillData(state);
}
//가열부 시간 측정
if( (state.onoff_state1 & LOAD_STATE1_STEAM_BUNNER) !=0){
|
14a73498f
김태훈
소스 코드 정리
|
306
|
srvdata->use_log.items.steam_heat +=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
307
308
|
}
if( (state.onoff_state1 & (LOAD_STATE1_UPPER_BUNNER | LOAD_STATE1_LOWER_FAN))!=0){
|
14a73498f
김태훈
소스 코드 정리
|
309
|
srvdata->use_log.items.dry_heat+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
310
|
if(state.onoff_state1 & (LOAD_STATE1_UPPER_BUNNER)){
|
14a73498f
김태훈
소스 코드 정리
|
311
|
srvdata->use_log.items.upper_heat +=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
312
313
|
}
if((state.onoff_state2 & LOAD_STATE1_LOWER_BUNNER)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
314
|
srvdata->use_log.items.lower_heat +=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
315
316
317
318
319
320
|
}
}
//모드 시간 계산
if(state.cooking_mode !=0){
if(state.cooking_humidity==0){
//건열 모드
|
14a73498f
김태훈
소스 코드 정리
|
321
|
srvdata->use_log.items.cook_dry_mode+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
322
323
324
|
}
else if(state.cooking_humidity ==100){
//스팀모드
|
14a73498f
김태훈
소스 코드 정리
|
325
|
srvdata->use_log.items.cook_steam_mode+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
326
|
}
|
14a73498f
김태훈
소스 코드 정리
|
327
|
else srvdata->use_log.items.cook_combi_mode+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
328
|
}
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
329
|
if(state.cleaning_mode !=0 && state.cleaning_sate !=0){
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
330
331
|
switch (state.cleaning_mode) {
case (uint16_t)wash_mode_nocleanser:
|
14a73498f
김태훈
소스 코드 정리
|
332
|
srvdata->use_log.items.wash_mode_nocleanser+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
333
334
|
break;
case (uint16_t)wash_mode_simple:
|
14a73498f
김태훈
소스 코드 정리
|
335
|
srvdata->use_log.items.wash_mode_simple+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
336
337
|
break;
case (uint16_t)wash_mode_standard:
|
14a73498f
김태훈
소스 코드 정리
|
338
|
srvdata->use_log.items.wash_mode_standard+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
339
340
|
break;
case (uint16_t)wash_mode_strong:
|
14a73498f
김태훈
소스 코드 정리
|
341
|
srvdata->use_log.items.wash_mode_strong+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
342
343
|
break;
case (uint16_t)wash_mode_highspeed:
|
14a73498f
김태훈
소스 코드 정리
|
344
|
srvdata->use_log.items.wash_mode_speed+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
345
346
347
348
349
350
|
break;
default:
break;
}
}
if(control.cooldown ==1){
|
14a73498f
김태훈
소스 코드 정리
|
351
|
srvdata->use_log.items.cooldown_mode+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
352
353
|
}
//부품
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
354
|
if(state.door_state !=0){
|
14a73498f
김태훈
소스 코드 정리
|
355
|
srvdata->use_log.items.door_open+=1;
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
356
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
357
|
}
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
358
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
359
360
|
if(state.onoff_state2 !=0){
if( (state.onoff_state2 & LOAD_STATE2_DV)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
361
|
srvdata->use_log.items.dv_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
362
363
|
}
if((state.onoff_state2 & LOAD_STATE2_SSV)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
364
|
srvdata->use_log.items.ssv_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
365
366
|
}
if((state.onoff_state2 & LOAD_STATE2_QNV)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
367
|
srvdata->use_log.items.qnv_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
368
369
|
}
if((state.onoff_state2 & LOAD_STATE2_SNV)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
370
|
srvdata->use_log.items.snv_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
371
372
|
}
if((state.onoff_state2 & LOAD_STATE2_SSP)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
373
|
srvdata->use_log.items.ssp_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
374
375
|
}
if((state.onoff_state2 & LOAD_STATE2_HDM)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
376
|
srvdata->use_log.items.hdm_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
377
378
|
}
if((state.onoff_state2 & LOAD_STATE2_DP)!=0){
|
14a73498f
김태훈
소스 코드 정리
|
379
|
srvdata->use_log.items.dp_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
380
381
|
}
if((state.onoff_state2 & LOAD_STATE2_UNP) !=0){
|
14a73498f
김태훈
소스 코드 정리
|
382
|
srvdata->use_log.items.unp_open+=1;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
383
384
|
}
}
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
385
386
387
388
389
390
391
392
|
//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;
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
393
|
realdata.b.wsv_open = (state.onoff_state2&LOAD_STATE2_WSV)==0?0:1;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
394
|
realdata.b.ssv_open = (state.onoff_state2&LOAD_STATE2_SSV)==0?0:1;
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
395
396
397
398
399
400
401
402
403
|
if( (state.reserved11 & 0x0018) !=0){
if( (state.reserved11&0x0008) != 0){
realdata.b.water_level = water_level_high;
}
else if( (state.reserved11 & 0x0010) !=0){
realdata.b.water_level = water_level_low;
}
}
else realdata.b.water_level = water_level_normal;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
404
|
|
14a73498f
김태훈
소스 코드 정리
|
405
406
407
|
if(srvdata->sensor_log.items.B1.high_temp.itemp < state.sensor1 ){
srvdata->sensor_log.items.B1.high_temp.itemp = state.sensor1;
srvdata->sensor_log.items.B1.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
408
409
|
}
curSensorValue[0].itemp = state.sensor1;
|
14a73498f
김태훈
소스 코드 정리
|
410
411
412
|
if(srvdata->sensor_log.items.B2.high_temp.itemp < state.sensor2 ){
srvdata->sensor_log.items.B2.high_temp.itemp = state.sensor2;
srvdata->sensor_log.items.B2.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
413
414
|
}
curSensorValue[1].itemp = state.sensor2;
|
14a73498f
김태훈
소스 코드 정리
|
415
416
417
|
if(srvdata->sensor_log.items.B3_1.high_temp.itemp < state.sensor6 ){
srvdata->sensor_log.items.B3_1.high_temp.itemp = state.sensor6;
srvdata->sensor_log.items.B3_1.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
418
419
|
}
curSensorValue[5].itemp = state.sensor6;
|
14a73498f
김태훈
소스 코드 정리
|
420
421
422
|
if(srvdata->sensor_log.items.B4.high_temp.itemp < state.sensor4 ){
srvdata->sensor_log.items.B4.high_temp.itemp = state.sensor4;
srvdata->sensor_log.items.B4.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
423
424
|
}
curSensorValue[3].itemp = state.sensor4;
|
14a73498f
김태훈
소스 코드 정리
|
425
426
427
|
if(srvdata->sensor_log.items.B5.high_temp.itemp < state.sensor5 ){
srvdata->sensor_log.items.B5.high_temp.itemp = state.sensor5;
srvdata->sensor_log.items.B5.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
428
429
|
}
curSensorValue[4].itemp = state.sensor5;
|
14a73498f
김태훈
소스 코드 정리
|
430
431
432
|
if(srvdata->sensor_log.items.B3_2.high_temp.itemp < state.sensor7 ){
srvdata->sensor_log.items.B3_2.high_temp.itemp = state.sensor7;
srvdata->sensor_log.items.B3_2.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
433
434
|
}
curSensorValue[6].itemp = state.sensor7;
|
14a73498f
김태훈
소스 코드 정리
|
435
436
437
|
if(srvdata->sensor_log.items.B3_3.high_temp.itemp < state.sensor8 ){
srvdata->sensor_log.items.B3_3.high_temp.itemp = state.sensor8;
srvdata->sensor_log.items.B3_3.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
438
439
|
}
curSensorValue[7].itemp = state.sensor8;
|
14a73498f
김태훈
소스 코드 정리
|
440
441
442
|
if(srvdata->sensor_log.items.B3_4.high_temp.itemp < state.sensor9 ){
srvdata->sensor_log.items.B3_4.high_temp.itemp = state.sensor9;
srvdata->sensor_log.items.B3_4.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
443
444
|
}
curSensorValue[8].itemp = state.sensor9;
|
14a73498f
김태훈
소스 코드 정리
|
445
446
447
|
if(srvdata->sensor_log.items.mbar1.high_temp.utemp < state.sensor11 ){
srvdata->sensor_log.items.mbar1.high_temp.utemp = state.sensor11;
srvdata->sensor_log.items.mbar1.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
448
449
|
}
curSensorValue[10].utemp = state.sensor11;
|
14a73498f
김태훈
소스 코드 정리
|
450
451
452
|
if(srvdata->sensor_log.items.mbar2.high_temp.utemp < state.sensor12 ){
srvdata->sensor_log.items.mbar2.high_temp.utemp = state.sensor12;
srvdata->sensor_log.items.mbar2.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
453
454
|
}
curSensorValue[11].utemp = state.sensor12;
|
14a73498f
김태훈
소스 코드 정리
|
455
456
457
|
if(srvdata->sensor_log.items.pcb.high_temp.itemp < state.sensor13 ){
srvdata->sensor_log.items.pcb.high_temp.itemp = state.sensor13;
srvdata->sensor_log.items.pcb.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
458
459
|
}
curSensorValue[12].itemp = state.sensor13;
|
14a73498f
김태훈
소스 코드 정리
|
460
461
462
|
if(srvdata->sensor_log.items.adc.high_temp.itemp < state.sensor14 ){
srvdata->sensor_log.items.adc.high_temp.itemp = state.sensor14;
srvdata->sensor_log.items.adc.last_high_time = ltime;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
463
464
|
}
curSensorValue[13].itemp = state.sensor14;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
465
|
}
|
42410a75c
김태훈
오타 수정
|
466
|
void OvenStatistics::processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc, const QString &MsgTitle, time_t ltime){
|
cefd483e4
고영탁
에러 수정
|
467
468
|
uint32_t erridx = (uint32_t) (item - &(srvdata->err_log.values[0]));
qDebug() << (uint32_t) (item - &(srvdata->err_log.values[0])) << "ERROR Fired!";
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
469
|
if(m_pLastErrItem == item ){
|
14a73498f
김태훈
소스 코드 정리
|
470
471
472
|
srvdata->err_log.items.repeat_error.fired_cnt =item->fired_cnt;
srvdata->err_log.items.repeat_error.first_fired = item->first_fired;
srvdata->err_log.items.repeat_error.last_fried = item->last_fried;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
473
474
|
}
m_pLastErrItem = item;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
475
|
if(errtype >= error_type_onlychk){
|
652e9cd54
고영탁
Merge
|
476
477
478
479
|
item->fired_cnt+=1;
if(item->first_fired == 0) item->first_fired = ltime;
item->last_fried = ltime;
}
|
cefd483e4
고영탁
에러 수정
|
480
481
482
483
484
485
486
487
488
489
490
491
492
|
if(errtype > error_type_clrsplit){
//에러 클리어 명령 송신
if(errtype == error_type_engclr){
//확인 후 송신
bNeedErrorClear = true;
}
else{
//에러클리어 메시지 즉시 송신
//udp->set(TG_ERROR_CLEAR,0xCECE);
bNeedErrorClear=true;
}
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
493
494
495
496
497
|
switch(errtype){
case error_type_onlypop:
case error_type_popclr:
case error_type_popnonclr:
{
|
cefd483e4
고영탁
에러 수정
|
498
499
|
if(m_bPopupShow==false){
m_bPopupShow = true;
|
774c1995b
고영탁
에러 팝업 투명 효과 재처리
|
500
501
502
|
ErrorPopupDlg *dlg = new ErrorPopupDlg(QApplication::activeWindow(),MsgDesc,MsgTitle);
//connect(dlg,SIGNAL(destroyed(QObject*)),this, SLOT(onErrorPopupClosed()));
connect(dlg,SIGNAL(closedPopup(QWidget*)),this, SLOT(onErrorPopupClosed(QWidget*)));
|
cefd483e4
고영탁
에러 수정
|
503
504
505
506
507
508
509
510
511
512
513
514
|
dlg->showFullScreen();
m_nLastPopupidx = erridx;
}
else{
if(erridx != m_nLastPopupidx && m_mapPopupList.contains(erridx) ==false){
popup_list_item popitem;
popitem.bNeedClear = bNeedErrorClear;
popitem.strDesc = MsgDesc;
popitem.strTitle = MsgTitle;
m_mapPopupList.insert(erridx,popitem);
}
}
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
515
516
|
break;
}
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
517
|
case error_type_engclr:
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
518
519
520
|
case error_type_engnonclr:
case error_type_onlyeng:
{
|
ea85b3502
김태훈
Segmentation Faul...
|
521
|
EngineerMenuWindow *w = new EngineerMenuWindow(0);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
522
523
524
525
526
527
|
w->showFullScreen();
break;
}
default:
break;
}
|
cefd483e4
고영탁
에러 수정
|
528
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
529
|
|
652e9cd54
고영탁
Merge
|
530
|
}
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
531
|
|
42410a75c
김태훈
오타 수정
|
532
|
realtime_data OvenStatistics::getPartsRealtimeData(void){
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
533
534
|
return realdata;
}
|
42410a75c
김태훈
오타 수정
|
535
|
uint8_t OvenStatistics::getSensorTypeByIdx(uint16_t idx){
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
536
537
538
|
if(idx > MAX_LOG_SENSOR) return 0;
return sensorTypeInfo[idx];
}
|
42410a75c
김태훈
오타 수정
|
539
|
type_temp OvenStatistics::getCurSensorValueByIdx(uint16_t idx){
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
540
541
|
return curSensorValue[idx];
}
|
cefd483e4
고영탁
에러 수정
|
542
|
|
774c1995b
고영탁
에러 팝업 투명 효과 재처리
|
543
|
void OvenStatistics::onErrorPopupClosed(QWidget* parent){
|
cefd483e4
고영탁
에러 수정
|
544
545
546
547
548
549
550
551
552
553
554
|
qDebug() << "Error Popup Closed!";
if(bNeedErrorClear) {
qDebug() << "send error clear command";
bNeedErrorClear = false;
udp->set(TG_ERROR_CLEAR,0xCECE);
}
if(m_mapPopupList.isEmpty()==false){
popup_list_item item;
item = m_mapPopupList.first();
m_nLastPopupidx = m_mapPopupList.firstKey();
bNeedErrorClear = item.bNeedClear;
|
774c1995b
고영탁
에러 팝업 투명 효과 재처리
|
555
|
ErrorPopupDlg *dlg = new ErrorPopupDlg(parent,item.strDesc,item.strTitle);
|
cefd483e4
고영탁
에러 수정
|
556
|
m_mapPopupList.remove(m_nLastPopupidx);
|
774c1995b
고영탁
에러 팝업 투명 효과 재처리
|
557
|
connect(dlg,SIGNAL(closedPopup(QWidget*)),this, SLOT(onErrorPopupClosed(QWidget*)));
|
cefd483e4
고영탁
에러 수정
|
558
559
560
561
562
563
564
|
dlg->showFullScreen();
}
else{
m_bPopupShow = false;
m_nLastPopupidx = MAX_ERROR_TYPE_CNT;
}
}
|