Blame view

app/gui/oven_control/ovenstatics.h 28 KB
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
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
15
16
  #define SYS_STATE_MAX 5
  #define DELAY_ERROR_TIME    10 //Secs
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
  
  enum sys_state_type{
      SYS_OFF_COOK_OFF=0,
      SYS_ON_COOK_OFF=1,
      SYS_ON_COOK_ON=2,
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
95
96
      SYS_ON_WASH=3,
      SYS_OFF_COOK_ON=4 //unnormal state
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
  };
  
  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   고영탁   엔지니어 모드 디버깅
117
      COMM_ERR_LOWERFAN
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
118
  };
7ae804762   고영탁   에러 상황 추가
119
120
121
122
123
124
125
  enum state_err_id{
      STATE_ERR_BUNNER1                    =0,
      STATE_ERR_BUNNER2                    ,
      STATE_ERR_BUNNER3                    ,
      STATE_ERR_UPPERFAN                   ,
      STATE_ERR_LOWERFAN
  };
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
  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   고영탁   버그 및 동작 개선
141
      error_type_olnystopcmd,
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
142
143
144
145
146
147
148
149
150
      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   고영탁   버그 및 동작 개선
151
152
153
      error_type_chkclrstopcmd,
      error_type_popclrstopcmd,
      error_type_engclrstopcmd,
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
154
  };
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
155
156
157
158
159
  enum error_sound_type{
      error_sound_none=0,
      error_sound1,
      error_sound2
  };
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
160
161
162
163
164
165
166
167
  
  enum wash_mode_type{
      wash_mode_nocleanser=1,
      wash_mode_simple,
      wash_mode_standard,
      wash_mode_strong,
      wash_mode_highspeed
  };
652e9cd54   고영탁   Merge
168
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
169
170
171
172
173
  enum water_level_state{
      water_level_normal = 0,
      water_level_low,
      water_level_high
  };
6a965b9f1   고영탁   엔지니어 모드 2차 구현
174
175
176
177
178
179
180
181
  
  typedef union
  {
    uint32_t d32;
    struct
    {
      uint32_t reserved         : 9;
      uint32_t door_open          : 1;
f8661a150   고영탁   엔지니어 모드 디버깅
182
      uint32_t wsv_open     : 1;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
183
184
185
186
187
188
189
190
      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   고영탁   에러 수정
191
192
193
194
195
  typedef struct _popup_list_item{
      QString strTitle;
      QString strDesc;
      bool bNeedClear;
  }popup_list_item;
42410a75c   김태훈   오타 수정
196
  class OvenStatistics : public QObject
652e9cd54   고영탁   Merge
197
198
199
  {
      Q_OBJECT
  public:
14a73498f   김태훈   소스 코드 정리
200
      ServiceData* srvdata;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
201
538041ab9   김태훈   소스 코드 구조 개선
202
      static OvenStatistics* getInstance(QObject* parent = 0);
652e9cd54   고영탁   Merge
203
      static void destroy();
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
204
205
      bool getNeedErrorClear();
      void clearNeedErrorClear();
6a965b9f1   고영탁   엔지니어 모드 2차 구현
206
207
208
      realtime_data getPartsRealtimeData(void);
      uint8_t getSensorTypeByIdx(uint16_t idx);
      type_temp getCurSensorValueByIdx(uint16_t idx);
91480de3c   고영탁   센서 실시간 데이터 리셋 기능 추가
209
      void resetSensorHistory(void);
652e9cd54   고영탁   Merge
210
211
  
  private:
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
212
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
213
      const uint32_t sys_err_mask[3][MAX_MODEL_COUNT] = {
4a1cc6a99   고영탁   GUI V0.4.2
214
215
216
217
218
219
220
221
222
223
224
225
                                                               {0x03b8, //ele_10
                                                               0x03b8, //ele_20
                                                               0x03b8, //ele_24
                                                               0x03b8, //ele_40
                                                               0x03b8, //lpg_10
                                                               0x03b8, //lpg_20
                                                               0x03b8, //lpg_24
                                                               0x03b8, //lpg_40
                                                               0x03b8, //lng_10
                                                               0x03b8, //lng_20
                                                               0x03b8, //lng_24
                                                               0x03b8 //lng_40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
                                                              },// noncooking state
                                                              {0x03bd, //ele_10
                                                               0x03bf, //ele_20
                                                               0x03bd, //ele_24
                                                               0x03bf, //ele_40
                                                               0x03bd, //lpg_10
                                                               0x03bf, //lpg_20
                                                               0x03bd, //lpg_24
                                                               0x03bf, //lpg_40
                                                               0x03bd, //lng_10
                                                               0x03bf, //lng_20
                                                               0x03bd, //lng_24
                                                               0x03bf //lng_40
                                                              },//cooking state
                                                              {0x03bd, //ele_10
                                                               0x03bf, //ele_20
                                                               0x03bd, //ele_24
                                                               0x03bf, //ele_40
                                                               0x03bd, //lpg_10
                                                               0x03bf, //lpg_20
                                                               0x03bd, //lpg_24
                                                               0x03bf, //lpg_40
                                                               0x03bd, //lng_10
                                                               0x03bf, //lng_20
                                                               0x03bd, //lng_24
                                                               0x03bf //lng_40
                                                              } //washing state
b915c1b54   고영탁   팝업 처리 수정
253
                                                               };
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
254
      const uint32_t comm_err_mask[3][MAX_MODEL_COUNT] =    {
b915c1b54   고영탁   팝업 처리 수정
255
                                                         {0x000d, //ele_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
256
                                                          0x001f, //ele_20
b915c1b54   고영탁   팝업 처리 수정
257
                                                          0x000d, //ele_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
258
                                                          0x001f, //ele_40
b915c1b54   고영탁   팝업 처리 수정
259
                                                          0x000d, //lpg_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
260
                                                          0x001f, //lpg_20
b915c1b54   고영탁   팝업 처리 수정
261
                                                          0x000d, //lpg_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
262
                                                          0x001f, //lpg_40
b915c1b54   고영탁   팝업 처리 수정
263
                                                          0x000d, //lng_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
264
                                                          0x001f, //lng_20
b915c1b54   고영탁   팝업 처리 수정
265
                                                          0x000d, //lng_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
266
                                                          0x001f  //lng_40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
267
268
269
270
271
272
273
274
275
276
277
278
279
280
                                                         }, // noncooking state
                                                          {0x000d, //ele_10
                                                           0x001f, //ele_20
                                                           0x000d, //ele_24
                                                           0x001f, //ele_40
                                                           0x000d, //lpg_10
                                                           0x001f, //lpg_20
                                                           0x000d, //lpg_24
                                                           0x001f, //lpg_40
                                                           0x000d, //lng_10
                                                           0x001f, //lng_20
                                                           0x000d, //lng_24
                                                           0x001f  //lng_40
                                                          }, //cooking state
b915c1b54   고영탁   팝업 처리 수정
281
282
283
284
285
286
287
288
289
290
291
292
                                                          {0x000d, //ele_10
                                                           0x001f, //ele_20
                                                           0x000d, //ele_24
                                                           0x001f, //ele_40
                                                           0x000d, //lpg_10
                                                           0x001f, //lpg_20
                                                           0x000d, //lpg_24
                                                           0x001f, //lpg_40
                                                           0x000d, //lng_10
                                                           0x001f, //lng_20
                                                           0x000d, //lng_24
                                                           0x001f  //lng_40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
293
294
                                                          } // washing state
                                                          };
b915c1b54   고영탁   팝업 처리 수정
295
296
297
298
299
300
301
302
303
304
305
306
307
  //    const uint32_t sensor_err_mask[MAX_MODEL_COUNT] =    {0x0213, //ele10
  //                                                          0x0213, //ele 20
  //                                                          0x0213, //ele 24
  //                                                          0x0213, //ele 40
  //                                                          0x0213, //lpg 10
  //                                                          0x0213, //lpg 20
  //                                                          0x0213, //lpg 24
  //                                                          0x0213, //lpg 40
  //                                                          0x0213, //lng 10
  //                                                          0x0213, //lng 20
  //                                                          0x0213, //lng 24
  //                                                          0x0213  //lng40
  //                                                         };
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
308
      const uint32_t sensor_err_mask[3][MAX_MODEL_COUNT] =    {
e7183cdbf   고영탁   에러 비트 수정
309
310
311
312
313
314
315
316
317
318
319
320
                                                            {0x0213, //ele10
                                                            0x0213, //ele 20
                                                            0x0213, //ele 24
                                                            0x0213, //ele 40
                                                            0x0213, //lpg 10
                                                            0x0213, //lpg 20
                                                            0x0213, //lpg 24
                                                            0x0213, //lpg 40
                                                            0x0213, //lng 10
                                                            0x0213, //lng 20
                                                            0x0213, //lng 24
                                                            0x0213  //lng40
b915c1b54   고영탁   팝업 처리 수정
321
                                                           }, // end of noncooking state
e7183cdbf   고영탁   에러 비트 수정
322
323
324
325
326
327
328
329
330
331
332
333
                                                          {0x0213, //ele10
                                                          0x0213, //ele 20
                                                          0x0213, //ele 24
                                                          0x0213, //ele 40
                                                          0x0213, //lpg 10
                                                          0x0213, //lpg 20
                                                          0x0213, //lpg 24
                                                          0x0213, //lpg 40
                                                          0x0213, //lng 10
                                                          0x0213, //lng 20
                                                          0x0213, //lng 24
                                                          0x0213  //lng40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
334
                                                         }, //cooking state
e7183cdbf   고영탁   에러 비트 수정
335
336
337
338
339
340
341
342
343
344
345
346
                                                          {0x0213, //ele10
                                                          0x0213, //ele 20
                                                          0x0213, //ele 24
                                                          0x0213, //ele 40
                                                          0x0213, //lpg 10
                                                          0x0213, //lpg 20
                                                          0x0213, //lpg 24
                                                          0x0213, //lpg 40
                                                          0x0213, //lng 10
                                                          0x0213, //lng 20
                                                          0x0213, //lng 24
                                                          0x0213  //lng40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
                                                         } // washing state
                                                          };
  
      const uint32_t state_err_mask[3][MAX_MODEL_COUNT] =  {
                                                              {0x0000, //ele 10
                                                              0x0000, //ele 20
                                                              0x0000, //ele 24
                                                              0x0000, //ele 40
                                                              0x0000, //lpg 10
                                                              0x0000, //lpg 20
                                                              0x0000, //lpg 24
                                                              0x0000, //lpg 40
                                                              0x0000, //lng 10
                                                              0x0000, //lng 20
                                                              0x0000, //lng 24
                                                              0x0000  //lng  40
b915c1b54   고영탁   팝업 처리 수정
363
                                                             }, //end of noncooking state
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
                                                              {0x0000, //ele 10
                                                              0x0000, //ele 20
                                                              0x0000, //ele 24
                                                              0x0000, //ele 40
                                                              0x0000, //lpg 10
                                                              0x0000, //lpg 20
                                                              0x0000, //lpg 24
                                                              0x0000, //lpg 40
                                                              0x0000, //lng 10
                                                              0x0000, //lng 20
                                                              0x0000, //lng 24
                                                              0x0000  //lng  40
                                                             },
                                                              {0x0000, //ele 10
                                                              0x0000, //ele 20
                                                              0x0000, //ele 24
                                                              0x0000, //ele 40
                                                              0x0000, //lpg 10
                                                              0x0000, //lpg 20
                                                              0x0000, //lpg 24
                                                              0x0000, //lpg 40
                                                              0x0000, //lng 10
                                                              0x0000, //lng 20
                                                              0x0000, //lng 24
                                                              0x0000  //lng  40
                                                             }//washing state
                                                              };
20fcaaf68   고영탁   에러 마스크 별도 적용
391
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
392
      const error_exe_type sys_err_type_def[SYS_STATE_MAX][SYS_ERR_MAX]={ //30047
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
393
394
                                                          {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
b915c1b54   고영탁   팝업 처리 수정
395
                                                          {error_type_onlychk,error_type_onlychk,error_type_onlychk,error_type_engclrstopcmd,error_type_engclrstopcmd,
4a1cc6a99   고영탁   GUI V0.4.2
396
                                                          error_type_engclrstopcmd,error_type_engclrstopcmd,error_type_engclrstopcmd,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_OFF state
a7e8cc0aa   고영탁   버그 및 동작 개선
397
398
                                                          {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   고영탁   에러 처리 루틴 및 에러 처리 ...
399
                                                          {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
400
401
                                                          error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_WASH state
                                                          {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
402
403
                                                          error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_OFF_COOK_ON state
                                                          };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
404
      const error_exe_type comm_err_type_def[SYS_STATE_MAX][COMM_ERR_MAX] ={  //30048
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
405
                                                         {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_OFF
a7e8cc0aa   고영탁   버그 및 동작 개선
406
407
                                                         {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
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
408
                                                         {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_ON_WASH
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
409
410
                                                         {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_ON
      };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
411
412
      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   고영탁   버그 및 동작 개선
413
414
                                                         {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
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
415
                                                          {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_WASH
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
416
                                                         {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_ON
7ae804762   고영탁   에러 상황 추가
417
      };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
418
      const error_exe_type sensor_err_type_def[SYS_STATE_MAX][SENSOR_ERR_MAX]={ //30049
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
419
420
                                                          {error_type_popclr,error_type_popclr,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_OFF_COOK_OFF state
a7e8cc0aa   고영탁   버그 및 동작 개선
421
                                                          {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_allnone,error_type_popclrstopcmd,error_type_popclrstopcmd,
b915c1b54   고영탁   팝업 처리 수정
422
423
424
                                                          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_allnone,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
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
425
426
                                                          {error_type_popclr,error_type_popclr,error_type_allnone,error_type_allnone,error_type_popclr,
                                                          error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_ON_WASH
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
427
428
429
                                                          {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
      };
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
430
431
432
433
434
435
436
437
438
439
440
441
442
443
  
      const error_sound_type sys_err_sound_def[SYS_ERR_MAX]={ //30047
                                                          error_sound2,error_sound2,error_sound2,error_sound2,error_sound2,
                                                          error_sound2,error_sound2,error_sound2,error_sound2,error_sound2};
  
      const error_sound_type comm_err_sound_def[COMM_ERR_MAX] ={  //30048
                                                         error_sound1,error_sound1,error_sound1,error_sound1,error_sound1};
  
      const error_sound_type state_err_sound_def[STATE_ERR_MAX] ={ //30057
                                                         error_sound1,error_sound1,error_sound1,error_sound1,error_sound1};
  
      const error_sound_type sensor_err_sound_def[SENSOR_ERR_MAX]={ //30049
                                                          error_sound1,error_sound1,error_sound1,error_sound1,error_sound1,
                                                          error_sound1,error_sound1,error_sound1,error_sound1,error_sound2};
6a965b9f1   고영탁   엔지니어 모드 2차 구현
444
445
446
447
      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   고영탁   에러 처리 루틴 및 에러 처리 ...
448
6a965b9f1   고영탁   엔지니어 모드 2차 구현
449
      type_temp curSensorValue[MAX_LOG_SENSOR];
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
450
42410a75c   김태훈   오타 수정
451
      static OvenStatistics* p_singletonInstance;
652e9cd54   고영탁   Merge
452
453
      UdpHandler *udp;
      Oven* oven;
20fcaaf68   고영탁   에러 마스크 별도 적용
454
      Config* cfg;
652e9cd54   고영탁   Merge
455
456
      oven_control_t control;
      oven_state_t state;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
457
      error_item* m_pLastErrItem;
a7e8cc0aa   고영탁   버그 및 동작 개선
458
      QMap<uint32_t, QWidget *> m_mapPopupList;
cefd483e4   고영탁   에러 수정
459
460
      uint32_t m_nLastPopupidx;
      bool m_bPopupShow;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
461
652e9cd54   고영탁   Merge
462
463
464
465
  
  
      bool curdoorstate;
      uint16_t curSysErrorState;
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
466
467
      uint16_t curCommErrorState;
      uint16_t curSensorErrorState;
d66410abd   고영탁   에러 팝업 형태 변경
468
      uint16_t curControlErrorState;
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
469
470
      bool bNeedErrorClear;
      bool bDataRefreshed;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
471
      realtime_data realdata;
cefd483e4   고영탁   에러 수정
472
42410a75c   김태훈   오타 수정
473
474
      explicit OvenStatistics(QObject* parent);
      ~OvenStatistics();
652e9cd54   고영탁   Merge
475
      void processSystemError(uint16_t errflag,time_t ltime);
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
476
477
      void processCommError(uint16_t errflag,time_t ltime);
      void processSensorError(uint16_t errflag, time_t ltime);
7ae804762   고영탁   에러 상황 추가
478
      void processStateError(uint16_t errflat, time_t ltime);
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
479
      void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc,const QString &MsgTitle,  time_t ltime, error_sound_type errsnd=error_sound1);
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
480
f345e373f   김태훈   클래스 정의 수정
481
482
483
484
485
486
487
488
489
  public:
      bool loadWashState(void){return srvdata->loadWashState();}
      bool setWashState(bool bval,bool save=true){return srvdata->setWashState(bval,save);}
      uint32_t loadTotalCookingTime(void){return srvdata->loadTotalCookingTime();}
      bool setTotalCookingTime(uint32_t val, bool save=true){return srvdata->setTotalCookingTime(val,save);}
      bool addTotalCookingTime(uint32_t val, bool save=true){return srvdata->addTotalCookingTime(val,save);}
      uint32_t loadTotalCookingCount(void){return srvdata->loadTotalCookingCount();}
      bool setTotalCookingCount(uint32_t val,bool save = true){return srvdata->setTotalCookingCount(val,save);}
      bool addTotalCookingCount(uint32_t val, bool save = true){return srvdata->addTotalCookingCount(val,save);}
6a965b9f1   고영탁   엔지니어 모드 2차 구현
490
652e9cd54   고영탁   Merge
491
492
  public slots:
      void onDataChanged();
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
493
      void oneSecTimerFired(void);
a7e8cc0aa   고영탁   버그 및 동작 개선
494
      void onErrorPopupClosed(int erridx);
d1d566994   고영탁   에러 발생 시그널 추가
495
496
497
  
  signals:
      void onErrorFired(int erridx);
652e9cd54   고영탁   Merge
498
499
500
  };
  
  #endif // OVENSTATICS_H