Blame view

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