652e9cd54
고영탁
Merge
|
1
2
3
4
5
|
#ifndef OVENSTATICS_H
#define OVENSTATICS_H
#include <QObject>
#include <time.h>
|
cefd483e4
고영탁
에러 수정
|
6
|
#include <qmap.h>
|
cf0ca80f6
김태훈
app_oven_control를...
|
7
|
#include "../../app-prime-modbus/include/all_share.h"
|
652e9cd54
고영탁
Merge
|
8
9
|
#include "udphandler.h"
#include "oven.h"
|
14a73498f
김태훈
소스 코드 정리
|
10
|
#include "servicedata.h"
|
652e9cd54
고영탁
Merge
|
11
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
12
|
#define SYS_STATE_MAX 4
|
652e9cd54
고영탁
Merge
|
13
|
|
652e9cd54
고영탁
Merge
|
14
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
15
|
#define SYS_ERR_MAX 10
|
652e9cd54
고영탁
Merge
|
16
|
|
29a9d2966
고영탁
에러 전체 활성화
|
17
18
|
#define SYS_ERROR_MASK 0x03ff
#define COMM_ERROR_MASK 0x001f
|
65aaca7a6
고영탁
GUI V0.3.2
|
19
20
|
#define SENSOR_ERROR_MASK 0x03f3
#define STATE_ERROR_MASK 0x0018
|
9e48a5d01
고영탁
에러 체크 해제
|
21
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
22
23
24
25
26
27
28
|
#define SYS_ERR_MASK_ERR_CLEAR_COOKING 0x00ff
#define SYS_ERR_MASK_ERR_CLEAR_NONCOOKING 0x00ff
#define SYS_ERR_MASK_COOKING 0x00ff
#define SYS_ERR_MASK_NONCOOKING (SYS_ERR_OVNE_TEMP_ALARM)
#define COMM_ERR_MAX 5
|
7ae804762
고영탁
에러 상황 추가
|
29
|
#define STATE_ERR_MAX 5
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#define COMM_ERR_MASK_ERR_CLEAR_COOKING 0x0000
#define COMM_ERR_MASK_ERR_CLEAR_NONCOOKING 0x0000
#define COMM_ERR_MASK_COOKING 0x0000
#define COMM_ERR_MASK_NONCOOKING 0x0000
#define SENSOR_ERR_MAX 10
#define SENSOR_ERR_MASK_ERR_CLEAR 0x0000
#define SENSOR_ERR_MASK_COOKING 0x0000
#define SENSOR_ERR_MASK_NONCOOKING 0x0000
#define MAKE_MASK(MASK) (1<<MASK)
#define LOAD_STATE1_UPPER_BUNNER 0x0001
#define LOAD_STATE1_LOWER_BUNNER 0x0002
#define LOAD_STATE1_STEAM_BUNNER 0x0004
#define LOAD_STATE1_UPPER_FAN 0x0008
#define LOAD_STATE1_LOWER_FAN 0x0010
#define LOAD_STATE1_STEAM_FAN 0x0020
#define LOAD_STATE1_CONVEC_FAN1 0x0040
#define LOAD_STATE1_CONVEC_FAN2 0x0080
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
56
|
/*#define LOAD_STATE2_DV 0x0001
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#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_ERRLED 0x0040
#define LOAD_STATE2_ATVLED 0x0080
#define LOAD_STATE2_HL 0x0100
#define LOAD_STATE2_DP 0x0200
#define LOAD_STATE2_SSP 0x0400
#define LOAD_STATE2_UNP 0x0800
#define LOAD_STATE2_HT1 0x1000
#define LOAD_STATE2_HT2 0x2000
#define LOAD_STATE2_HDM 0x4000
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#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
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
enum sys_state_type{
SYS_OFF_COOK_OFF=0,
SYS_ON_COOK_OFF=1,
SYS_ON_COOK_ON=2,
SYS_OFF_COOK_ON=3 //unnormal state
};
enum sys_error_id{
SYS_ERR_FIRE_TRIGGER1 =0,
SYS_ERR_FIRE_TRIGGER2 ,
SYS_ERR_FIRE_TRIGGER3 ,
SYS_ERR_OVNE_TEMP_ALARM ,
SYS_ERR_QUN_TEMP_ALARM ,
SYS_ERR_CENTER_TEMP_ALARM ,
SYS_ERR_WALL_TEMP_ALARM ,
SYS_ERR_STAM_TEMP_ALARM ,
SYS_ERR_WATER_LEVEL_FAIL ,
SYS_ERR_WATER_SPLY_FAIL
};
enum comm_err_id{
COMM_ERR_BUNNER1 =0,
COMM_ERR_BUNNER2 ,
COMM_ERR_BUNNER3 ,
COMM_ERR_UPPERFAN ,
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
113
|
COMM_ERR_LOWERFAN
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
114
|
};
|
7ae804762
고영탁
에러 상황 추가
|
115
116
117
118
119
120
121
|
enum state_err_id{
STATE_ERR_BUNNER1 =0,
STATE_ERR_BUNNER2 ,
STATE_ERR_BUNNER3 ,
STATE_ERR_UPPERFAN ,
STATE_ERR_LOWERFAN
};
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
enum sensor_err_id{
SENSOR_ERR_SENSOR_1 =0,
SENSOR_ERR_SENSOR_2 ,
SENSOR_ERR_SENSOR_3 ,
SENSOR_ERR_SENSOR_4 ,
SENSOR_ERR_SENSOR_5 ,
SENSOR_ERR_SENSOR_6 ,
SENSOR_ERR_SENSOR_7 ,
SENSOR_ERR_SENSOR_8 ,
SENSOR_ERR_SENSOR_9 ,
SENSOR_ERR_SENSOR_10
};
enum error_exe_type{
error_type_allnone=0,
error_type_onlypop,
error_type_onlyeng,
error_type_onlychk,
error_type_popnonclr,
error_type_engnonclr,
error_type_clrsplit,
error_type_chkclr,
error_type_popclr,
error_type_engclr,
};
enum wash_mode_type{
wash_mode_nocleanser=1,
wash_mode_simple,
wash_mode_standard,
wash_mode_strong,
wash_mode_highspeed
};
|
652e9cd54
고영탁
Merge
|
156
|
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
157
158
159
160
161
|
enum water_level_state{
water_level_normal = 0,
water_level_low,
water_level_high
};
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
162
163
164
165
166
167
168
169
|
typedef union
{
uint32_t d32;
struct
{
uint32_t reserved : 9;
uint32_t door_open : 1;
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
170
|
uint32_t wsv_open : 1;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
171
172
173
174
175
176
177
178
|
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;
|
cefd483e4
고영탁
에러 수정
|
179
180
181
182
183
|
typedef struct _popup_list_item{
QString strTitle;
QString strDesc;
bool bNeedClear;
}popup_list_item;
|
42410a75c
김태훈
오타 수정
|
184
|
class OvenStatistics : public QObject
|
652e9cd54
고영탁
Merge
|
185
186
187
|
{
Q_OBJECT
public:
|
14a73498f
김태훈
소스 코드 정리
|
188
|
ServiceData* srvdata;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
189
|
|
538041ab9
김태훈
소스 코드 구조 개선
|
190
|
static OvenStatistics* getInstance(QObject* parent = 0);
|
652e9cd54
고영탁
Merge
|
191
|
static void destroy();
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
192
193
|
bool getNeedErrorClear();
void clearNeedErrorClear();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
194
195
196
|
realtime_data getPartsRealtimeData(void);
uint8_t getSensorTypeByIdx(uint16_t idx);
type_temp getCurSensorValueByIdx(uint16_t idx);
|
652e9cd54
고영탁
Merge
|
197
198
|
private:
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
199
|
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
200
|
const error_exe_type sys_err_type_def[SYS_STATE_MAX][SYS_ERR_MAX]={ //30047
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
201
202
203
204
205
206
207
208
209
|
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_OFF_COOK_OFF state
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_OFF state
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_ON state
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_OFF_COOK_ON state
};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
210
|
const error_exe_type comm_err_type_def[SYS_STATE_MAX][COMM_ERR_MAX] ={ //30048
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
211
|
{error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_OFF
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
212
213
|
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_engnonclr,error_type_engnonclr}, //SYS_ON_COO_OFF
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_ON_COO_ON
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
214
215
|
{error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_ON
};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
216
217
218
219
220
|
const error_exe_type state_err_type_def[SYS_STATE_MAX][STATE_ERR_MAX] ={ //30057
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_OFF
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_ON_COO_OFF
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_ON_COO_ON
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_ON
|
7ae804762
고영탁
에러 상황 추가
|
221
|
};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
222
|
const error_exe_type sensor_err_type_def[SYS_STATE_MAX][SENSOR_ERR_MAX]={ //30049
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
223
224
|
{error_type_engnonclr,error_type_popnonclr,error_type_allnone,error_type_popnonclr,error_type_onlychk,
error_type_popnonclr,error_type_allnone,error_type_allnone,error_type_allnone,error_type_popnonclr}, // SYS_OFF_COOK_OFF state
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
225
226
227
228
|
{error_type_engnonclr,error_type_popclr,error_type_allnone,error_type_popclr,error_type_onlychk,
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_OFF state
{error_type_onlychk,error_type_onlychk,error_type_allnone,error_type_popclr,error_type_popclr,
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_ON state
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
229
230
231
|
{error_type_engnonclr,error_type_popnonclr,error_type_allnone,error_type_popnonclr,error_type_onlychk,
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
};
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
232
233
234
235
|
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;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
236
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
237
|
type_temp curSensorValue[MAX_LOG_SENSOR];
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
238
|
|
42410a75c
김태훈
오타 수정
|
239
|
static OvenStatistics* p_singletonInstance;
|
652e9cd54
고영탁
Merge
|
240
241
242
243
|
UdpHandler *udp;
Oven* oven;
oven_control_t control;
oven_state_t state;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
244
|
error_item* m_pLastErrItem;
|
cefd483e4
고영탁
에러 수정
|
245
246
247
|
QMap<uint32_t, popup_list_item> m_mapPopupList;
uint32_t m_nLastPopupidx;
bool m_bPopupShow;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
248
|
|
652e9cd54
고영탁
Merge
|
249
250
251
252
|
bool curdoorstate;
uint16_t curSysErrorState;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
253
254
|
uint16_t curCommErrorState;
uint16_t curSensorErrorState;
|
d66410abd
고영탁
에러 팝업 형태 변경
|
255
|
uint16_t curControlErrorState;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
256
257
|
bool bNeedErrorClear;
bool bDataRefreshed;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
258
|
realtime_data realdata;
|
cefd483e4
고영탁
에러 수정
|
259
|
|
42410a75c
김태훈
오타 수정
|
260
261
|
explicit OvenStatistics(QObject* parent);
~OvenStatistics();
|
652e9cd54
고영탁
Merge
|
262
|
void processSystemError(uint16_t errflag,time_t ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
263
264
|
void processCommError(uint16_t errflag,time_t ltime);
void processSensorError(uint16_t errflag, time_t ltime);
|
7ae804762
고영탁
에러 상황 추가
|
265
|
void processStateError(uint16_t errflat, time_t ltime);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
266
|
void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc,const QString &MsgTitle, time_t ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
267
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
268
|
|
652e9cd54
고영탁
Merge
|
269
270
|
public slots:
void onDataChanged();
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
271
|
void oneSecTimerFired(void);
|
774c1995b
고영탁
에러 팝업 투명 효과 재처리
|
272
|
void onErrorPopupClosed(QWidget* parent);
|
652e9cd54
고영탁
Merge
|
273
274
275
|
};
#endif // OVENSTATICS_H
|