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
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
17
18
19
20
21
22
23
|
#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
고영탁
에러 상황 추가
|
24
|
#define STATE_ERR_MAX 5
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#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차 구현
|
51
|
/*#define LOAD_STATE2_DV 0x0001
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#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차 구현
|
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#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
고영탁
에러 처리 루틴 및 에러 처리 ...
|
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
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
고영탁
엔지니어 모드 디버깅
|
108
|
COMM_ERR_LOWERFAN
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
109
|
};
|
7ae804762
고영탁
에러 상황 추가
|
110
111
112
113
114
115
116
|
enum state_err_id{
STATE_ERR_BUNNER1 =0,
STATE_ERR_BUNNER2 ,
STATE_ERR_BUNNER3 ,
STATE_ERR_UPPERFAN ,
STATE_ERR_LOWERFAN
};
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
117
118
119
120
121
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
|
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
|
151
|
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
152
153
154
155
156
|
enum water_level_state{
water_level_normal = 0,
water_level_low,
water_level_high
};
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
157
158
159
160
161
162
163
164
|
typedef union
{
uint32_t d32;
struct
{
uint32_t reserved : 9;
uint32_t door_open : 1;
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
165
|
uint32_t wsv_open : 1;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
166
167
168
169
170
171
172
173
|
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
고영탁
에러 수정
|
174
175
176
177
178
|
typedef struct _popup_list_item{
QString strTitle;
QString strDesc;
bool bNeedClear;
}popup_list_item;
|
42410a75c
김태훈
오타 수정
|
179
|
class OvenStatistics : public QObject
|
652e9cd54
고영탁
Merge
|
180
181
182
|
{
Q_OBJECT
public:
|
14a73498f
김태훈
소스 코드 정리
|
183
|
ServiceData* srvdata;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
184
|
|
538041ab9
김태훈
소스 코드 구조 개선
|
185
|
static OvenStatistics* getInstance(QObject* parent = 0);
|
652e9cd54
고영탁
Merge
|
186
|
static void destroy();
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
187
188
|
bool getNeedErrorClear();
void clearNeedErrorClear();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
189
190
191
|
realtime_data getPartsRealtimeData(void);
uint8_t getSensorTypeByIdx(uint16_t idx);
type_temp getCurSensorValueByIdx(uint16_t idx);
|
652e9cd54
고영탁
Merge
|
192
193
|
private:
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
194
|
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
195
|
const error_exe_type sys_err_type_def[SYS_STATE_MAX][SYS_ERR_MAX]={ //30047
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
196
197
198
199
200
201
202
203
204
|
{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
고영탁
팝업 관련 동작 정의 수정
|
205
|
const error_exe_type comm_err_type_def[SYS_STATE_MAX][COMM_ERR_MAX] ={ //30048
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
206
|
{error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_OFF
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
207
208
|
{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
고영탁
에러 처리 루틴 및 에러 처리 ...
|
209
210
|
{error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_ON
};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
211
212
213
214
215
|
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
고영탁
에러 상황 추가
|
216
|
};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
217
|
const error_exe_type sensor_err_type_def[SYS_STATE_MAX][SENSOR_ERR_MAX]={ //30049
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
218
219
|
{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
고영탁
팝업 관련 동작 정의 수정
|
220
221
222
223
|
{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
고영탁
에러 처리 루틴 및 에러 처리 ...
|
224
225
226
|
{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차 구현
|
227
228
229
230
|
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
고영탁
에러 처리 루틴 및 에러 처리 ...
|
231
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
232
|
type_temp curSensorValue[MAX_LOG_SENSOR];
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
233
|
|
42410a75c
김태훈
오타 수정
|
234
|
static OvenStatistics* p_singletonInstance;
|
652e9cd54
고영탁
Merge
|
235
236
237
238
|
UdpHandler *udp;
Oven* oven;
oven_control_t control;
oven_state_t state;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
239
|
error_item* m_pLastErrItem;
|
cefd483e4
고영탁
에러 수정
|
240
241
242
|
QMap<uint32_t, popup_list_item> m_mapPopupList;
uint32_t m_nLastPopupidx;
bool m_bPopupShow;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
243
|
|
652e9cd54
고영탁
Merge
|
244
245
246
247
|
bool curdoorstate;
uint16_t curSysErrorState;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
248
249
|
uint16_t curCommErrorState;
uint16_t curSensorErrorState;
|
d66410abd
고영탁
에러 팝업 형태 변경
|
250
|
uint16_t curControlErrorState;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
251
252
|
bool bNeedErrorClear;
bool bDataRefreshed;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
253
|
realtime_data realdata;
|
cefd483e4
고영탁
에러 수정
|
254
|
|
42410a75c
김태훈
오타 수정
|
255
256
|
explicit OvenStatistics(QObject* parent);
~OvenStatistics();
|
652e9cd54
고영탁
Merge
|
257
|
void processSystemError(uint16_t errflag,time_t ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
258
259
|
void processCommError(uint16_t errflag,time_t ltime);
void processSensorError(uint16_t errflag, time_t ltime);
|
7ae804762
고영탁
에러 상황 추가
|
260
|
void processStateError(uint16_t errflat, time_t ltime);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
261
|
void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc,const QString &MsgTitle, time_t ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
262
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
263
|
|
652e9cd54
고영탁
Merge
|
264
265
|
public slots:
void onDataChanged();
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
266
|
void oneSecTimerFired(void);
|
774c1995b
고영탁
에러 팝업 투명 효과 재처리
|
267
|
void onErrorPopupClosed(QWidget* parent);
|
652e9cd54
고영탁
Merge
|
268
269
270
|
};
#endif // OVENSTATICS_H
|