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"
|
20fcaaf68
고영탁
에러 마스크 별도 적용
|
11
|
#include "config.h"
|
652e9cd54
고영탁
Merge
|
12
|
|
20fcaaf68
고영탁
에러 마스크 별도 적용
|
13
14
|
#define MAX_MODEL_COUNT 12
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
15
|
#define SYS_STATE_MAX 4
|
652e9cd54
고영탁
Merge
|
16
|
|
652e9cd54
고영탁
Merge
|
17
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
18
|
#define SYS_ERR_MAX 10
|
652e9cd54
고영탁
Merge
|
19
|
|
29a9d2966
고영탁
에러 전체 활성화
|
20
21
|
#define SYS_ERROR_MASK 0x03ff
#define COMM_ERROR_MASK 0x001f
|
81c6fca05
고영탁
고객사 요청 에러 예외 사항 추가
|
22
|
#define SENSOR_ERROR_MASK 0x0213
|
65aaca7a6
고영탁
GUI V0.3.2
|
23
|
#define STATE_ERROR_MASK 0x0018
|
9e48a5d01
고영탁
에러 체크 해제
|
24
|
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
25
26
27
28
29
30
31
|
#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
고영탁
에러 상황 추가
|
32
|
#define STATE_ERR_MAX 5
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#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차 구현
|
59
|
/*#define LOAD_STATE2_DV 0x0001
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
#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차 구현
|
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
#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
고영탁
에러 처리 루틴 및 에러 처리 ...
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
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
고영탁
엔지니어 모드 디버깅
|
116
|
COMM_ERR_LOWERFAN
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
117
|
};
|
7ae804762
고영탁
에러 상황 추가
|
118
119
120
121
122
123
124
|
enum state_err_id{
STATE_ERR_BUNNER1 =0,
STATE_ERR_BUNNER2 ,
STATE_ERR_BUNNER3 ,
STATE_ERR_UPPERFAN ,
STATE_ERR_LOWERFAN
};
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
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,
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
140
|
error_type_olnystopcmd,
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
141
142
143
144
145
146
147
148
149
|
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,
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
150
151
152
|
error_type_chkclrstopcmd,
error_type_popclrstopcmd,
error_type_engclrstopcmd,
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
153
154
155
156
157
158
159
160
161
162
|
};
enum wash_mode_type{
wash_mode_nocleanser=1,
wash_mode_simple,
wash_mode_standard,
wash_mode_strong,
wash_mode_highspeed
};
|
652e9cd54
고영탁
Merge
|
163
|
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
164
165
166
167
168
|
enum water_level_state{
water_level_normal = 0,
water_level_low,
water_level_high
};
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
169
170
171
172
173
174
175
176
|
typedef union
{
uint32_t d32;
struct
{
uint32_t reserved : 9;
uint32_t door_open : 1;
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
177
|
uint32_t wsv_open : 1;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
178
179
180
181
182
183
184
185
|
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
고영탁
에러 수정
|
186
187
188
189
190
|
typedef struct _popup_list_item{
QString strTitle;
QString strDesc;
bool bNeedClear;
}popup_list_item;
|
42410a75c
김태훈
오타 수정
|
191
|
class OvenStatistics : public QObject
|
652e9cd54
고영탁
Merge
|
192
193
194
|
{
Q_OBJECT
public:
|
14a73498f
김태훈
소스 코드 정리
|
195
|
ServiceData* srvdata;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
196
|
|
538041ab9
김태훈
소스 코드 구조 개선
|
197
|
static OvenStatistics* getInstance(QObject* parent = 0);
|
652e9cd54
고영탁
Merge
|
198
|
static void destroy();
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
199
200
|
bool getNeedErrorClear();
void clearNeedErrorClear();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
201
202
203
|
realtime_data getPartsRealtimeData(void);
uint8_t getSensorTypeByIdx(uint16_t idx);
type_temp getCurSensorValueByIdx(uint16_t idx);
|
91480de3c
고영탁
센서 실시간 데이터 리셋 기능 추가
|
204
|
void resetSensorHistory(void);
|
652e9cd54
고영탁
Merge
|
205
206
|
private:
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
207
|
|
20fcaaf68
고영탁
에러 마스크 별도 적용
|
208
209
210
211
|
const uint32_t sys_err_mask[MAX_MODEL_COUNT] = {0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff,0x03ff};
const uint32_t comm_err_mask[MAX_MODEL_COUNT] = {0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f,0x001f};
const uint32_t sensor_err_mask[MAX_MODEL_COUNT] = {0x0213,0x0213,0x0213,0x0213,0x0213,0x0213,0x0213,0x0213,0x0213,0x0213,0x0213,0x0213};
const uint32_t state_err_mask[MAX_MODEL_COUNT] = {0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018,0x0018};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
212
|
const error_exe_type sys_err_type_def[SYS_STATE_MAX][SYS_ERR_MAX]={ //30047
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
213
214
|
{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
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
215
216
217
218
|
{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,
error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, // SYS_ON_COOK_OFF state
{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,
error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, // SYS_ON_COOK_ON state
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
219
220
221
|
{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
고영탁
팝업 관련 동작 정의 수정
|
222
|
const error_exe_type comm_err_type_def[SYS_STATE_MAX][COMM_ERR_MAX] ={ //30048
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
223
|
{error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_OFF
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
224
225
|
{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_OFF
{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_ON
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
226
227
|
{error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_ON
};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
228
229
|
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
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
230
231
|
{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_OFF
{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_COO_ON
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
232
|
{error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_ON
|
7ae804762
고영탁
에러 상황 추가
|
233
|
};
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
234
|
const error_exe_type sensor_err_type_def[SYS_STATE_MAX][SENSOR_ERR_MAX]={ //30049
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
235
236
|
{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
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
237
|
{error_type_engclrstopcmd,error_type_popclrstopcmd,error_type_allnone,error_type_popclrstopcmd,error_type_popclrstopcmd,
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
238
|
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_OFF state
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
239
|
{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_allnone,error_type_popclrstopcmd,error_type_popclrstopcmd,
|
3fd8255a1
고영탁
팝업 관련 동작 정의 수정
|
240
|
error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_ON state
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
241
242
243
|
{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차 구현
|
244
245
246
247
|
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
고영탁
에러 처리 루틴 및 에러 처리 ...
|
248
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
249
|
type_temp curSensorValue[MAX_LOG_SENSOR];
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
250
|
|
42410a75c
김태훈
오타 수정
|
251
|
static OvenStatistics* p_singletonInstance;
|
652e9cd54
고영탁
Merge
|
252
253
|
UdpHandler *udp;
Oven* oven;
|
20fcaaf68
고영탁
에러 마스크 별도 적용
|
254
|
Config* cfg;
|
652e9cd54
고영탁
Merge
|
255
256
|
oven_control_t control;
oven_state_t state;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
257
|
error_item* m_pLastErrItem;
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
258
|
QMap<uint32_t, QWidget *> m_mapPopupList;
|
cefd483e4
고영탁
에러 수정
|
259
260
|
uint32_t m_nLastPopupidx;
bool m_bPopupShow;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
261
|
|
652e9cd54
고영탁
Merge
|
262
263
264
265
|
bool curdoorstate;
uint16_t curSysErrorState;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
266
267
|
uint16_t curCommErrorState;
uint16_t curSensorErrorState;
|
d66410abd
고영탁
에러 팝업 형태 변경
|
268
|
uint16_t curControlErrorState;
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
269
270
|
bool bNeedErrorClear;
bool bDataRefreshed;
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
271
|
realtime_data realdata;
|
cefd483e4
고영탁
에러 수정
|
272
|
|
42410a75c
김태훈
오타 수정
|
273
274
|
explicit OvenStatistics(QObject* parent);
~OvenStatistics();
|
652e9cd54
고영탁
Merge
|
275
|
void processSystemError(uint16_t errflag,time_t ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
276
277
|
void processCommError(uint16_t errflag,time_t ltime);
void processSensorError(uint16_t errflag, time_t ltime);
|
7ae804762
고영탁
에러 상황 추가
|
278
|
void processStateError(uint16_t errflat, time_t ltime);
|
f8661a150
고영탁
엔지니어 모드 디버깅
|
279
|
void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc,const QString &MsgTitle, time_t ltime);
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
280
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
281
|
|
652e9cd54
고영탁
Merge
|
282
283
|
public slots:
void onDataChanged();
|
c50beef02
고영탁
에러 처리 루틴 및 에러 처리 ...
|
284
|
void oneSecTimerFired(void);
|
a7e8cc0aa
고영탁
버그 및 동작 개선
|
285
|
void onErrorPopupClosed(int erridx);
|
652e9cd54
고영탁
Merge
|
286
287
288
|
};
#endif // OVENSTATICS_H
|