Blame view

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