Blame view

app/gui/oven_control/ovenstatics.h 21.1 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
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
b915c1b54   고영탁   팝업 처리 수정
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
      const uint32_t sys_err_mask[2][MAX_MODEL_COUNT] = {
                                                               {0x00f8, //ele_10
                                                               0x00f8, //ele_20
                                                               0x00f8, //ele_24
                                                               0x00f8, //ele_40
                                                               0x00f8, //lpg_10
                                                               0x00f8, //lpg_20
                                                               0x00f8, //lpg_24
                                                               0x00f8, //lpg_40
                                                               0x00f8, //lng_10
                                                               0x00f8, //lng_20
                                                               0x00f8, //lng_24
                                                               0x00f8 //lng_40
                                                              },// end of noncooking state
                                                              {0x03fd, //ele_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
223
                                                               0x03ff, //ele_20
b915c1b54   고영탁   팝업 처리 수정
224
                                                               0x03fd, //ele_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
225
226
227
228
229
230
231
232
233
                                                               0x03ff, //ele_40
                                                               0x03fd, //lpg_10
                                                               0x03ff, //lpg_20
                                                               0x03fd, //lpg_24
                                                               0x03ff, //lpg_40
                                                               0x03fd, //lng_10
                                                               0x03ff, //lng_20
                                                               0x03fd, //lng_24
                                                               0x03ff //lng_40
b915c1b54   고영탁   팝업 처리 수정
234
235
236
237
                                                              },
                                                               };
      const uint32_t comm_err_mask[2][MAX_MODEL_COUNT] =    {
                                                         {0x000d, //ele_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
238
                                                          0x001f, //ele_20
b915c1b54   고영탁   팝업 처리 수정
239
                                                          0x000d, //ele_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
240
                                                          0x001f, //ele_40
b915c1b54   고영탁   팝업 처리 수정
241
                                                          0x000d, //lpg_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
242
                                                          0x001f, //lpg_20
b915c1b54   고영탁   팝업 처리 수정
243
                                                          0x000d, //lpg_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
244
                                                          0x001f, //lpg_40
b915c1b54   고영탁   팝업 처리 수정
245
                                                          0x000d, //lng_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
246
                                                          0x001f, //lng_20
b915c1b54   고영탁   팝업 처리 수정
247
                                                          0x000d, //lng_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
248
                                                          0x001f  //lng_40
b915c1b54   고영탁   팝업 처리 수정
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
                                                         }, // end of 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
                                                          }};
  //    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
  //                                                         };
  
      const uint32_t sensor_err_mask[2][MAX_MODEL_COUNT] =    {
75c9f0d63   고영탁   V0.3.6
278
279
280
281
282
283
284
285
286
287
288
289
                                                            {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   고영탁   팝업 처리 수정
290
                                                           }, // end of noncooking state
75c9f0d63   고영탁   V0.3.6
291
292
293
294
295
296
297
298
299
300
301
302
                                                          {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   고영탁   팝업 처리 수정
303
304
                                                         }};
      const uint32_t state_err_mask[2][MAX_MODEL_COUNT] =  {
75c9f0d63   고영탁   V0.3.6
305
306
307
308
309
310
311
312
313
314
315
316
                                                              {0x0008, //ele 10
                                                              0x0018, //ele 20
                                                              0x0008, //ele 24
                                                              0x0018, //ele 40
                                                              0x0008, //lpg 10
                                                              0x0018, //lpg 20
                                                              0x0008, //lpg 24
                                                              0x0018, //lpg 40
                                                              0x0008, //lng 10
                                                              0x0018, //lng 20
                                                              0x0008, //lng 24
                                                              0x0018  //lng  40
b915c1b54   고영탁   팝업 처리 수정
317
                                                             }, //end of noncooking state
75c9f0d63   고영탁   V0.3.6
318
319
320
321
322
323
324
325
326
327
328
329
                                                              {0x0008, //ele 10
                                                              0x0018, //ele 20
                                                              0x0008, //ele 24
                                                              0x0018, //ele 40
                                                              0x0008, //lpg 10
                                                              0x0018, //lpg 20
                                                              0x0008, //lpg 24
                                                              0x0018, //lpg 40
                                                              0x0008, //lng 10
                                                              0x0018, //lng 20
                                                              0x0008, //lng 24
                                                              0x0018  //lng  40
b915c1b54   고영탁   팝업 처리 수정
330
                                                             }};
20fcaaf68   고영탁   에러 마스크 별도 적용
331
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
332
      const error_exe_type sys_err_type_def[SYS_STATE_MAX][SYS_ERR_MAX]={ //30047
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
333
334
                                                          {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   고영탁   팝업 처리 수정
335
336
                                                          {error_type_onlychk,error_type_onlychk,error_type_onlychk,error_type_engclrstopcmd,error_type_engclrstopcmd,
                                                          error_type_engclrstopcmd,error_type_engclrstopcmd,error_type_engclrstopcmd,error_type_onlychk,error_type_onlychk}, // SYS_ON_COOK_OFF state
a7e8cc0aa   고영탁   버그 및 동작 개선
337
338
                                                          {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   고영탁   에러 처리 루틴 및 에러 처리 ...
339
340
341
                                                          {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   고영탁   팝업 관련 동작 정의 수정
342
      const error_exe_type comm_err_type_def[SYS_STATE_MAX][COMM_ERR_MAX] ={  //30048
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
343
                                                         {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_OFF
a7e8cc0aa   고영탁   버그 및 동작 개선
344
345
                                                         {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   고영탁   에러 처리 루틴 및 에러 처리 ...
346
347
                                                         {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_ON
      };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
348
349
      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   고영탁   버그 및 동작 개선
350
351
                                                         {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   고영탁   팝업 관련 동작 정의 수정
352
                                                         {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_ON
7ae804762   고영탁   에러 상황 추가
353
      };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
354
      const error_exe_type sensor_err_type_def[SYS_STATE_MAX][SENSOR_ERR_MAX]={ //30049
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
355
356
                                                          {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   고영탁   버그 및 동작 개선
357
                                                          {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_allnone,error_type_popclrstopcmd,error_type_popclrstopcmd,
b915c1b54   고영탁   팝업 처리 수정
358
359
360
                                                          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
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
361
362
363
                                                          {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차 구현
364
365
366
367
      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   고영탁   에러 처리 루틴 및 에러 처리 ...
368
6a965b9f1   고영탁   엔지니어 모드 2차 구현
369
      type_temp curSensorValue[MAX_LOG_SENSOR];
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
370
42410a75c   김태훈   오타 수정
371
      static OvenStatistics* p_singletonInstance;
652e9cd54   고영탁   Merge
372
373
      UdpHandler *udp;
      Oven* oven;
20fcaaf68   고영탁   에러 마스크 별도 적용
374
      Config* cfg;
652e9cd54   고영탁   Merge
375
376
      oven_control_t control;
      oven_state_t state;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
377
      error_item* m_pLastErrItem;
a7e8cc0aa   고영탁   버그 및 동작 개선
378
      QMap<uint32_t, QWidget *> m_mapPopupList;
cefd483e4   고영탁   에러 수정
379
380
      uint32_t m_nLastPopupidx;
      bool m_bPopupShow;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
381
652e9cd54   고영탁   Merge
382
383
384
385
  
  
      bool curdoorstate;
      uint16_t curSysErrorState;
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
386
387
      uint16_t curCommErrorState;
      uint16_t curSensorErrorState;
d66410abd   고영탁   에러 팝업 형태 변경
388
      uint16_t curControlErrorState;
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
389
390
      bool bNeedErrorClear;
      bool bDataRefreshed;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
391
      realtime_data realdata;
cefd483e4   고영탁   에러 수정
392
42410a75c   김태훈   오타 수정
393
394
      explicit OvenStatistics(QObject* parent);
      ~OvenStatistics();
652e9cd54   고영탁   Merge
395
      void processSystemError(uint16_t errflag,time_t ltime);
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
396
397
      void processCommError(uint16_t errflag,time_t ltime);
      void processSensorError(uint16_t errflag, time_t ltime);
7ae804762   고영탁   에러 상황 추가
398
      void processStateError(uint16_t errflat, time_t ltime);
f8661a150   고영탁   엔지니어 모드 디버깅
399
      void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc,const QString &MsgTitle,  time_t ltime);
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
400
6a965b9f1   고영탁   엔지니어 모드 2차 구현
401
652e9cd54   고영탁   Merge
402
403
  public slots:
      void onDataChanged();
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
404
      void oneSecTimerFired(void);
a7e8cc0aa   고영탁   버그 및 동작 개선
405
      void onErrorPopupClosed(int erridx);
d1d566994   고영탁   에러 발생 시그널 추가
406
407
408
  
  signals:
      void onErrorFired(int erridx);
652e9cd54   고영탁   Merge
409
410
411
  };
  
  #endif // OVENSTATICS_H