Blame view

app/gui/oven_control/ovenstatics.h 28.9 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
       */
3210318c7   고영탁   오븐 에러 번지 주석 추가
217
      //30047
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
218
      const uint32_t sys_err_mask[3][MAX_MODEL_COUNT] = {
703618ec3   고영탁   세척 상황에서 에러 발생시 이벤...
219
220
221
222
223
224
225
226
227
228
229
230
                                                               {0x0098, //ele_10
                                                               0x0098, //ele_20
                                                               0x0098, //ele_24
                                                               0x0098, //ele_40
                                                               0x0098, //lpg_10
                                                               0x0098, //lpg_20
                                                               0x0098, //lpg_24
                                                               0x0098, //lpg_40
                                                               0x0098, //lng_10
                                                               0x0098, //lng_20
                                                               0x0098, //lng_24
                                                               0x0098 //lng_40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
231
                                                              },// noncooking state
4e9cd180f   고영탁   중심온도 과열 에러 삭제
232
233
234
235
236
237
238
239
240
241
242
243
                                                              {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   고영탁   세척 에러 유형 추가 및 에러 ...
244
                                                              },//cooking state
4e9cd180f   고영탁   중심온도 과열 에러 삭제
245
246
247
248
249
250
251
252
253
254
255
256
                                                              {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   고영탁   세척 에러 유형 추가 및 에러 ...
257
                                                              } //washing state
b915c1b54   고영탁   팝업 처리 수정
258
                                                               };
3210318c7   고영탁   오븐 에러 번지 주석 추가
259
      //30048
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
260
      const uint32_t comm_err_mask[3][MAX_MODEL_COUNT] =    {
b915c1b54   고영탁   팝업 처리 수정
261
                                                         {0x000d, //ele_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
262
                                                          0x001f, //ele_20
b915c1b54   고영탁   팝업 처리 수정
263
                                                          0x000d, //ele_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
264
                                                          0x001f, //ele_40
b915c1b54   고영탁   팝업 처리 수정
265
                                                          0x000d, //lpg_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
266
                                                          0x001f, //lpg_20
b915c1b54   고영탁   팝업 처리 수정
267
                                                          0x000d, //lpg_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
268
                                                          0x001f, //lpg_40
b915c1b54   고영탁   팝업 처리 수정
269
                                                          0x000d, //lng_10
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
270
                                                          0x001f, //lng_20
b915c1b54   고영탁   팝업 처리 수정
271
                                                          0x000d, //lng_24
b69abdac2   고영탁   모델 별 하부 에러 마스크 적용
272
                                                          0x001f  //lng_40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
273
274
275
276
277
278
279
280
281
282
283
284
285
286
                                                         }, // 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   고영탁   팝업 처리 수정
287
288
289
290
291
292
293
294
295
296
297
298
                                                          {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   고영탁   세척 에러 유형 추가 및 에러 ...
299
300
                                                          } // washing state
                                                          };
b915c1b54   고영탁   팝업 처리 수정
301
302
303
304
305
306
307
308
309
310
311
312
313
  //    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   고영탁   중심온도 과열 에러 삭제
314
3210318c7   고영탁   오븐 에러 번지 주석 추가
315
  //30049
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
316
      const uint32_t sensor_err_mask[3][MAX_MODEL_COUNT] =    {
e7183cdbf   고영탁   에러 비트 수정
317
318
319
320
321
322
323
324
325
326
327
328
                                                            {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   고영탁   팝업 처리 수정
329
                                                           }, // end of noncooking state
e7183cdbf   고영탁   에러 비트 수정
330
331
332
333
334
335
336
337
338
339
340
341
                                                          {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   고영탁   세척 에러 유형 추가 및 에러 ...
342
                                                         }, //cooking state
e7183cdbf   고영탁   에러 비트 수정
343
344
345
346
347
348
349
350
351
352
353
354
                                                          {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   고영탁   세척 에러 유형 추가 및 에러 ...
355
356
                                                         } // washing state
                                                          };
3210318c7   고영탁   오븐 에러 번지 주석 추가
357
  //30057
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
358
      const uint32_t state_err_mask[3][MAX_MODEL_COUNT] =  {
a27cda0a6   고영탁   GUI V 1.2.01
359
360
361
362
363
364
365
366
367
368
369
370
                                                              {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   고영탁   팝업 처리 수정
371
                                                             }, //end of noncooking state
a27cda0a6   고영탁   GUI V 1.2.01
372
373
374
375
376
377
378
379
380
381
382
383
                                                              {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   고영탁   세척 에러 유형 추가 및 에러 ...
384
385
                                                             },
                                                              {0x0000, //ele 10
4483bc52f   고영탁   오븐 에러발생 수정
386
                                                              0x0018, //ele 20
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
387
                                                              0x0000, //ele 24
4483bc52f   고영탁   오븐 에러발생 수정
388
                                                              0x0018, //ele 40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
389
                                                              0x0000, //lpg 10
4483bc52f   고영탁   오븐 에러발생 수정
390
                                                              0x0018, //lpg 20
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
391
                                                              0x0000, //lpg 24
4483bc52f   고영탁   오븐 에러발생 수정
392
                                                              0x0018, //lpg 40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
393
                                                              0x0000, //lng 10
4483bc52f   고영탁   오븐 에러발생 수정
394
                                                              0x0018, //lng 20
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
395
                                                              0x0000, //lng 24
4483bc52f   고영탁   오븐 에러발생 수정
396
                                                              0x0018  //lng  40
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
397
398
                                                             }//washing state
                                                              };
20fcaaf68   고영탁   에러 마스크 별도 적용
399
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
400
      const error_exe_type sys_err_type_def[SYS_STATE_MAX][SYS_ERR_MAX]={ //30047
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
401
402
                                                          {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   고영탁   팝업 처리 수정
403
                                                          {error_type_onlychk,error_type_onlychk,error_type_onlychk,error_type_engclrstopcmd,error_type_engclrstopcmd,
4a1cc6a99   고영탁   GUI V0.4.2
404
                                                          error_type_engclrstopcmd,error_type_engclrstopcmd,error_type_engclrstopcmd,error_type_popclr,error_type_popclr}, // SYS_ON_COOK_OFF state
a7e8cc0aa   고영탁   버그 및 동작 개선
405
406
                                                          {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   고영탁   오븐 에러발생 수정
407
408
                                                          {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   고영탁   세척 에러 유형 추가 및 에러 ...
409
                                                          {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
410
411
                                                          error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, // SYS_OFF_COOK_ON state
                                                          };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
412
      const error_exe_type comm_err_type_def[SYS_STATE_MAX][COMM_ERR_MAX] ={  //30048
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
413
                                                         {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_OFF
a7e8cc0aa   고영탁   버그 및 동작 개선
414
415
                                                         {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   고영탁   오븐 에러발생 수정
416
                                                         {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_WASH
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
417
418
                                                         {error_type_popnonclr,error_type_popnonclr,error_type_popnonclr,error_type_engnonclr,error_type_engnonclr}, //SYS_OFF_COO_ON
      };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
419
420
      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   고영탁   버그 및 동작 개선
421
422
                                                         {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   고영탁   오븐 에러발생 수정
423
                                                         {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_WASH
94c1b260b   고영탁   고객사 요청 사항 반영 V1.3.00
424
                                                       //{error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_popclrstopcmd}, //SYS_ON_WASH
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
425
                                                         {error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr,error_type_popclr}, //SYS_OFF_COO_ON
7ae804762   고영탁   에러 상황 추가
426
      };
3fd8255a1   고영탁   팝업 관련 동작 정의 수정
427
      const error_exe_type sensor_err_type_def[SYS_STATE_MAX][SENSOR_ERR_MAX]={ //30049
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
428
429
                                                          {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   고영탁   버그 및 동작 개선
430
                                                          {error_type_popclrstopcmd,error_type_popclrstopcmd,error_type_allnone,error_type_popclrstopcmd,error_type_popclrstopcmd,
b915c1b54   고영탁   팝업 처리 수정
431
432
433
                                                          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   고영탁   오븐 에러발생 수정
434
435
                                                          {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   고영탁   에러 처리 루틴 및 에러 처리 ...
436
437
438
                                                          {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   고영탁   세척 에러 유형 추가 및 에러 ...
439
440
441
442
443
444
445
446
447
448
449
450
451
452
  
      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차 구현
453
454
455
456
      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   고영탁   에러 처리 루틴 및 에러 처리 ...
457
6a965b9f1   고영탁   엔지니어 모드 2차 구현
458
      type_temp curSensorValue[MAX_LOG_SENSOR];
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
459
42410a75c   김태훈   오타 수정
460
      static OvenStatistics* p_singletonInstance;
652e9cd54   고영탁   Merge
461
462
      UdpHandler *udp;
      Oven* oven;
20fcaaf68   고영탁   에러 마스크 별도 적용
463
      Config* cfg;
652e9cd54   고영탁   Merge
464
465
      oven_control_t control;
      oven_state_t state;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
466
      error_item* m_pLastErrItem;
a7e8cc0aa   고영탁   버그 및 동작 개선
467
      QMap<uint32_t, QWidget *> m_mapPopupList;
cefd483e4   고영탁   에러 수정
468
469
      uint32_t m_nLastPopupidx;
      bool m_bPopupShow;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
470
652e9cd54   고영탁   Merge
471
472
473
474
  
  
      bool curdoorstate;
      uint16_t curSysErrorState;
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
475
476
      uint16_t curCommErrorState;
      uint16_t curSensorErrorState;
d66410abd   고영탁   에러 팝업 형태 변경
477
      uint16_t curControlErrorState;
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
478
479
      bool bNeedErrorClear;
      bool bDataRefreshed;
6a965b9f1   고영탁   엔지니어 모드 2차 구현
480
      realtime_data realdata;
003971acb   고영탁   에러 발생시 패스워드 인풋 윈도...
481
      ServicePassInputDlg *m_wndSrvpassdlg;
94c1b260b   고영탁   고객사 요청 사항 반영 V1.3.00
482
483
484
      uint32_t m_nUpperRpm;
      uint32_t m_nLowerRpm;
      uint32_t m_nSteamRpm;
0964351ba   고영탁   스팀 과열 에러 발생 시 SSV...
485
486
      bool m_bPrevteamTempErr;
      QTimer *m_tmrSvoff;
cefd483e4   고영탁   에러 수정
487
42410a75c   김태훈   오타 수정
488
489
      explicit OvenStatistics(QObject* parent);
      ~OvenStatistics();
652e9cd54   고영탁   Merge
490
      void processSystemError(uint16_t errflag,time_t ltime);
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
491
492
      void processCommError(uint16_t errflag,time_t ltime);
      void processSensorError(uint16_t errflag, time_t ltime);
7ae804762   고영탁   에러 상황 추가
493
      void processStateError(uint16_t errflat, time_t ltime);
15e45c49c   고영탁   세척 에러 유형 추가 및 에러 ...
494
      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   고영탁   에러 처리 루틴 및 에러 처리 ...
495
f345e373f   김태훈   클래스 정의 수정
496
497
498
499
500
501
502
503
504
  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 고객사 요청 사항 반영
505
      uint16_t    getFrimwareVersion(void){return state.firmware_version;}
6a965b9f1   고영탁   엔지니어 모드 2차 구현
506
652e9cd54   고영탁   Merge
507
508
  public slots:
      void onDataChanged();
c50beef02   고영탁   에러 처리 루틴 및 에러 처리 ...
509
      void oneSecTimerFired(void);
a7e8cc0aa   고영탁   버그 및 동작 개선
510
      void onErrorPopupClosed(int erridx);
003971acb   고영탁   에러 발생시 패스워드 인풋 윈도...
511
      void setWndPassInputNull(void){m_wndSrvpassdlg = NULL;}
703618ec3   고영탁   세척 상황에서 에러 발생시 이벤...
512
      void onCommTimeoutFired();
0964351ba   고영탁   스팀 과열 에러 발생 시 SSV...
513
      void onSvOffTimeoutFired();
d1d566994   고영탁   에러 발생 시그널 추가
514
515
516
  
  signals:
      void onErrorFired(int erridx);
703618ec3   고영탁   세척 상황에서 에러 발생시 이벤...
517
      void stopClean(void);
652e9cd54   고영탁   Merge
518
519
520
  };
  
  #endif // OVENSTATICS_H