Commit 6a965b9f188eb102c1de4a11db2e77adc3b5ffab

Authored by 고영탁
1 parent c50beef02d
Exists in master and in 2 other branches fhd, fhd-demo

엔지니어 모드 2차 구현

- 서비스 기록 기능 구현
- 실시간데이터 기능 구현
- 작동시간 기능 구현
Showing 48 changed files with 8664 additions and 767 deletions   Show diff stats
app/gui/oven_control/engineermenuwindow.cpp
1 1 #include "engineermenuwindow.h"
2 2 #include "ui_engineermenuwindow.h"
  3 +#include "servicehistorymain.h"
  4 +#include "operationtimemain.h"
  5 +#include "realtimemain.h"
3 6  
4 7 engineermenuwindow::engineermenuwindow(QWidget *parent) :
5 8 QMainWindow(parent),
... ... @@ -17,3 +20,24 @@ engineermenuwindow::~engineermenuwindow()
17 20 {
18 21 delete ui;
19 22 }
  23 +
  24 +void engineermenuwindow::on_servicehistorybutton_clicked()
  25 +{
  26 + serviceHistoryMain *w = new serviceHistoryMain(this);
  27 + w->setWindowModality(Qt::WindowModal);
  28 + w->showFullScreen();
  29 +}
  30 +
  31 +void engineermenuwindow::on_operationtimebutton_clicked()
  32 +{
  33 + operationTimeMain *w = new operationTimeMain(this);
  34 + w->setWindowModality(Qt::WindowModal);
  35 + w->showFullScreen();
  36 +}
  37 +
  38 +void engineermenuwindow::on_realdatabutton_clicked()
  39 +{
  40 + realtimeMain* w = new realtimeMain(this);
  41 + w->setWindowModality(Qt::WindowModal);
  42 + w->showFullScreen();
  43 +}
... ...
app/gui/oven_control/engineermenuwindow.h
... ... @@ -15,6 +15,13 @@ public:
15 15 explicit engineermenuwindow(QWidget *parent = 0);
16 16 ~engineermenuwindow();
17 17  
  18 +private slots:
  19 + void on_servicehistorybutton_clicked();
  20 +
  21 + void on_operationtimebutton_clicked();
  22 +
  23 + void on_realdatabutton_clicked();
  24 +
18 25 private:
19 26 Ui::engineermenuwindow *ui;
20 27 };
... ...
app/gui/oven_control/engineermenuwindow.ui
... ... @@ -56,49 +56,15 @@
56 56 <height>84</height>
57 57 </rect>
58 58 </property>
59   - <property name="palette">
60   - <palette>
61   - <active>
62   - <colorrole role="WindowText">
63   - <brush brushstyle="SolidPattern">
64   - <color alpha="255">
65   - <red>255</red>
66   - <green>255</green>
67   - <blue>255</blue>
68   - </color>
69   - </brush>
70   - </colorrole>
71   - </active>
72   - <inactive>
73   - <colorrole role="WindowText">
74   - <brush brushstyle="SolidPattern">
75   - <color alpha="255">
76   - <red>255</red>
77   - <green>255</green>
78   - <blue>255</blue>
79   - </color>
80   - </brush>
81   - </colorrole>
82   - </inactive>
83   - <disabled>
84   - <colorrole role="WindowText">
85   - <brush brushstyle="SolidPattern">
86   - <color alpha="255">
87   - <red>190</red>
88   - <green>190</green>
89   - <blue>190</blue>
90   - </color>
91   - </brush>
92   - </colorrole>
93   - </disabled>
94   - </palette>
95   - </property>
96 59 <property name="font">
97 60 <font>
98 61 <family>Malgun Gothic</family>
99 62 <pointsize>11</pointsize>
100 63 </font>
101 64 </property>
  65 + <property name="styleSheet">
  66 + <string notr="true">color: rgb(255, 255, 255);</string>
  67 + </property>
102 68 <property name="text">
103 69 <string>서비스단계(엔지니어모드)</string>
104 70 </property>
... ... @@ -157,70 +123,6 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }&lt;/str
157 123 <verstretch>0</verstretch>
158 124 </sizepolicy>
159 125 </property>
160   - <property name="palette">
161   - <palette>
162   - <active>
163   - <colorrole role="WindowText">
164   - <brush brushstyle="SolidPattern">
165   - <color alpha="255">
166   - <red>0</red>
167   - <green>0</green>
168   - <blue>0</blue>
169   - </color>
170   - </brush>
171   - </colorrole>
172   - <colorrole role="ButtonText">
173   - <brush brushstyle="SolidPattern">
174   - <color alpha="255">
175   - <red>255</red>
176   - <green>255</green>
177   - <blue>255</blue>
178   - </color>
179   - </brush>
180   - </colorrole>
181   - </active>
182   - <inactive>
183   - <colorrole role="WindowText">
184   - <brush brushstyle="SolidPattern">
185   - <color alpha="255">
186   - <red>0</red>
187   - <green>0</green>
188   - <blue>0</blue>
189   - </color>
190   - </brush>
191   - </colorrole>
192   - <colorrole role="ButtonText">
193   - <brush brushstyle="SolidPattern">
194   - <color alpha="255">
195   - <red>255</red>
196   - <green>255</green>
197   - <blue>255</blue>
198   - </color>
199   - </brush>
200   - </colorrole>
201   - </inactive>
202   - <disabled>
203   - <colorrole role="WindowText">
204   - <brush brushstyle="SolidPattern">
205   - <color alpha="255">
206   - <red>190</red>
207   - <green>190</green>
208   - <blue>190</blue>
209   - </color>
210   - </brush>
211   - </colorrole>
212   - <colorrole role="ButtonText">
213   - <brush brushstyle="SolidPattern">
214   - <color alpha="255">
215   - <red>190</red>
216   - <green>190</green>
217   - <blue>190</blue>
218   - </color>
219   - </brush>
220   - </colorrole>
221   - </disabled>
222   - </palette>
223   - </property>
224 126 <property name="font">
225 127 <font>
226 128 <family>Roboto</family>
... ... @@ -231,11 +133,9 @@ QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }&lt;/str
231 133 </font>
232 134 </property>
233 135 <property name="styleSheet">
234   - <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); }
  136 + <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); color: rgb(255, 255, 255);}
235 137 QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
236 138 QPushButton { text-align: left;}
237   -
238   -
239 139 </string>
240 140 </property>
241 141 <property name="text">
... ... @@ -248,43 +148,6 @@ QPushButton { text-align: left;}
248 148 <property name="enabled">
249 149 <bool>true</bool>
250 150 </property>
251   - <property name="palette">
252   - <palette>
253   - <active>
254   - <colorrole role="WindowText">
255   - <brush brushstyle="SolidPattern">
256   - <color alpha="255">
257   - <red>255</red>
258   - <green>255</green>
259   - <blue>255</blue>
260   - </color>
261   - </brush>
262   - </colorrole>
263   - </active>
264   - <inactive>
265   - <colorrole role="WindowText">
266   - <brush brushstyle="SolidPattern">
267   - <color alpha="255">
268   - <red>255</red>
269   - <green>255</green>
270   - <blue>255</blue>
271   - </color>
272   - </brush>
273   - </colorrole>
274   - </inactive>
275   - <disabled>
276   - <colorrole role="WindowText">
277   - <brush brushstyle="SolidPattern">
278   - <color alpha="255">
279   - <red>190</red>
280   - <green>190</green>
281   - <blue>190</blue>
282   - </color>
283   - </brush>
284   - </colorrole>
285   - </disabled>
286   - </palette>
287   - </property>
288 151 <property name="font">
289 152 <font>
290 153 <family>Malgun Gothic</family>
... ... @@ -293,6 +156,9 @@ QPushButton { text-align: left;}
293 156 <bold>true</bold>
294 157 </font>
295 158 </property>
  159 + <property name="styleSheet">
  160 + <string notr="true">color: rgb(255, 255, 255);</string>
  161 + </property>
296 162 <property name="text">
297 163 <string>EM-1</string>
298 164 </property>
... ... @@ -327,70 +193,6 @@ QPushButton { text-align: left;}
327 193 <verstretch>0</verstretch>
328 194 </sizepolicy>
329 195 </property>
330   - <property name="palette">
331   - <palette>
332   - <active>
333   - <colorrole role="WindowText">
334   - <brush brushstyle="SolidPattern">
335   - <color alpha="255">
336   - <red>0</red>
337   - <green>0</green>
338   - <blue>0</blue>
339   - </color>
340   - </brush>
341   - </colorrole>
342   - <colorrole role="ButtonText">
343   - <brush brushstyle="SolidPattern">
344   - <color alpha="255">
345   - <red>255</red>
346   - <green>255</green>
347   - <blue>255</blue>
348   - </color>
349   - </brush>
350   - </colorrole>
351   - </active>
352   - <inactive>
353   - <colorrole role="WindowText">
354   - <brush brushstyle="SolidPattern">
355   - <color alpha="255">
356   - <red>0</red>
357   - <green>0</green>
358   - <blue>0</blue>
359   - </color>
360   - </brush>
361   - </colorrole>
362   - <colorrole role="ButtonText">
363   - <brush brushstyle="SolidPattern">
364   - <color alpha="255">
365   - <red>255</red>
366   - <green>255</green>
367   - <blue>255</blue>
368   - </color>
369   - </brush>
370   - </colorrole>
371   - </inactive>
372   - <disabled>
373   - <colorrole role="WindowText">
374   - <brush brushstyle="SolidPattern">
375   - <color alpha="255">
376   - <red>190</red>
377   - <green>190</green>
378   - <blue>190</blue>
379   - </color>
380   - </brush>
381   - </colorrole>
382   - <colorrole role="ButtonText">
383   - <brush brushstyle="SolidPattern">
384   - <color alpha="255">
385   - <red>190</red>
386   - <green>190</green>
387   - <blue>190</blue>
388   - </color>
389   - </brush>
390   - </colorrole>
391   - </disabled>
392   - </palette>
393   - </property>
394 196 <property name="font">
395 197 <font>
396 198 <family>Roboto</family>
... ... @@ -401,7 +203,7 @@ QPushButton { text-align: left;}
401 203 </font>
402 204 </property>
403 205 <property name="styleSheet">
404   - <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); }
  206 + <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); color: rgb(255, 255, 255);}
405 207 QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
406 208 QPushButton { text-align: left;}</string>
407 209 </property>
... ... @@ -415,43 +217,6 @@ QPushButton { text-align: left;}&lt;/string&gt;
415 217 <property name="enabled">
416 218 <bool>true</bool>
417 219 </property>
418   - <property name="palette">
419   - <palette>
420   - <active>
421   - <colorrole role="WindowText">
422   - <brush brushstyle="SolidPattern">
423   - <color alpha="255">
424   - <red>255</red>
425   - <green>255</green>
426   - <blue>255</blue>
427   - </color>
428   - </brush>
429   - </colorrole>
430   - </active>
431   - <inactive>
432   - <colorrole role="WindowText">
433   - <brush brushstyle="SolidPattern">
434   - <color alpha="255">
435   - <red>255</red>
436   - <green>255</green>
437   - <blue>255</blue>
438   - </color>
439   - </brush>
440   - </colorrole>
441   - </inactive>
442   - <disabled>
443   - <colorrole role="WindowText">
444   - <brush brushstyle="SolidPattern">
445   - <color alpha="255">
446   - <red>190</red>
447   - <green>190</green>
448   - <blue>190</blue>
449   - </color>
450   - </brush>
451   - </colorrole>
452   - </disabled>
453   - </palette>
454   - </property>
455 220 <property name="font">
456 221 <font>
457 222 <family>Malgun Gothic</family>
... ... @@ -460,6 +225,9 @@ QPushButton { text-align: left;}&lt;/string&gt;
460 225 <bold>true</bold>
461 226 </font>
462 227 </property>
  228 + <property name="styleSheet">
  229 + <string notr="true">color: rgb(255, 255, 255);</string>
  230 + </property>
463 231 <property name="text">
464 232 <string>EM-2</string>
465 233 </property>
... ... @@ -494,70 +262,6 @@ QPushButton { text-align: left;}&lt;/string&gt;
494 262 <verstretch>0</verstretch>
495 263 </sizepolicy>
496 264 </property>
497   - <property name="palette">
498   - <palette>
499   - <active>
500   - <colorrole role="WindowText">
501   - <brush brushstyle="SolidPattern">
502   - <color alpha="255">
503   - <red>0</red>
504   - <green>0</green>
505   - <blue>0</blue>
506   - </color>
507   - </brush>
508   - </colorrole>
509   - <colorrole role="ButtonText">
510   - <brush brushstyle="SolidPattern">
511   - <color alpha="255">
512   - <red>255</red>
513   - <green>255</green>
514   - <blue>255</blue>
515   - </color>
516   - </brush>
517   - </colorrole>
518   - </active>
519   - <inactive>
520   - <colorrole role="WindowText">
521   - <brush brushstyle="SolidPattern">
522   - <color alpha="255">
523   - <red>0</red>
524   - <green>0</green>
525   - <blue>0</blue>
526   - </color>
527   - </brush>
528   - </colorrole>
529   - <colorrole role="ButtonText">
530   - <brush brushstyle="SolidPattern">
531   - <color alpha="255">
532   - <red>255</red>
533   - <green>255</green>
534   - <blue>255</blue>
535   - </color>
536   - </brush>
537   - </colorrole>
538   - </inactive>
539   - <disabled>
540   - <colorrole role="WindowText">
541   - <brush brushstyle="SolidPattern">
542   - <color alpha="255">
543   - <red>190</red>
544   - <green>190</green>
545   - <blue>190</blue>
546   - </color>
547   - </brush>
548   - </colorrole>
549   - <colorrole role="ButtonText">
550   - <brush brushstyle="SolidPattern">
551   - <color alpha="255">
552   - <red>190</red>
553   - <green>190</green>
554   - <blue>190</blue>
555   - </color>
556   - </brush>
557   - </colorrole>
558   - </disabled>
559   - </palette>
560   - </property>
561 265 <property name="font">
562 266 <font>
563 267 <family>Roboto</family>
... ... @@ -570,7 +274,7 @@ QPushButton { text-align: left;}&lt;/string&gt;
570 274 <property name="styleSheet">
571 275 <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); }
572 276 QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
573   -QPushButton { text-align: left;}</string>
  277 +QPushButton { color: rgb(255, 255, 255);text-align: left;}</string>
574 278 </property>
575 279 <property name="text">
576 280 <string> 기능테스트</string>
... ... @@ -582,43 +286,6 @@ QPushButton { text-align: left;}&lt;/string&gt;
582 286 <property name="enabled">
583 287 <bool>true</bool>
584 288 </property>
585   - <property name="palette">
586   - <palette>
587   - <active>
588   - <colorrole role="WindowText">
589   - <brush brushstyle="SolidPattern">
590   - <color alpha="255">
591   - <red>255</red>
592   - <green>255</green>
593   - <blue>255</blue>
594   - </color>
595   - </brush>
596   - </colorrole>
597   - </active>
598   - <inactive>
599   - <colorrole role="WindowText">
600   - <brush brushstyle="SolidPattern">
601   - <color alpha="255">
602   - <red>255</red>
603   - <green>255</green>
604   - <blue>255</blue>
605   - </color>
606   - </brush>
607   - </colorrole>
608   - </inactive>
609   - <disabled>
610   - <colorrole role="WindowText">
611   - <brush brushstyle="SolidPattern">
612   - <color alpha="255">
613   - <red>190</red>
614   - <green>190</green>
615   - <blue>190</blue>
616   - </color>
617   - </brush>
618   - </colorrole>
619   - </disabled>
620   - </palette>
621   - </property>
622 289 <property name="font">
623 290 <font>
624 291 <family>Malgun Gothic</family>
... ... @@ -627,6 +294,9 @@ QPushButton { text-align: left;}&lt;/string&gt;
627 294 <bold>true</bold>
628 295 </font>
629 296 </property>
  297 + <property name="styleSheet">
  298 + <string notr="true">color: rgb(255, 255, 255);</string>
  299 + </property>
630 300 <property name="text">
631 301 <string>EM-3</string>
632 302 </property>
... ... @@ -661,70 +331,6 @@ QPushButton { text-align: left;}&lt;/string&gt;
661 331 <verstretch>0</verstretch>
662 332 </sizepolicy>
663 333 </property>
664   - <property name="palette">
665   - <palette>
666   - <active>
667   - <colorrole role="WindowText">
668   - <brush brushstyle="SolidPattern">
669   - <color alpha="255">
670   - <red>0</red>
671   - <green>0</green>
672   - <blue>0</blue>
673   - </color>
674   - </brush>
675   - </colorrole>
676   - <colorrole role="ButtonText">
677   - <brush brushstyle="SolidPattern">
678   - <color alpha="255">
679   - <red>255</red>
680   - <green>255</green>
681   - <blue>255</blue>
682   - </color>
683   - </brush>
684   - </colorrole>
685   - </active>
686   - <inactive>
687   - <colorrole role="WindowText">
688   - <brush brushstyle="SolidPattern">
689   - <color alpha="255">
690   - <red>0</red>
691   - <green>0</green>
692   - <blue>0</blue>
693   - </color>
694   - </brush>
695   - </colorrole>
696   - <colorrole role="ButtonText">
697   - <brush brushstyle="SolidPattern">
698   - <color alpha="255">
699   - <red>255</red>
700   - <green>255</green>
701   - <blue>255</blue>
702   - </color>
703   - </brush>
704   - </colorrole>
705   - </inactive>
706   - <disabled>
707   - <colorrole role="WindowText">
708   - <brush brushstyle="SolidPattern">
709   - <color alpha="255">
710   - <red>190</red>
711   - <green>190</green>
712   - <blue>190</blue>
713   - </color>
714   - </brush>
715   - </colorrole>
716   - <colorrole role="ButtonText">
717   - <brush brushstyle="SolidPattern">
718   - <color alpha="255">
719   - <red>190</red>
720   - <green>190</green>
721   - <blue>190</blue>
722   - </color>
723   - </brush>
724   - </colorrole>
725   - </disabled>
726   - </palette>
727   - </property>
728 334 <property name="font">
729 335 <font>
730 336 <family>Roboto</family>
... ... @@ -737,7 +343,7 @@ QPushButton { text-align: left;}&lt;/string&gt;
737 343 <property name="styleSheet">
738 344 <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); }
739 345 QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
740   -QPushButton { text-align: left;}</string>
  346 +QPushButton {color: rgb(255, 255, 255); text-align: left;}</string>
741 347 </property>
742 348 <property name="text">
743 349 <string> 서비스기록</string>
... ... @@ -749,43 +355,6 @@ QPushButton { text-align: left;}&lt;/string&gt;
749 355 <property name="enabled">
750 356 <bool>true</bool>
751 357 </property>
752   - <property name="palette">
753   - <palette>
754   - <active>
755   - <colorrole role="WindowText">
756   - <brush brushstyle="SolidPattern">
757   - <color alpha="255">
758   - <red>255</red>
759   - <green>255</green>
760   - <blue>255</blue>
761   - </color>
762   - </brush>
763   - </colorrole>
764   - </active>
765   - <inactive>
766   - <colorrole role="WindowText">
767   - <brush brushstyle="SolidPattern">
768   - <color alpha="255">
769   - <red>255</red>
770   - <green>255</green>
771   - <blue>255</blue>
772   - </color>
773   - </brush>
774   - </colorrole>
775   - </inactive>
776   - <disabled>
777   - <colorrole role="WindowText">
778   - <brush brushstyle="SolidPattern">
779   - <color alpha="255">
780   - <red>190</red>
781   - <green>190</green>
782   - <blue>190</blue>
783   - </color>
784   - </brush>
785   - </colorrole>
786   - </disabled>
787   - </palette>
788   - </property>
789 358 <property name="font">
790 359 <font>
791 360 <family>Malgun Gothic</family>
... ... @@ -794,6 +363,9 @@ QPushButton { text-align: left;}&lt;/string&gt;
794 363 <bold>true</bold>
795 364 </font>
796 365 </property>
  366 + <property name="styleSheet">
  367 + <string notr="true">color: rgb(255, 255, 255);</string>
  368 + </property>
797 369 <property name="text">
798 370 <string>EM-4</string>
799 371 </property>
... ... @@ -828,70 +400,6 @@ QPushButton { text-align: left;}&lt;/string&gt;
828 400 <verstretch>0</verstretch>
829 401 </sizepolicy>
830 402 </property>
831   - <property name="palette">
832   - <palette>
833   - <active>
834   - <colorrole role="WindowText">
835   - <brush brushstyle="SolidPattern">
836   - <color alpha="255">
837   - <red>0</red>
838   - <green>0</green>
839   - <blue>0</blue>
840   - </color>
841   - </brush>
842   - </colorrole>
843   - <colorrole role="ButtonText">
844   - <brush brushstyle="SolidPattern">
845   - <color alpha="255">
846   - <red>255</red>
847   - <green>255</green>
848   - <blue>255</blue>
849   - </color>
850   - </brush>
851   - </colorrole>
852   - </active>
853   - <inactive>
854   - <colorrole role="WindowText">
855   - <brush brushstyle="SolidPattern">
856   - <color alpha="255">
857   - <red>0</red>
858   - <green>0</green>
859   - <blue>0</blue>
860   - </color>
861   - </brush>
862   - </colorrole>
863   - <colorrole role="ButtonText">
864   - <brush brushstyle="SolidPattern">
865   - <color alpha="255">
866   - <red>255</red>
867   - <green>255</green>
868   - <blue>255</blue>
869   - </color>
870   - </brush>
871   - </colorrole>
872   - </inactive>
873   - <disabled>
874   - <colorrole role="WindowText">
875   - <brush brushstyle="SolidPattern">
876   - <color alpha="255">
877   - <red>190</red>
878   - <green>190</green>
879   - <blue>190</blue>
880   - </color>
881   - </brush>
882   - </colorrole>
883   - <colorrole role="ButtonText">
884   - <brush brushstyle="SolidPattern">
885   - <color alpha="255">
886   - <red>190</red>
887   - <green>190</green>
888   - <blue>190</blue>
889   - </color>
890   - </brush>
891   - </colorrole>
892   - </disabled>
893   - </palette>
894   - </property>
895 403 <property name="font">
896 404 <font>
897 405 <family>Roboto</family>
... ... @@ -903,7 +411,7 @@ QPushButton { text-align: left;}&lt;/string&gt;
903 411 </property>
904 412 <property name="styleSheet">
905 413 <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); }
906   -QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { text-align: left;}</string>
  414 +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { color: rgb(255, 255, 255);text-align: left;}</string>
907 415 </property>
908 416 <property name="text">
909 417 <string> 실시간데이터</string>
... ... @@ -915,43 +423,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
915 423 <property name="enabled">
916 424 <bool>true</bool>
917 425 </property>
918   - <property name="palette">
919   - <palette>
920   - <active>
921   - <colorrole role="WindowText">
922   - <brush brushstyle="SolidPattern">
923   - <color alpha="255">
924   - <red>255</red>
925   - <green>255</green>
926   - <blue>255</blue>
927   - </color>
928   - </brush>
929   - </colorrole>
930   - </active>
931   - <inactive>
932   - <colorrole role="WindowText">
933   - <brush brushstyle="SolidPattern">
934   - <color alpha="255">
935   - <red>255</red>
936   - <green>255</green>
937   - <blue>255</blue>
938   - </color>
939   - </brush>
940   - </colorrole>
941   - </inactive>
942   - <disabled>
943   - <colorrole role="WindowText">
944   - <brush brushstyle="SolidPattern">
945   - <color alpha="255">
946   - <red>190</red>
947   - <green>190</green>
948   - <blue>190</blue>
949   - </color>
950   - </brush>
951   - </colorrole>
952   - </disabled>
953   - </palette>
954   - </property>
955 426 <property name="font">
956 427 <font>
957 428 <family>Malgun Gothic</family>
... ... @@ -960,6 +431,9 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
960 431 <bold>true</bold>
961 432 </font>
962 433 </property>
  434 + <property name="styleSheet">
  435 + <string notr="true">color: rgb(255, 255, 255);</string>
  436 + </property>
963 437 <property name="text">
964 438 <string>EM-5</string>
965 439 </property>
... ... @@ -994,70 +468,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
994 468 <verstretch>0</verstretch>
995 469 </sizepolicy>
996 470 </property>
997   - <property name="palette">
998   - <palette>
999   - <active>
1000   - <colorrole role="WindowText">
1001   - <brush brushstyle="SolidPattern">
1002   - <color alpha="255">
1003   - <red>0</red>
1004   - <green>0</green>
1005   - <blue>0</blue>
1006   - </color>
1007   - </brush>
1008   - </colorrole>
1009   - <colorrole role="ButtonText">
1010   - <brush brushstyle="SolidPattern">
1011   - <color alpha="255">
1012   - <red>255</red>
1013   - <green>255</green>
1014   - <blue>255</blue>
1015   - </color>
1016   - </brush>
1017   - </colorrole>
1018   - </active>
1019   - <inactive>
1020   - <colorrole role="WindowText">
1021   - <brush brushstyle="SolidPattern">
1022   - <color alpha="255">
1023   - <red>0</red>
1024   - <green>0</green>
1025   - <blue>0</blue>
1026   - </color>
1027   - </brush>
1028   - </colorrole>
1029   - <colorrole role="ButtonText">
1030   - <brush brushstyle="SolidPattern">
1031   - <color alpha="255">
1032   - <red>255</red>
1033   - <green>255</green>
1034   - <blue>255</blue>
1035   - </color>
1036   - </brush>
1037   - </colorrole>
1038   - </inactive>
1039   - <disabled>
1040   - <colorrole role="WindowText">
1041   - <brush brushstyle="SolidPattern">
1042   - <color alpha="255">
1043   - <red>190</red>
1044   - <green>190</green>
1045   - <blue>190</blue>
1046   - </color>
1047   - </brush>
1048   - </colorrole>
1049   - <colorrole role="ButtonText">
1050   - <brush brushstyle="SolidPattern">
1051   - <color alpha="255">
1052   - <red>190</red>
1053   - <green>190</green>
1054   - <blue>190</blue>
1055   - </color>
1056   - </brush>
1057   - </colorrole>
1058   - </disabled>
1059   - </palette>
1060   - </property>
1061 471 <property name="font">
1062 472 <font>
1063 473 <family>Roboto</family>
... ... @@ -1069,7 +479,7 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
1069 479 </property>
1070 480 <property name="styleSheet">
1071 481 <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); }
1072   -QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { text-align: left;}</string>
  482 +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushButton { color: rgb(255, 255, 255);text-align: left;}</string>
1073 483 </property>
1074 484 <property name="text">
1075 485 <string> 작동시간</string>
... ... @@ -1081,43 +491,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
1081 491 <property name="enabled">
1082 492 <bool>true</bool>
1083 493 </property>
1084   - <property name="palette">
1085   - <palette>
1086   - <active>
1087   - <colorrole role="WindowText">
1088   - <brush brushstyle="SolidPattern">
1089   - <color alpha="255">
1090   - <red>255</red>
1091   - <green>255</green>
1092   - <blue>255</blue>
1093   - </color>
1094   - </brush>
1095   - </colorrole>
1096   - </active>
1097   - <inactive>
1098   - <colorrole role="WindowText">
1099   - <brush brushstyle="SolidPattern">
1100   - <color alpha="255">
1101   - <red>255</red>
1102   - <green>255</green>
1103   - <blue>255</blue>
1104   - </color>
1105   - </brush>
1106   - </colorrole>
1107   - </inactive>
1108   - <disabled>
1109   - <colorrole role="WindowText">
1110   - <brush brushstyle="SolidPattern">
1111   - <color alpha="255">
1112   - <red>190</red>
1113   - <green>190</green>
1114   - <blue>190</blue>
1115   - </color>
1116   - </brush>
1117   - </colorrole>
1118   - </disabled>
1119   - </palette>
1120   - </property>
1121 494 <property name="font">
1122 495 <font>
1123 496 <family>Malgun Gothic</family>
... ... @@ -1126,6 +499,9 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
1126 499 <bold>true</bold>
1127 500 </font>
1128 501 </property>
  502 + <property name="styleSheet">
  503 + <string notr="true">color: rgb(255, 255, 255);</string>
  504 + </property>
1129 505 <property name="text">
1130 506 <string>EM-6</string>
1131 507 </property>
... ... @@ -1160,70 +536,6 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
1160 536 <verstretch>0</verstretch>
1161 537 </sizepolicy>
1162 538 </property>
1163   - <property name="palette">
1164   - <palette>
1165   - <active>
1166   - <colorrole role="WindowText">
1167   - <brush brushstyle="SolidPattern">
1168   - <color alpha="255">
1169   - <red>0</red>
1170   - <green>0</green>
1171   - <blue>0</blue>
1172   - </color>
1173   - </brush>
1174   - </colorrole>
1175   - <colorrole role="ButtonText">
1176   - <brush brushstyle="SolidPattern">
1177   - <color alpha="255">
1178   - <red>255</red>
1179   - <green>255</green>
1180   - <blue>255</blue>
1181   - </color>
1182   - </brush>
1183   - </colorrole>
1184   - </active>
1185   - <inactive>
1186   - <colorrole role="WindowText">
1187   - <brush brushstyle="SolidPattern">
1188   - <color alpha="255">
1189   - <red>0</red>
1190   - <green>0</green>
1191   - <blue>0</blue>
1192   - </color>
1193   - </brush>
1194   - </colorrole>
1195   - <colorrole role="ButtonText">
1196   - <brush brushstyle="SolidPattern">
1197   - <color alpha="255">
1198   - <red>255</red>
1199   - <green>255</green>
1200   - <blue>255</blue>
1201   - </color>
1202   - </brush>
1203   - </colorrole>
1204   - </inactive>
1205   - <disabled>
1206   - <colorrole role="WindowText">
1207   - <brush brushstyle="SolidPattern">
1208   - <color alpha="255">
1209   - <red>190</red>
1210   - <green>190</green>
1211   - <blue>190</blue>
1212   - </color>
1213   - </brush>
1214   - </colorrole>
1215   - <colorrole role="ButtonText">
1216   - <brush brushstyle="SolidPattern">
1217   - <color alpha="255">
1218   - <red>190</red>
1219   - <green>190</green>
1220   - <blue>190</blue>
1221   - </color>
1222   - </brush>
1223   - </colorrole>
1224   - </disabled>
1225   - </palette>
1226   - </property>
1227 539 <property name="font">
1228 540 <font>
1229 541 <family>Roboto</family>
... ... @@ -1236,7 +548,7 @@ QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }QPushBu
1236 548 <property name="styleSheet">
1237 549 <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png); }
1238 550 QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
1239   -QPushButton { text-align: left;}</string>
  551 +QPushButton { color: rgb(255, 255, 255);text-align: left;}</string>
1240 552 </property>
1241 553 <property name="text">
1242 554 <string> 제품모델설정</string>
... ... @@ -1248,43 +560,6 @@ QPushButton { text-align: left;}&lt;/string&gt;
1248 560 <property name="enabled">
1249 561 <bool>true</bool>
1250 562 </property>
1251   - <property name="palette">
1252   - <palette>
1253   - <active>
1254   - <colorrole role="WindowText">
1255   - <brush brushstyle="SolidPattern">
1256   - <color alpha="255">
1257   - <red>255</red>
1258   - <green>255</green>
1259   - <blue>255</blue>
1260   - </color>
1261   - </brush>
1262   - </colorrole>
1263   - </active>
1264   - <inactive>
1265   - <colorrole role="WindowText">
1266   - <brush brushstyle="SolidPattern">
1267   - <color alpha="255">
1268   - <red>255</red>
1269   - <green>255</green>
1270   - <blue>255</blue>
1271   - </color>
1272   - </brush>
1273   - </colorrole>
1274   - </inactive>
1275   - <disabled>
1276   - <colorrole role="WindowText">
1277   - <brush brushstyle="SolidPattern">
1278   - <color alpha="255">
1279   - <red>190</red>
1280   - <green>190</green>
1281   - <blue>190</blue>
1282   - </color>
1283   - </brush>
1284   - </colorrole>
1285   - </disabled>
1286   - </palette>
1287   - </property>
1288 563 <property name="font">
1289 564 <font>
1290 565 <family>Malgun Gothic</family>
... ... @@ -1293,6 +568,9 @@ QPushButton { text-align: left;}&lt;/string&gt;
1293 568 <bold>true</bold>
1294 569 </font>
1295 570 </property>
  571 + <property name="styleSheet">
  572 + <string notr="true">color: rgb(255, 255, 255);</string>
  573 + </property>
1296 574 <property name="text">
1297 575 <string>EM-7</string>
1298 576 </property>
... ...
app/gui/oven_control/historylistwindow.cpp
... ... @@ -0,0 +1,361 @@
  1 +#include <QDebug>
  2 +#include <QStandardItemModel>
  3 +#include <QHBoxLayout>
  4 +#include <time.h>
  5 +#include "historylistwindow.h"
  6 +#include "ui_historylistwindow.h"
  7 +#include "leftitemlinedelegate.h"
  8 +#include "ovenstatics.h"
  9 +
  10 +
  11 +
  12 +historyListWindow::historyListWindow(QWidget *parent) :
  13 + QMainWindow(parent),
  14 + ui(new Ui::historyListWindow)
  15 +{
  16 + ui->setupUi(this);
  17 +
  18 + m_ctrlErrorNameLabel = ui->ctrlLabelErrPartName;
  19 +
  20 + m_ctrlFirstTimeLabels[0] = ui->ctrlLabelStarTime_1;
  21 + m_ctrlFirstTimeLabels[1] = ui->ctrlLabelStarTime_2;
  22 + m_ctrlFirstTimeLabels[2] = ui->ctrlLabelStarTime_3;
  23 + m_ctrlFirstTimeLabels[3] = ui->ctrlLabelStarTime_4;
  24 + m_ctrlFirstTimeLabels[4] = ui->ctrlLabelStarTime_5;
  25 + m_ctrlFirstTimeLabels[5] = ui->ctrlLabelStarTime_6;
  26 + m_ctrlFirstTimeLabels[6] = ui->ctrlLabelStarTime_7;
  27 + m_ctrlFirstTimeLabels[7] = ui->ctrlLabelStarTime_8;
  28 + m_ctrlFirstTimeLabels[8] = ui->ctrlLabelStarTime_9;
  29 + m_ctrlFirstTimeLabels[9] = ui->ctrlLabelStarTime_10;
  30 +
  31 + m_ctrlLastTimeLabels[0] = ui->ctrlLabelLastTime_1;
  32 + m_ctrlLastTimeLabels[1] = ui->ctrlLabelLastTime_2;
  33 + m_ctrlLastTimeLabels[2] = ui->ctrlLabelLastTime_3;
  34 + m_ctrlLastTimeLabels[3] = ui->ctrlLabelLastTime_4;
  35 + m_ctrlLastTimeLabels[4] = ui->ctrlLabelLastTime_5;
  36 + m_ctrlLastTimeLabels[5] = ui->ctrlLabelLastTime_6;
  37 + m_ctrlLastTimeLabels[6] = ui->ctrlLabelLastTime_7;
  38 + m_ctrlLastTimeLabels[7] = ui->ctrlLabelLastTime_8;
  39 + m_ctrlLastTimeLabels[8] = ui->ctrlLabelLastTime_9;
  40 + m_ctrlLastTimeLabels[9] = ui->ctrlLabelLastTime_10;
  41 +
  42 + m_ctrlCountLabels[0] = ui->ctrlLabelCount_1;
  43 + m_ctrlCountLabels[1] = ui->ctrlLabelCount_2;
  44 + m_ctrlCountLabels[2] = ui->ctrlLabelCount_3;
  45 + m_ctrlCountLabels[3] = ui->ctrlLabelCount_4;
  46 + m_ctrlCountLabels[4] = ui->ctrlLabelCount_5;
  47 + m_ctrlCountLabels[5] = ui->ctrlLabelCount_6;
  48 + m_ctrlCountLabels[6] = ui->ctrlLabelCount_7;
  49 + m_ctrlCountLabels[7] = ui->ctrlLabelCount_8;
  50 + m_ctrlCountLabels[8] = ui->ctrlLabelCount_9;
  51 + m_ctrlCountLabels[9] = ui->ctrlLabelCount_10;
  52 +
  53 + m_ctrlErrBtns[0] = ui->ctrlBtnErr01;
  54 + m_ctrlErrBtns[1] = ui->ctrlBtnErr02;
  55 + m_ctrlErrBtns[2] = ui->ctrlBtnErr03;
  56 + m_ctrlErrBtns[3] = ui->ctrlBtnErr04;
  57 + m_ctrlErrBtns[4] = ui->ctrlBtnErr05;
  58 + m_ctrlErrBtns[5] = ui->ctrlBtnErr06;
  59 + m_ctrlErrBtns[6] = ui->ctrlBtnErr07;
  60 + m_ctrlErrBtns[7] = ui->ctrlBtnErr08;
  61 + m_ctrlErrBtns[8] = ui->ctrlBtnErr09;
  62 + m_ctrlErrBtns[9] = ui->ctrlBtnErr10;
  63 +
  64 + m_bDataInitCplt = false;
  65 + m_nWindowType = ERROR_HISTORY_UPPERBUNNER;
  66 +}
  67 +
  68 +historyListWindow::~historyListWindow()
  69 +{
  70 + delete ui;
  71 +}
  72 +
  73 +void historyListWindow::on_ctrlBtnBack_clicked()
  74 +{
  75 + deleteLater();
  76 +}
  77 +
  78 +void historyListWindow::reloadDataset(void){
  79 + int i = 0;
  80 + QString strPrefix = tr("에러");
  81 + QString strTemp = "";
  82 + char strTime[64];
  83 + error_item *item;
  84 + struct tm *timeptr;
  85 +
  86 +
  87 + for(i=0;i<MAX_DISP_ITEM;i++){
  88 + if( m_nCurDpStartPos+i<m_arrErrorMaxIdx[m_nWindowType]){
  89 + if(err_items[m_nCurDpStartPos+i]->first_fired==0){
  90 + strTemp = strPrefix + strTemp.sprintf("%d",m_nCurDpStartPos+i+1);
  91 + m_ctrlErrBtns[i]->setText(strTemp);
  92 + m_ctrlCountLabels[i] ->setText("0");
  93 + m_ctrlFirstTimeLabels[i]->setText("-");
  94 + m_ctrlLastTimeLabels[i]->setText("-");
  95 + }
  96 + else{
  97 + strTemp = strPrefix + strTemp.sprintf("%d",m_nCurDpStartPos+i+1);
  98 + item = err_items[m_nCurDpStartPos+i];
  99 + m_ctrlErrBtns[i]->setText(strTemp);
  100 + m_ctrlCountLabels[i] ->setText(strTemp.sprintf("%d",item->fired_cnt));
  101 + timeptr = gmtime(&(item->first_fired));
  102 + strftime(strTime,64,"%y-%m-%d %H:%M:%S",timeptr);
  103 + m_ctrlFirstTimeLabels[i]->setText(strTime);
  104 + timeptr = gmtime(&(item->last_fried));
  105 + strftime(strTime,64,"%y-%m-%d %H:%M:%S",timeptr);
  106 + m_ctrlLastTimeLabels[i]->setText(strTime);
  107 + }
  108 + }
  109 + else{
  110 + strTemp = strPrefix + strTemp.sprintf("%d",m_nCurDpStartPos+ i +1);
  111 + m_ctrlErrBtns[i]->setText(strTemp);
  112 + m_ctrlCountLabels[i] ->setText("-");
  113 + m_ctrlFirstTimeLabels[i]->setText("-");
  114 + m_ctrlLastTimeLabels[i]->setText("-");
  115 + }
  116 + }
  117 +}
  118 +
  119 +void historyListWindow::setUpperBunnerDataSet(void){
  120 + OvenStatics *ovenst = OvenStatics::getInstance();
  121 + m_nCurDpStartPos = 0;
  122 + m_nCurSelPos = 0;
  123 + int i = 0;
  124 + if(ovenst != NULL){
  125 + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>");
  126 + strName.append(tr(m_strWindowName[ERROR_HISTORY_UPPERBUNNER ]));
  127 + m_ctrlErrorNameLabel->setText(strName);
  128 + for(i=0;i<m_arrErrorMaxIdx[ERROR_HISTORY_UPPERBUNNER];i++){
  129 + err_items[i] = &(ovenst->srvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_UPPERBUNNER][i]]);
  130 + }
  131 + reloadDataset();
  132 + }
  133 +}
  134 +
  135 +void historyListWindow::setSteamBunnerDataSet(void){
  136 + OvenStatics *ovenst = OvenStatics::getInstance();
  137 + m_nCurDpStartPos = 0;
  138 + m_nCurSelPos = 0;
  139 + int i = 0;
  140 + if(ovenst != NULL){
  141 + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>");
  142 + strName.append(tr(m_strWindowName[ERROR_HISTORY_STEAMBUNNER ]));
  143 + m_ctrlErrorNameLabel->setText(strName);
  144 + for(i=0;i<m_arrErrorMaxIdx[ERROR_HISTORY_STEAMBUNNER];i++){
  145 + err_items[i] = &(ovenst->srvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_STEAMBUNNER][i]]);
  146 + }
  147 + reloadDataset();
  148 + }
  149 +}
  150 +
  151 +void historyListWindow::setLowerBunnerDataSet(void){
  152 + OvenStatics *ovenst = OvenStatics::getInstance();
  153 + m_nCurDpStartPos = 0;
  154 + m_nCurSelPos = 0;
  155 + int i = 0;
  156 + if(ovenst != NULL){
  157 + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>");
  158 + strName.append(tr(m_strWindowName[ERROR_HISTORY_LOWERBUNNER ]));
  159 + m_ctrlErrorNameLabel->setText(strName);
  160 + for(i=0;i<m_arrErrorMaxIdx[ERROR_HISTORY_LOWERBUNNER];i++){
  161 + err_items[i] = &(ovenst->srvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_LOWERBUNNER][i]]);
  162 + }
  163 + reloadDataset();
  164 + }
  165 +}
  166 +
  167 +void historyListWindow::setTotalServiceDataSet(void){
  168 + int i = 0;
  169 + error_item *item;
  170 + time_t firsttimebuf=0,lasttimebuf=0;
  171 + uint16_t firecntbuf=0;
  172 + OvenStatics *ovenst = OvenStatics::getInstance();
  173 + QString strName = tr("서비스단계(엔지니어모드)>서비스기록>");
  174 + strName.append(tr(m_strWindowName[ERROR_HISTORY_TOTAL ]));
  175 + m_ctrlErrorNameLabel->setText(strName);
  176 + //01 상부 점화 장치 데이터 초기화
  177 + for(i=0;i<m_arrErrorMaxIdx[ERROR_HISTORY_UPPERBUNNER];i++){
  178 + item = &(ovenst->srvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_UPPERBUNNER][i]]);
  179 + if(i==0) {firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;}
  180 + else{
  181 + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired;
  182 + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried;
  183 + firecntbuf += item->fired_cnt;
  184 + }
  185 +
  186 + }
  187 + total_items[0].fired_cnt = firecntbuf;
  188 + total_items[0].first_fired = firsttimebuf;
  189 + total_items[0].last_fried = lasttimebuf;
  190 +
  191 + //02 스팀 점화 장치 데이터 초기화
  192 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  193 + for(i=0;i<m_arrErrorMaxIdx[ERROR_HISTORY_STEAMBUNNER];i++){
  194 + item = &(ovenst->srvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_STEAMBUNNER][i]]);
  195 + if(i==0) {firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;}
  196 + else{
  197 + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired;
  198 + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried;
  199 + firecntbuf += item->fired_cnt;
  200 + }
  201 + }
  202 + total_items[1].fired_cnt = firecntbuf;
  203 + total_items[1].first_fired = firsttimebuf;
  204 + total_items[1].last_fried = lasttimebuf;
  205 + //03 하부 점화 장치 데이터 초기화
  206 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  207 + for(i=0;i<m_arrErrorMaxIdx[ERROR_HISTORY_LOWERBUNNER];i++){
  208 + item = &(ovenst->srvdatas->err_log.values[m_arrErrorIdxs[ERROR_HISTORY_LOWERBUNNER][i]]);
  209 + if(i==0) {firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;}
  210 + else{
  211 + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired;
  212 + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried;
  213 + firecntbuf += item->fired_cnt;
  214 + }
  215 + }
  216 + total_items[2].fired_cnt = firecntbuf;
  217 + total_items[2].first_fired = firsttimebuf;
  218 + total_items[2].last_fried = lasttimebuf;
  219 +
  220 + //04 WATER
  221 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  222 + item = &(ovenst->srvdatas->err_log.items.inner_temp_fail);
  223 + firsttimebuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  224 + item = &(ovenst->srvdatas->err_log.items.qunching_temp_fail);
  225 + if( firsttimebuf > item->first_fired && item->first_fired != 0 ) firsttimebuf = item->first_fired;
  226 + if( lasttimebuf < item->last_fried ) lasttimebuf = item->last_fried;
  227 + firecntbuf += item->fired_cnt;
  228 + total_items[3].fired_cnt = firecntbuf;
  229 + total_items[3].first_fired = firsttimebuf;
  230 + total_items[3].last_fried = lasttimebuf;
  231 +
  232 + //05 구성품
  233 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  234 + total_items[4].fired_cnt = 0;
  235 + total_items[4].first_fired = 0;
  236 + total_items[4].last_fried = 0;
  237 +
  238 + //06 중복 에러
  239 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  240 + item = &(ovenst->srvdatas->err_log.items.repeat_error);
  241 + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  242 + total_items[5].fired_cnt = firecntbuf;
  243 + total_items[5].first_fired = firsttimebuf;
  244 + total_items[5].last_fried = lasttimebuf;
  245 +
  246 + //07 B1 센서 에러
  247 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  248 + item = &(ovenst->srvdatas->err_log.items.inner_temp_high_alarm);
  249 + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  250 + total_items[6].fired_cnt = firecntbuf;
  251 + total_items[6].first_fired = firsttimebuf;
  252 + total_items[6].last_fried = lasttimebuf;
  253 +
  254 + //08 B2 센서 에러
  255 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  256 + item = &(ovenst->srvdatas->err_log.items.qunching_temp_high_alarm);
  257 + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  258 + total_items[7].fired_cnt = firecntbuf;
  259 + total_items[7].first_fired = firsttimebuf;
  260 + total_items[7].last_fried = lasttimebuf;
  261 +
  262 + //09 B3 센서 에러
  263 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  264 + item = &(ovenst->srvdatas->err_log.items.meatprove_temp1_high_alarm);
  265 + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  266 + total_items[8].fired_cnt = firecntbuf;
  267 + total_items[8].first_fired = firsttimebuf;
  268 + total_items[8].last_fried = lasttimebuf;
  269 +
  270 + //10 B4 센서 에러
  271 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  272 + item = &(ovenst->srvdatas->err_log.items.wall_temp1_high_alarm);
  273 + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  274 + total_items[9].fired_cnt = firecntbuf;
  275 + total_items[9].first_fired = firsttimebuf;
  276 + total_items[9].last_fried = lasttimebuf;
  277 +
  278 + //11 B5 센서 에러
  279 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  280 + item = &(ovenst->srvdatas->err_log.items.steam_gen_temp_high_alram);
  281 + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  282 + total_items[10].fired_cnt = firecntbuf;
  283 + total_items[10].first_fired = firsttimebuf;
  284 + total_items[10].last_fried = lasttimebuf;
  285 +
  286 + //12 수위센
  287 + firecntbuf = 0;firsttimebuf = 0; lasttimebuf=0;
  288 + item = &(ovenst->srvdatas->err_log.items.water_level_sensor_fail);
  289 + firecntbuf = item->first_fired;lasttimebuf = item->last_fried;firecntbuf=item->fired_cnt;
  290 + total_items[11].fired_cnt = firecntbuf;
  291 + total_items[11].first_fired = firsttimebuf;
  292 + total_items[11].last_fried = lasttimebuf;
  293 +
  294 +
  295 + for(i=0;i<20;i++){
  296 + err_items[i] = &total_items[i];
  297 + }
  298 + reloadDataset();
  299 +}
  300 +
  301 +void historyListWindow::setWindosDataSet(ERROR_HISTORY_TYPE type){
  302 + switch((uint16_t)type){
  303 + case ERROR_HISTORY_UPPERBUNNER:
  304 + m_nWindowType = ERROR_HISTORY_UPPERBUNNER;
  305 + setUpperBunnerDataSet();
  306 + break;
  307 + case ERROR_HISTORY_STEAMBUNNER:
  308 + m_nWindowType = ERROR_HISTORY_STEAMBUNNER;
  309 + setSteamBunnerDataSet();
  310 + break;
  311 + case ERROR_HISTORY_LOWERBUNNER:
  312 + m_nWindowType = ERROR_HISTORY_LOWERBUNNER;
  313 + setLowerBunnerDataSet();
  314 + break;
  315 + case ERROR_HISTORY_TOTAL:
  316 + m_nWindowType = ERROR_HISTORY_TOTAL;
  317 + setTotalServiceDataSet();
  318 + break;
  319 + }
  320 +}
  321 +
  322 +void historyListWindow::on_ctrlBackBtn_clicked()
  323 +{
  324 + OvenStatics* ovenst = OvenStatics::getInstance();
  325 + time_t ltime;
  326 + ltime = time(NULL);
  327 + ovenst->srvdatas->err_log.items.upper_fire_fail.fired_cnt++;
  328 + if(ovenst->srvdatas->err_log.items.upper_fire_fail.first_fired ==0) ovenst->srvdatas->err_log.items.upper_fire_fail.first_fired = ltime;
  329 + ovenst->srvdatas->err_log.items.upper_fire_fail.last_fried = ltime;
  330 + deleteLater();
  331 +}
  332 +
  333 +void historyListWindow::on_ctrlUpBtn_clicked()
  334 +{
  335 + if(m_nCurDpStartPos == 8 && m_arrErrorMaxIdx[m_nWindowType] > 8 ){
  336 + m_nCurDpStartPos = 0;
  337 + reloadDataset();
  338 + }
  339 +}
  340 +
  341 +void historyListWindow::on_ctrflDownBtn_clicked()
  342 +{
  343 + if(m_nCurDpStartPos == 0 && m_arrErrorMaxIdx[m_nWindowType] > 8){
  344 + m_nCurDpStartPos = 8;
  345 + reloadDataset();
  346 + }
  347 +}
  348 +
  349 +void historyListWindow::on_ctrlResetBtn_clicked()
  350 +{
  351 + int i = 0;
  352 + OvenStatics *ovenst = OvenStatics::getInstance();
  353 + for(i=0;i<MAX_ERROR_TYPE_CNT;i++){
  354 + ovenst->srvdatas->err_log.values[i].fired_cnt = 0;
  355 + ovenst->srvdatas->err_log.values[i].first_fired = 0;
  356 + ovenst->srvdatas->err_log.values[i].last_fried = 0;
  357 + }
  358 + ovenst->srvdatas->saveServiceDatas();
  359 + setWindosDataSet(m_nWindowType);
  360 +
  361 +}
... ...
app/gui/oven_control/historylistwindow.h
... ... @@ -0,0 +1,82 @@
  1 +#ifndef HISTORYLISTWINDOW_H
  2 +#define HISTORYLISTWINDOW_H
  3 +
  4 +#include <QMainWindow>
  5 +#include <QLabel>
  6 +#include "servicedatas.h"
  7 +#include <QPushButton>
  8 +
  9 +namespace Ui {
  10 +class historyListWindow;
  11 +}
  12 +
  13 +#define MAX_DISP_ITEM 10
  14 +
  15 +enum ERROR_HISTORY_TYPE{
  16 + ERROR_HISTORY_UPPERBUNNER=0,
  17 + ERROR_HISTORY_STEAMBUNNER,
  18 + ERROR_HISTORY_LOWERBUNNER,
  19 + ERROR_HISTORY_TOTAL
  20 +};
  21 +
  22 +
  23 +
  24 +class historyListWindow : public QMainWindow
  25 +{
  26 + Q_OBJECT
  27 +
  28 +public:
  29 + explicit historyListWindow(QWidget *parent = 0);
  30 + ~historyListWindow();
  31 + void setWindosDataSet(ERROR_HISTORY_TYPE type);
  32 +
  33 +private slots:
  34 + void on_ctrlBtnBack_clicked();
  35 +
  36 + void on_ctrlBackBtn_clicked();
  37 +
  38 + void on_ctrlUpBtn_clicked();
  39 +
  40 + void on_ctrflDownBtn_clicked();
  41 +
  42 + void on_ctrlResetBtn_clicked();
  43 +
  44 +private:
  45 + Ui::historyListWindow *ui;
  46 +
  47 + const uint8_t m_arrErrorMaxIdx[4] = {3,4,3,12};
  48 +
  49 + const char m_strWindowName[4][64] = {"상부점화장치\0",
  50 + "스팀점화장치\0","하부점화장치\0","서비스에러기록종합\0"};
  51 + const uint16_t m_arrErrorIdxs[3][20] = { //서비스 에러 기록 종합은 합산
  52 + {ERROR_IDX_upper_fire_fail,ERROR_IDX_upper_pan_fail,ERROR_IDX_upper_motor_fail},
  53 + {ERROR_IDX_steam_fire_fail,ERROR_IDX_steam_pan_fail,ERROR_IDX_water_level_sensor_fail,ERROR_IDX_steam_gen_temp_high_alram},
  54 + {ERROR_IDX_lower_fire_fail,ERROR_IDX_lower_pan_fail,ERROR_IDX_lower_motor_fail}
  55 + };
  56 +
  57 + QLabel* m_ctrlFirstTimeLabels[10];
  58 + QLabel* m_ctrlCountLabels[10];
  59 + QLabel* m_ctrlLastTimeLabels[10];
  60 + QLabel* m_ctrlErrorNameLabel;
  61 + QPushButton* m_ctrlErrBtns[10];
  62 + error_item *err_items[20];
  63 + error_item total_items[20]; //for 서비스 에러 기록 종합
  64 +
  65 +
  66 + ERROR_HISTORY_TYPE m_nWindowType;
  67 + uint16_t m_nCurDpStartPos = 0;
  68 + uint16_t m_nCurSelPos = 0;
  69 +
  70 +
  71 +
  72 + bool m_bDataInitCplt;
  73 +
  74 +private:
  75 + void setUpperBunnerDataSet(void);
  76 + void setSteamBunnerDataSet(void);
  77 + void setLowerBunnerDataSet(void);
  78 + void setTotalServiceDataSet(void);
  79 + void reloadDataset(void);
  80 +};
  81 +
  82 +#endif // HISTORYLISTWINDOW_H
... ...
app/gui/oven_control/historylistwindow.ui
... ... @@ -0,0 +1,1400 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>historyListWindow</class>
  4 + <widget class="QMainWindow" name="historyListWindow">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="sizePolicy">
  14 + <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
  15 + <horstretch>0</horstretch>
  16 + <verstretch>0</verstretch>
  17 + </sizepolicy>
  18 + </property>
  19 + <property name="windowTitle">
  20 + <string>MainWindow</string>
  21 + </property>
  22 + <property name="styleSheet">
  23 + <string notr="true">QLabel[style = &quot;info&quot;]{font-size : 8pt}</string>
  24 + </property>
  25 + <widget class="QWidget" name="centralwidget2">
  26 + <property name="styleSheet">
  27 + <string notr="true">#centralwidget2 { background-image: url(:/images/config/service/service_grid_background.png); }
  28 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }
  29 +
  30 +
  31 +
  32 +
  33 +
  34 +QScrollBar:vertical {
  35 + border: 2px solid grey;
  36 + background: #32CC99;
  37 + width: 30px;
  38 + margin: 22px 0 22px 0;
  39 + }
  40 +#ctrlHistoryTable QScrollBar::handle:vertical {
  41 + background: white;
  42 + min-height: 20px;
  43 + }
  44 +
  45 +#tableWidget QScrollBar::handle:vertical {
  46 + background: yellow;
  47 + height: 50px;
  48 + width :30px;
  49 + }
  50 +
  51 +QScrollBar::add-line:vertical {
  52 + border: 2px solid grey;
  53 + background: #32CC99;
  54 + height: 20px;
  55 + subcontrol-position: bottom;
  56 + subcontrol-origin: margin;
  57 + }
  58 +
  59 +QScrollBar::sub-line:vertical {
  60 + border: 2px solid grey;
  61 + background: #32CC99;
  62 + height: 20px;
  63 + subcontrol-position: top;
  64 + subcontrol-origin: margin;
  65 + }
  66 +QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
  67 + border: 2px solid grey;
  68 + width: 3px;
  69 + height: 3px;
  70 + background: white;
  71 + }
  72 +
  73 +QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
  74 + background: none;
  75 + }</string>
  76 + </property>
  77 + <widget class="QWidget" name="bottomBar" native="true">
  78 + <property name="geometry">
  79 + <rect>
  80 + <x>0</x>
  81 + <y>1450</y>
  82 + <width>900</width>
  83 + <height>150</height>
  84 + </rect>
  85 + </property>
  86 + <widget class="QPushButton" name="ctrlBackBtn">
  87 + <property name="geometry">
  88 + <rect>
  89 + <x>228</x>
  90 + <y>27</y>
  91 + <width>97</width>
  92 + <height>97</height>
  93 + </rect>
  94 + </property>
  95 + <property name="sizePolicy">
  96 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  97 + <horstretch>0</horstretch>
  98 + <verstretch>0</verstretch>
  99 + </sizepolicy>
  100 + </property>
  101 + <property name="styleSheet">
  102 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  103 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  104 + </property>
  105 + <property name="text">
  106 + <string/>
  107 + </property>
  108 + </widget>
  109 + <widget class="QPushButton" name="ctrlUpBtn">
  110 + <property name="geometry">
  111 + <rect>
  112 + <x>343</x>
  113 + <y>27</y>
  114 + <width>97</width>
  115 + <height>97</height>
  116 + </rect>
  117 + </property>
  118 + <property name="sizePolicy">
  119 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  120 + <horstretch>0</horstretch>
  121 + <verstretch>0</verstretch>
  122 + </sizepolicy>
  123 + </property>
  124 + <property name="styleSheet">
  125 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/006_sys_icon_12.png); }
  126 +QPushButton:pressed { border-image: url(:/images/bottom_bar/006_sys_icon_12_ov.png); }</string>
  127 + </property>
  128 + <property name="text">
  129 + <string/>
  130 + </property>
  131 + </widget>
  132 + <widget class="QPushButton" name="ctrflDownBtn">
  133 + <property name="geometry">
  134 + <rect>
  135 + <x>458</x>
  136 + <y>27</y>
  137 + <width>97</width>
  138 + <height>97</height>
  139 + </rect>
  140 + </property>
  141 + <property name="sizePolicy">
  142 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  143 + <horstretch>0</horstretch>
  144 + <verstretch>0</verstretch>
  145 + </sizepolicy>
  146 + </property>
  147 + <property name="styleSheet">
  148 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/006_sys_icon_13.png); }
  149 +QPushButton:pressed { border-image: url(:/images/bottom_bar/006_sys_icon_13_ov.png); }</string>
  150 + </property>
  151 + <property name="text">
  152 + <string/>
  153 + </property>
  154 + </widget>
  155 + <widget class="QPushButton" name="ctrlResetBtn">
  156 + <property name="geometry">
  157 + <rect>
  158 + <x>573</x>
  159 + <y>27</y>
  160 + <width>97</width>
  161 + <height>97</height>
  162 + </rect>
  163 + </property>
  164 + <property name="sizePolicy">
  165 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  166 + <horstretch>0</horstretch>
  167 + <verstretch>0</verstretch>
  168 + </sizepolicy>
  169 + </property>
  170 + <property name="styleSheet">
  171 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/006_sys_icon_14.png); }
  172 +QPushButton:pressed { border-image: url(:/images/bottom_bar/006_sys_icon_14_ov.png); }</string>
  173 + </property>
  174 + <property name="text">
  175 + <string/>
  176 + </property>
  177 + </widget>
  178 + </widget>
  179 + <widget class="QStackedWidget" name="upperStack">
  180 + <property name="geometry">
  181 + <rect>
  182 + <x>0</x>
  183 + <y>0</y>
  184 + <width>900</width>
  185 + <height>426</height>
  186 + </rect>
  187 + </property>
  188 + <widget class="QWidget" name="clockContainer">
  189 + <property name="styleSheet">
  190 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  191 + </property>
  192 + <widget class="Clock" name="clock" native="true">
  193 + <property name="geometry">
  194 + <rect>
  195 + <x>272</x>
  196 + <y>36</y>
  197 + <width>356</width>
  198 + <height>355</height>
  199 + </rect>
  200 + </property>
  201 + </widget>
  202 + </widget>
  203 + <widget class="QWidget" name="page_2"/>
  204 + </widget>
  205 + <widget class="QLabel" name="ctrlLabelErrPartName">
  206 + <property name="geometry">
  207 + <rect>
  208 + <x>55</x>
  209 + <y>426</y>
  210 + <width>1600</width>
  211 + <height>84</height>
  212 + </rect>
  213 + </property>
  214 + <property name="font">
  215 + <font>
  216 + <pointsize>8</pointsize>
  217 + </font>
  218 + </property>
  219 + <property name="styleSheet">
  220 + <string notr="true">color: rgb(255, 255, 255);</string>
  221 + </property>
  222 + <property name="text">
  223 + <string>서비스단계(엔지니어모드) &gt; 서비스기록 &gt;</string>
  224 + </property>
  225 + <property name="style" stdset="0">
  226 + <string notr="true">info</string>
  227 + </property>
  228 + </widget>
  229 + <widget class="QLabel" name="label">
  230 + <property name="geometry">
  231 + <rect>
  232 + <x>40</x>
  233 + <y>540</y>
  234 + <width>151</width>
  235 + <height>61</height>
  236 + </rect>
  237 + </property>
  238 + <property name="font">
  239 + <font>
  240 + <pointsize>8</pointsize>
  241 + </font>
  242 + </property>
  243 + <property name="styleSheet">
  244 + <string notr="true">color: rgb(255, 255, 255);</string>
  245 + </property>
  246 + <property name="text">
  247 + <string>목록</string>
  248 + </property>
  249 + <property name="alignment">
  250 + <set>Qt::AlignCenter</set>
  251 + </property>
  252 + </widget>
  253 + <widget class="QLabel" name="label_2">
  254 + <property name="geometry">
  255 + <rect>
  256 + <x>200</x>
  257 + <y>530</y>
  258 + <width>231</width>
  259 + <height>71</height>
  260 + </rect>
  261 + </property>
  262 + <property name="font">
  263 + <font>
  264 + <pointsize>8</pointsize>
  265 + </font>
  266 + </property>
  267 + <property name="styleSheet">
  268 + <string notr="true">color: rgb(255, 255, 255);</string>
  269 + </property>
  270 + <property name="text">
  271 + <string>최초발생시간</string>
  272 + </property>
  273 + <property name="alignment">
  274 + <set>Qt::AlignCenter</set>
  275 + </property>
  276 + </widget>
  277 + <widget class="QLabel" name="label_3">
  278 + <property name="geometry">
  279 + <rect>
  280 + <x>430</x>
  281 + <y>530</y>
  282 + <width>121</width>
  283 + <height>71</height>
  284 + </rect>
  285 + </property>
  286 + <property name="font">
  287 + <font>
  288 + <pointsize>8</pointsize>
  289 + </font>
  290 + </property>
  291 + <property name="styleSheet">
  292 + <string notr="true">color: rgb(255, 255, 255);</string>
  293 + </property>
  294 + <property name="text">
  295 + <string>발생횟수</string>
  296 + </property>
  297 + <property name="alignment">
  298 + <set>Qt::AlignCenter</set>
  299 + </property>
  300 + </widget>
  301 + <widget class="QLabel" name="label_4">
  302 + <property name="geometry">
  303 + <rect>
  304 + <x>550</x>
  305 + <y>530</y>
  306 + <width>291</width>
  307 + <height>71</height>
  308 + </rect>
  309 + </property>
  310 + <property name="font">
  311 + <font>
  312 + <pointsize>8</pointsize>
  313 + </font>
  314 + </property>
  315 + <property name="styleSheet">
  316 + <string notr="true">color: rgb(255, 255, 255);</string>
  317 + </property>
  318 + <property name="text">
  319 + <string>최근발생시간</string>
  320 + </property>
  321 + <property name="alignment">
  322 + <set>Qt::AlignCenter</set>
  323 + </property>
  324 + </widget>
  325 + <widget class="QPushButton" name="ctrlBtnErr01">
  326 + <property name="geometry">
  327 + <rect>
  328 + <x>38</x>
  329 + <y>620</y>
  330 + <width>148</width>
  331 + <height>64</height>
  332 + </rect>
  333 + </property>
  334 + <property name="sizePolicy">
  335 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  336 + <horstretch>0</horstretch>
  337 + <verstretch>0</verstretch>
  338 + </sizepolicy>
  339 + </property>
  340 + <property name="font">
  341 + <font>
  342 + <pointsize>10</pointsize>
  343 + <weight>50</weight>
  344 + <bold>false</bold>
  345 + </font>
  346 + </property>
  347 + <property name="styleSheet">
  348 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  349 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  350 +QPushButton { text-align:center;}</string>
  351 + </property>
  352 + <property name="text">
  353 + <string>에러01</string>
  354 + </property>
  355 + </widget>
  356 + <widget class="QPushButton" name="ctrlBtnErr02">
  357 + <property name="geometry">
  358 + <rect>
  359 + <x>38</x>
  360 + <y>717</y>
  361 + <width>148</width>
  362 + <height>64</height>
  363 + </rect>
  364 + </property>
  365 + <property name="sizePolicy">
  366 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  367 + <horstretch>0</horstretch>
  368 + <verstretch>0</verstretch>
  369 + </sizepolicy>
  370 + </property>
  371 + <property name="font">
  372 + <font>
  373 + <pointsize>10</pointsize>
  374 + <weight>50</weight>
  375 + <bold>false</bold>
  376 + </font>
  377 + </property>
  378 + <property name="styleSheet">
  379 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  380 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  381 +QPushButton { text-align:center;}</string>
  382 + </property>
  383 + <property name="text">
  384 + <string>에러02</string>
  385 + </property>
  386 + </widget>
  387 + <widget class="QPushButton" name="ctrlBtnErr03">
  388 + <property name="geometry">
  389 + <rect>
  390 + <x>38</x>
  391 + <y>814</y>
  392 + <width>148</width>
  393 + <height>64</height>
  394 + </rect>
  395 + </property>
  396 + <property name="sizePolicy">
  397 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  398 + <horstretch>0</horstretch>
  399 + <verstretch>0</verstretch>
  400 + </sizepolicy>
  401 + </property>
  402 + <property name="font">
  403 + <font>
  404 + <pointsize>10</pointsize>
  405 + <weight>50</weight>
  406 + <bold>false</bold>
  407 + </font>
  408 + </property>
  409 + <property name="styleSheet">
  410 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  411 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  412 +QPushButton { text-align:center;}</string>
  413 + </property>
  414 + <property name="text">
  415 + <string>에러03</string>
  416 + </property>
  417 + </widget>
  418 + <widget class="QPushButton" name="ctrlBtnErr04">
  419 + <property name="geometry">
  420 + <rect>
  421 + <x>38</x>
  422 + <y>911</y>
  423 + <width>148</width>
  424 + <height>64</height>
  425 + </rect>
  426 + </property>
  427 + <property name="sizePolicy">
  428 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  429 + <horstretch>0</horstretch>
  430 + <verstretch>0</verstretch>
  431 + </sizepolicy>
  432 + </property>
  433 + <property name="font">
  434 + <font>
  435 + <pointsize>10</pointsize>
  436 + <weight>50</weight>
  437 + <bold>false</bold>
  438 + </font>
  439 + </property>
  440 + <property name="styleSheet">
  441 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  442 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  443 +QPushButton { text-align:center;}</string>
  444 + </property>
  445 + <property name="text">
  446 + <string>에러04</string>
  447 + </property>
  448 + </widget>
  449 + <widget class="QPushButton" name="ctrlBtnErr05">
  450 + <property name="geometry">
  451 + <rect>
  452 + <x>37</x>
  453 + <y>1008</y>
  454 + <width>148</width>
  455 + <height>64</height>
  456 + </rect>
  457 + </property>
  458 + <property name="sizePolicy">
  459 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  460 + <horstretch>0</horstretch>
  461 + <verstretch>0</verstretch>
  462 + </sizepolicy>
  463 + </property>
  464 + <property name="font">
  465 + <font>
  466 + <pointsize>10</pointsize>
  467 + <weight>50</weight>
  468 + <bold>false</bold>
  469 + </font>
  470 + </property>
  471 + <property name="styleSheet">
  472 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  473 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  474 +QPushButton { text-align:center;}</string>
  475 + </property>
  476 + <property name="text">
  477 + <string>에러05</string>
  478 + </property>
  479 + </widget>
  480 + <widget class="QPushButton" name="ctrlBtnErr06">
  481 + <property name="geometry">
  482 + <rect>
  483 + <x>37</x>
  484 + <y>1105</y>
  485 + <width>148</width>
  486 + <height>64</height>
  487 + </rect>
  488 + </property>
  489 + <property name="sizePolicy">
  490 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  491 + <horstretch>0</horstretch>
  492 + <verstretch>0</verstretch>
  493 + </sizepolicy>
  494 + </property>
  495 + <property name="font">
  496 + <font>
  497 + <pointsize>10</pointsize>
  498 + <weight>50</weight>
  499 + <bold>false</bold>
  500 + </font>
  501 + </property>
  502 + <property name="styleSheet">
  503 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  504 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  505 +QPushButton { text-align:center;}</string>
  506 + </property>
  507 + <property name="text">
  508 + <string>에러06</string>
  509 + </property>
  510 + </widget>
  511 + <widget class="QPushButton" name="ctrlBtnErr07">
  512 + <property name="geometry">
  513 + <rect>
  514 + <x>37</x>
  515 + <y>1202</y>
  516 + <width>148</width>
  517 + <height>64</height>
  518 + </rect>
  519 + </property>
  520 + <property name="sizePolicy">
  521 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  522 + <horstretch>0</horstretch>
  523 + <verstretch>0</verstretch>
  524 + </sizepolicy>
  525 + </property>
  526 + <property name="font">
  527 + <font>
  528 + <pointsize>10</pointsize>
  529 + <weight>50</weight>
  530 + <bold>false</bold>
  531 + </font>
  532 + </property>
  533 + <property name="styleSheet">
  534 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  535 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  536 +QPushButton { text-align:center;}</string>
  537 + </property>
  538 + <property name="text">
  539 + <string>에러07</string>
  540 + </property>
  541 + </widget>
  542 + <widget class="QPushButton" name="ctrlBtnErr08">
  543 + <property name="geometry">
  544 + <rect>
  545 + <x>37</x>
  546 + <y>1299</y>
  547 + <width>148</width>
  548 + <height>64</height>
  549 + </rect>
  550 + </property>
  551 + <property name="sizePolicy">
  552 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  553 + <horstretch>0</horstretch>
  554 + <verstretch>0</verstretch>
  555 + </sizepolicy>
  556 + </property>
  557 + <property name="font">
  558 + <font>
  559 + <pointsize>10</pointsize>
  560 + <weight>50</weight>
  561 + <bold>false</bold>
  562 + </font>
  563 + </property>
  564 + <property name="styleSheet">
  565 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  566 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  567 +QPushButton { text-align:center;}</string>
  568 + </property>
  569 + <property name="text">
  570 + <string>에러08</string>
  571 + </property>
  572 + </widget>
  573 + <widget class="QPushButton" name="ctrlBtnErr09">
  574 + <property name="geometry">
  575 + <rect>
  576 + <x>37</x>
  577 + <y>1396</y>
  578 + <width>148</width>
  579 + <height>64</height>
  580 + </rect>
  581 + </property>
  582 + <property name="sizePolicy">
  583 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  584 + <horstretch>0</horstretch>
  585 + <verstretch>0</verstretch>
  586 + </sizepolicy>
  587 + </property>
  588 + <property name="font">
  589 + <font>
  590 + <pointsize>10</pointsize>
  591 + <weight>50</weight>
  592 + <bold>false</bold>
  593 + </font>
  594 + </property>
  595 + <property name="styleSheet">
  596 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  597 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  598 +QPushButton { text-align:center;}</string>
  599 + </property>
  600 + <property name="text">
  601 + <string>에러09</string>
  602 + </property>
  603 + </widget>
  604 + <widget class="QPushButton" name="ctrlBtnErr10">
  605 + <property name="geometry">
  606 + <rect>
  607 + <x>37</x>
  608 + <y>1493</y>
  609 + <width>148</width>
  610 + <height>64</height>
  611 + </rect>
  612 + </property>
  613 + <property name="sizePolicy">
  614 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  615 + <horstretch>0</horstretch>
  616 + <verstretch>0</verstretch>
  617 + </sizepolicy>
  618 + </property>
  619 + <property name="font">
  620 + <font>
  621 + <pointsize>10</pointsize>
  622 + <weight>50</weight>
  623 + <bold>false</bold>
  624 + </font>
  625 + </property>
  626 + <property name="styleSheet">
  627 + <string notr="true">QPushButton {border-image: url(:/images/button/152.png);}
  628 +QPushButton::pressed {border-image: url(:/images/button/152_ov.png);}
  629 +QPushButton { text-align:center;}</string>
  630 + </property>
  631 + <property name="text">
  632 + <string>에러10</string>
  633 + </property>
  634 + </widget>
  635 + <widget class="QLabel" name="ctrlLabelStarTime_1">
  636 + <property name="geometry">
  637 + <rect>
  638 + <x>200</x>
  639 + <y>599</y>
  640 + <width>231</width>
  641 + <height>101</height>
  642 + </rect>
  643 + </property>
  644 + <property name="font">
  645 + <font>
  646 + <family>나눔고딕</family>
  647 + <pointsize>8</pointsize>
  648 + </font>
  649 + </property>
  650 + <property name="styleSheet">
  651 + <string notr="true">color: rgb(255, 255, 255);</string>
  652 + </property>
  653 + <property name="text">
  654 + <string>-</string>
  655 + </property>
  656 + <property name="alignment">
  657 + <set>Qt::AlignCenter</set>
  658 + </property>
  659 + <property name="style" stdset="0">
  660 + <string notr="true">info</string>
  661 + </property>
  662 + </widget>
  663 + <widget class="QLabel" name="ctrlLabelStarTime_2">
  664 + <property name="geometry">
  665 + <rect>
  666 + <x>200</x>
  667 + <y>697</y>
  668 + <width>231</width>
  669 + <height>101</height>
  670 + </rect>
  671 + </property>
  672 + <property name="font">
  673 + <font>
  674 + <family>나눔고딕</family>
  675 + <pointsize>8</pointsize>
  676 + <weight>75</weight>
  677 + <bold>true</bold>
  678 + </font>
  679 + </property>
  680 + <property name="styleSheet">
  681 + <string notr="true">color: rgb(255, 255, 255);</string>
  682 + </property>
  683 + <property name="text">
  684 + <string>-</string>
  685 + </property>
  686 + <property name="alignment">
  687 + <set>Qt::AlignCenter</set>
  688 + </property>
  689 + <property name="style" stdset="0">
  690 + <string notr="true">info</string>
  691 + </property>
  692 + </widget>
  693 + <widget class="QLabel" name="ctrlLabelStarTime_3">
  694 + <property name="geometry">
  695 + <rect>
  696 + <x>200</x>
  697 + <y>795</y>
  698 + <width>231</width>
  699 + <height>101</height>
  700 + </rect>
  701 + </property>
  702 + <property name="styleSheet">
  703 + <string notr="true">color: rgb(255, 255, 255);</string>
  704 + </property>
  705 + <property name="text">
  706 + <string>-</string>
  707 + </property>
  708 + <property name="alignment">
  709 + <set>Qt::AlignCenter</set>
  710 + </property>
  711 + <property name="style" stdset="0">
  712 + <string notr="true">info</string>
  713 + </property>
  714 + </widget>
  715 + <widget class="QLabel" name="ctrlLabelStarTime_4">
  716 + <property name="geometry">
  717 + <rect>
  718 + <x>200</x>
  719 + <y>891</y>
  720 + <width>231</width>
  721 + <height>101</height>
  722 + </rect>
  723 + </property>
  724 + <property name="styleSheet">
  725 + <string notr="true">color: rgb(255, 255, 255);</string>
  726 + </property>
  727 + <property name="text">
  728 + <string>-</string>
  729 + </property>
  730 + <property name="alignment">
  731 + <set>Qt::AlignCenter</set>
  732 + </property>
  733 + <property name="style" stdset="0">
  734 + <string notr="true">info</string>
  735 + </property>
  736 + </widget>
  737 + <widget class="QLabel" name="ctrlLabelStarTime_5">
  738 + <property name="geometry">
  739 + <rect>
  740 + <x>200</x>
  741 + <y>988</y>
  742 + <width>231</width>
  743 + <height>101</height>
  744 + </rect>
  745 + </property>
  746 + <property name="styleSheet">
  747 + <string notr="true">color: rgb(255, 255, 255);</string>
  748 + </property>
  749 + <property name="text">
  750 + <string>-</string>
  751 + </property>
  752 + <property name="alignment">
  753 + <set>Qt::AlignCenter</set>
  754 + </property>
  755 + <property name="style" stdset="0">
  756 + <string notr="true">info</string>
  757 + </property>
  758 + </widget>
  759 + <widget class="QLabel" name="ctrlLabelStarTime_6">
  760 + <property name="geometry">
  761 + <rect>
  762 + <x>200</x>
  763 + <y>1086</y>
  764 + <width>231</width>
  765 + <height>101</height>
  766 + </rect>
  767 + </property>
  768 + <property name="styleSheet">
  769 + <string notr="true">color: rgb(255, 255, 255);</string>
  770 + </property>
  771 + <property name="text">
  772 + <string>-</string>
  773 + </property>
  774 + <property name="alignment">
  775 + <set>Qt::AlignCenter</set>
  776 + </property>
  777 + <property name="style" stdset="0">
  778 + <string notr="true">info</string>
  779 + </property>
  780 + </widget>
  781 + <widget class="QLabel" name="ctrlLabelStarTime_7">
  782 + <property name="geometry">
  783 + <rect>
  784 + <x>200</x>
  785 + <y>1184</y>
  786 + <width>231</width>
  787 + <height>101</height>
  788 + </rect>
  789 + </property>
  790 + <property name="styleSheet">
  791 + <string notr="true">color: rgb(255, 255, 255);</string>
  792 + </property>
  793 + <property name="text">
  794 + <string>-</string>
  795 + </property>
  796 + <property name="alignment">
  797 + <set>Qt::AlignCenter</set>
  798 + </property>
  799 + <property name="style" stdset="0">
  800 + <string notr="true">info</string>
  801 + </property>
  802 + </widget>
  803 + <widget class="QLabel" name="ctrlLabelStarTime_8">
  804 + <property name="geometry">
  805 + <rect>
  806 + <x>200</x>
  807 + <y>1280</y>
  808 + <width>231</width>
  809 + <height>101</height>
  810 + </rect>
  811 + </property>
  812 + <property name="styleSheet">
  813 + <string notr="true">color: rgb(255, 255, 255);</string>
  814 + </property>
  815 + <property name="text">
  816 + <string>-</string>
  817 + </property>
  818 + <property name="alignment">
  819 + <set>Qt::AlignCenter</set>
  820 + </property>
  821 + <property name="style" stdset="0">
  822 + <string notr="true">info</string>
  823 + </property>
  824 + </widget>
  825 + <widget class="QLabel" name="ctrlLabelStarTime_9">
  826 + <property name="geometry">
  827 + <rect>
  828 + <x>200</x>
  829 + <y>1377</y>
  830 + <width>231</width>
  831 + <height>101</height>
  832 + </rect>
  833 + </property>
  834 + <property name="styleSheet">
  835 + <string notr="true">color: rgb(255, 255, 255);</string>
  836 + </property>
  837 + <property name="text">
  838 + <string>-</string>
  839 + </property>
  840 + <property name="alignment">
  841 + <set>Qt::AlignCenter</set>
  842 + </property>
  843 + <property name="style" stdset="0">
  844 + <string notr="true">info</string>
  845 + </property>
  846 + </widget>
  847 + <widget class="QLabel" name="ctrlLabelStarTime_10">
  848 + <property name="geometry">
  849 + <rect>
  850 + <x>200</x>
  851 + <y>1474</y>
  852 + <width>231</width>
  853 + <height>101</height>
  854 + </rect>
  855 + </property>
  856 + <property name="styleSheet">
  857 + <string notr="true">color: rgb(255, 255, 255);</string>
  858 + </property>
  859 + <property name="text">
  860 + <string>-</string>
  861 + </property>
  862 + <property name="alignment">
  863 + <set>Qt::AlignCenter</set>
  864 + </property>
  865 + <property name="style" stdset="0">
  866 + <string notr="true">info</string>
  867 + </property>
  868 + </widget>
  869 + <widget class="QLabel" name="ctrlLabelCount_2">
  870 + <property name="geometry">
  871 + <rect>
  872 + <x>433</x>
  873 + <y>696</y>
  874 + <width>111</width>
  875 + <height>101</height>
  876 + </rect>
  877 + </property>
  878 + <property name="font">
  879 + <font>
  880 + <family>나눔고딕</family>
  881 + <pointsize>8</pointsize>
  882 + <weight>75</weight>
  883 + <bold>true</bold>
  884 + </font>
  885 + </property>
  886 + <property name="styleSheet">
  887 + <string notr="true">color: rgb(255, 255, 255);</string>
  888 + </property>
  889 + <property name="text">
  890 + <string>-</string>
  891 + </property>
  892 + <property name="alignment">
  893 + <set>Qt::AlignCenter</set>
  894 + </property>
  895 + <property name="style" stdset="0">
  896 + <string notr="true">info</string>
  897 + </property>
  898 + </widget>
  899 + <widget class="QLabel" name="ctrlLabelCount_3">
  900 + <property name="geometry">
  901 + <rect>
  902 + <x>433</x>
  903 + <y>794</y>
  904 + <width>111</width>
  905 + <height>101</height>
  906 + </rect>
  907 + </property>
  908 + <property name="styleSheet">
  909 + <string notr="true">color: rgb(255, 255, 255);</string>
  910 + </property>
  911 + <property name="text">
  912 + <string>-</string>
  913 + </property>
  914 + <property name="alignment">
  915 + <set>Qt::AlignCenter</set>
  916 + </property>
  917 + <property name="style" stdset="0">
  918 + <string notr="true">info</string>
  919 + </property>
  920 + </widget>
  921 + <widget class="QLabel" name="ctrlLabelCount_1">
  922 + <property name="geometry">
  923 + <rect>
  924 + <x>433</x>
  925 + <y>598</y>
  926 + <width>111</width>
  927 + <height>101</height>
  928 + </rect>
  929 + </property>
  930 + <property name="font">
  931 + <font>
  932 + <family>나눔고딕</family>
  933 + <pointsize>8</pointsize>
  934 + <weight>50</weight>
  935 + <bold>false</bold>
  936 + </font>
  937 + </property>
  938 + <property name="styleSheet">
  939 + <string notr="true">color: rgb(255, 255, 255);</string>
  940 + </property>
  941 + <property name="text">
  942 + <string>-</string>
  943 + </property>
  944 + <property name="alignment">
  945 + <set>Qt::AlignCenter</set>
  946 + </property>
  947 + <property name="style" stdset="0">
  948 + <string notr="true">info</string>
  949 + </property>
  950 + </widget>
  951 + <widget class="QLabel" name="ctrlLabelCount_4">
  952 + <property name="geometry">
  953 + <rect>
  954 + <x>433</x>
  955 + <y>890</y>
  956 + <width>111</width>
  957 + <height>101</height>
  958 + </rect>
  959 + </property>
  960 + <property name="styleSheet">
  961 + <string notr="true">color: rgb(255, 255, 255);</string>
  962 + </property>
  963 + <property name="text">
  964 + <string>-</string>
  965 + </property>
  966 + <property name="alignment">
  967 + <set>Qt::AlignCenter</set>
  968 + </property>
  969 + <property name="style" stdset="0">
  970 + <string notr="true">info</string>
  971 + </property>
  972 + </widget>
  973 + <widget class="QLabel" name="ctrlLabelCount_6">
  974 + <property name="geometry">
  975 + <rect>
  976 + <x>433</x>
  977 + <y>1085</y>
  978 + <width>111</width>
  979 + <height>101</height>
  980 + </rect>
  981 + </property>
  982 + <property name="styleSheet">
  983 + <string notr="true">color: rgb(255, 255, 255);</string>
  984 + </property>
  985 + <property name="text">
  986 + <string>-</string>
  987 + </property>
  988 + <property name="alignment">
  989 + <set>Qt::AlignCenter</set>
  990 + </property>
  991 + <property name="style" stdset="0">
  992 + <string notr="true">info</string>
  993 + </property>
  994 + </widget>
  995 + <widget class="QLabel" name="ctrlLabelCount_7">
  996 + <property name="geometry">
  997 + <rect>
  998 + <x>433</x>
  999 + <y>1183</y>
  1000 + <width>111</width>
  1001 + <height>101</height>
  1002 + </rect>
  1003 + </property>
  1004 + <property name="styleSheet">
  1005 + <string notr="true">color: rgb(255, 255, 255);</string>
  1006 + </property>
  1007 + <property name="text">
  1008 + <string>-</string>
  1009 + </property>
  1010 + <property name="alignment">
  1011 + <set>Qt::AlignCenter</set>
  1012 + </property>
  1013 + <property name="style" stdset="0">
  1014 + <string notr="true">info</string>
  1015 + </property>
  1016 + </widget>
  1017 + <widget class="QLabel" name="ctrlLabelCount_9">
  1018 + <property name="geometry">
  1019 + <rect>
  1020 + <x>433</x>
  1021 + <y>1376</y>
  1022 + <width>111</width>
  1023 + <height>101</height>
  1024 + </rect>
  1025 + </property>
  1026 + <property name="styleSheet">
  1027 + <string notr="true">color: rgb(255, 255, 255);</string>
  1028 + </property>
  1029 + <property name="text">
  1030 + <string>-</string>
  1031 + </property>
  1032 + <property name="alignment">
  1033 + <set>Qt::AlignCenter</set>
  1034 + </property>
  1035 + <property name="style" stdset="0">
  1036 + <string notr="true">info</string>
  1037 + </property>
  1038 + </widget>
  1039 + <widget class="QLabel" name="ctrlLabelCount_10">
  1040 + <property name="geometry">
  1041 + <rect>
  1042 + <x>433</x>
  1043 + <y>1473</y>
  1044 + <width>111</width>
  1045 + <height>101</height>
  1046 + </rect>
  1047 + </property>
  1048 + <property name="styleSheet">
  1049 + <string notr="true">color: rgb(255, 255, 255);</string>
  1050 + </property>
  1051 + <property name="text">
  1052 + <string>-</string>
  1053 + </property>
  1054 + <property name="alignment">
  1055 + <set>Qt::AlignCenter</set>
  1056 + </property>
  1057 + <property name="style" stdset="0">
  1058 + <string notr="true">info</string>
  1059 + </property>
  1060 + </widget>
  1061 + <widget class="QLabel" name="ctrlLabelCount_8">
  1062 + <property name="geometry">
  1063 + <rect>
  1064 + <x>433</x>
  1065 + <y>1279</y>
  1066 + <width>111</width>
  1067 + <height>101</height>
  1068 + </rect>
  1069 + </property>
  1070 + <property name="styleSheet">
  1071 + <string notr="true">color: rgb(255, 255, 255);</string>
  1072 + </property>
  1073 + <property name="text">
  1074 + <string>-</string>
  1075 + </property>
  1076 + <property name="alignment">
  1077 + <set>Qt::AlignCenter</set>
  1078 + </property>
  1079 + <property name="style" stdset="0">
  1080 + <string notr="true">info</string>
  1081 + </property>
  1082 + </widget>
  1083 + <widget class="QLabel" name="ctrlLabelCount_5">
  1084 + <property name="geometry">
  1085 + <rect>
  1086 + <x>433</x>
  1087 + <y>987</y>
  1088 + <width>111</width>
  1089 + <height>101</height>
  1090 + </rect>
  1091 + </property>
  1092 + <property name="styleSheet">
  1093 + <string notr="true">color: rgb(255, 255, 255);</string>
  1094 + </property>
  1095 + <property name="text">
  1096 + <string>-</string>
  1097 + </property>
  1098 + <property name="alignment">
  1099 + <set>Qt::AlignCenter</set>
  1100 + </property>
  1101 + <property name="style" stdset="0">
  1102 + <string notr="true">info</string>
  1103 + </property>
  1104 + </widget>
  1105 + <widget class="QLabel" name="ctrlLabelLastTime_2">
  1106 + <property name="geometry">
  1107 + <rect>
  1108 + <x>549</x>
  1109 + <y>698</y>
  1110 + <width>290</width>
  1111 + <height>101</height>
  1112 + </rect>
  1113 + </property>
  1114 + <property name="font">
  1115 + <font>
  1116 + <family>나눔고딕</family>
  1117 + <pointsize>8</pointsize>
  1118 + <weight>50</weight>
  1119 + <bold>false</bold>
  1120 + </font>
  1121 + </property>
  1122 + <property name="styleSheet">
  1123 + <string notr="true">color: rgb(255, 255, 255);</string>
  1124 + </property>
  1125 + <property name="text">
  1126 + <string>-</string>
  1127 + </property>
  1128 + <property name="alignment">
  1129 + <set>Qt::AlignCenter</set>
  1130 + </property>
  1131 + <property name="style" stdset="0">
  1132 + <string notr="true">info</string>
  1133 + </property>
  1134 + </widget>
  1135 + <widget class="QLabel" name="ctrlLabelLastTime_3">
  1136 + <property name="geometry">
  1137 + <rect>
  1138 + <x>549</x>
  1139 + <y>796</y>
  1140 + <width>290</width>
  1141 + <height>101</height>
  1142 + </rect>
  1143 + </property>
  1144 + <property name="styleSheet">
  1145 + <string notr="true">color: rgb(255, 255, 255);</string>
  1146 + </property>
  1147 + <property name="text">
  1148 + <string>-</string>
  1149 + </property>
  1150 + <property name="alignment">
  1151 + <set>Qt::AlignCenter</set>
  1152 + </property>
  1153 + <property name="style" stdset="0">
  1154 + <string notr="true">info</string>
  1155 + </property>
  1156 + </widget>
  1157 + <widget class="QLabel" name="ctrlLabelLastTime_1">
  1158 + <property name="geometry">
  1159 + <rect>
  1160 + <x>549</x>
  1161 + <y>600</y>
  1162 + <width>290</width>
  1163 + <height>101</height>
  1164 + </rect>
  1165 + </property>
  1166 + <property name="font">
  1167 + <font>
  1168 + <family>나눔고딕</family>
  1169 + <pointsize>8</pointsize>
  1170 + <weight>50</weight>
  1171 + <bold>false</bold>
  1172 + </font>
  1173 + </property>
  1174 + <property name="styleSheet">
  1175 + <string notr="true">color: rgb(255, 255, 255);</string>
  1176 + </property>
  1177 + <property name="text">
  1178 + <string>-</string>
  1179 + </property>
  1180 + <property name="alignment">
  1181 + <set>Qt::AlignCenter</set>
  1182 + </property>
  1183 + <property name="style" stdset="0">
  1184 + <string notr="true">info</string>
  1185 + </property>
  1186 + </widget>
  1187 + <widget class="QLabel" name="ctrlLabelLastTime_4">
  1188 + <property name="geometry">
  1189 + <rect>
  1190 + <x>549</x>
  1191 + <y>892</y>
  1192 + <width>290</width>
  1193 + <height>101</height>
  1194 + </rect>
  1195 + </property>
  1196 + <property name="styleSheet">
  1197 + <string notr="true">color: rgb(255, 255, 255);</string>
  1198 + </property>
  1199 + <property name="text">
  1200 + <string>-</string>
  1201 + </property>
  1202 + <property name="alignment">
  1203 + <set>Qt::AlignCenter</set>
  1204 + </property>
  1205 + <property name="style" stdset="0">
  1206 + <string notr="true">info</string>
  1207 + </property>
  1208 + </widget>
  1209 + <widget class="QLabel" name="ctrlLabelLastTime_6">
  1210 + <property name="geometry">
  1211 + <rect>
  1212 + <x>549</x>
  1213 + <y>1087</y>
  1214 + <width>290</width>
  1215 + <height>101</height>
  1216 + </rect>
  1217 + </property>
  1218 + <property name="styleSheet">
  1219 + <string notr="true">color: rgb(255, 255, 255);</string>
  1220 + </property>
  1221 + <property name="text">
  1222 + <string>-</string>
  1223 + </property>
  1224 + <property name="alignment">
  1225 + <set>Qt::AlignCenter</set>
  1226 + </property>
  1227 + <property name="style" stdset="0">
  1228 + <string notr="true">info</string>
  1229 + </property>
  1230 + </widget>
  1231 + <widget class="QLabel" name="ctrlLabelLastTime_7">
  1232 + <property name="geometry">
  1233 + <rect>
  1234 + <x>549</x>
  1235 + <y>1185</y>
  1236 + <width>290</width>
  1237 + <height>101</height>
  1238 + </rect>
  1239 + </property>
  1240 + <property name="styleSheet">
  1241 + <string notr="true">color: rgb(255, 255, 255);</string>
  1242 + </property>
  1243 + <property name="text">
  1244 + <string>-</string>
  1245 + </property>
  1246 + <property name="alignment">
  1247 + <set>Qt::AlignCenter</set>
  1248 + </property>
  1249 + <property name="style" stdset="0">
  1250 + <string notr="true">info</string>
  1251 + </property>
  1252 + </widget>
  1253 + <widget class="QLabel" name="ctrlLabelLastTime_9">
  1254 + <property name="geometry">
  1255 + <rect>
  1256 + <x>549</x>
  1257 + <y>1378</y>
  1258 + <width>290</width>
  1259 + <height>101</height>
  1260 + </rect>
  1261 + </property>
  1262 + <property name="styleSheet">
  1263 + <string notr="true">color: rgb(255, 255, 255);</string>
  1264 + </property>
  1265 + <property name="text">
  1266 + <string>-</string>
  1267 + </property>
  1268 + <property name="alignment">
  1269 + <set>Qt::AlignCenter</set>
  1270 + </property>
  1271 + <property name="style" stdset="0">
  1272 + <string notr="true">info</string>
  1273 + </property>
  1274 + </widget>
  1275 + <widget class="QLabel" name="ctrlLabelLastTime_10">
  1276 + <property name="geometry">
  1277 + <rect>
  1278 + <x>549</x>
  1279 + <y>1475</y>
  1280 + <width>290</width>
  1281 + <height>101</height>
  1282 + </rect>
  1283 + </property>
  1284 + <property name="styleSheet">
  1285 + <string notr="true">color: rgb(255, 255, 255);</string>
  1286 + </property>
  1287 + <property name="text">
  1288 + <string>-</string>
  1289 + </property>
  1290 + <property name="alignment">
  1291 + <set>Qt::AlignCenter</set>
  1292 + </property>
  1293 + <property name="style" stdset="0">
  1294 + <string notr="true">info</string>
  1295 + </property>
  1296 + </widget>
  1297 + <widget class="QLabel" name="ctrlLabelLastTime_8">
  1298 + <property name="geometry">
  1299 + <rect>
  1300 + <x>549</x>
  1301 + <y>1281</y>
  1302 + <width>290</width>
  1303 + <height>101</height>
  1304 + </rect>
  1305 + </property>
  1306 + <property name="styleSheet">
  1307 + <string notr="true">color: rgb(255, 255, 255);</string>
  1308 + </property>
  1309 + <property name="text">
  1310 + <string>-</string>
  1311 + </property>
  1312 + <property name="alignment">
  1313 + <set>Qt::AlignCenter</set>
  1314 + </property>
  1315 + <property name="style" stdset="0">
  1316 + <string notr="true">info</string>
  1317 + </property>
  1318 + </widget>
  1319 + <widget class="QLabel" name="ctrlLabelLastTime_5">
  1320 + <property name="geometry">
  1321 + <rect>
  1322 + <x>549</x>
  1323 + <y>989</y>
  1324 + <width>290</width>
  1325 + <height>101</height>
  1326 + </rect>
  1327 + </property>
  1328 + <property name="styleSheet">
  1329 + <string notr="true">color: rgb(255, 255, 255);</string>
  1330 + </property>
  1331 + <property name="text">
  1332 + <string>-</string>
  1333 + </property>
  1334 + <property name="alignment">
  1335 + <set>Qt::AlignCenter</set>
  1336 + </property>
  1337 + <property name="style" stdset="0">
  1338 + <string notr="true">info</string>
  1339 + </property>
  1340 + </widget>
  1341 + <zorder>ctrlLabelLastTime_10</zorder>
  1342 + <zorder>ctrlLabelCount_10</zorder>
  1343 + <zorder>ctrlLabelStarTime_10</zorder>
  1344 + <zorder>ctrlBtnErr10</zorder>
  1345 + <zorder>upperStack</zorder>
  1346 + <zorder>ctrlLabelErrPartName</zorder>
  1347 + <zorder>label</zorder>
  1348 + <zorder>label_2</zorder>
  1349 + <zorder>label_3</zorder>
  1350 + <zorder>label_4</zorder>
  1351 + <zorder>ctrlBtnErr01</zorder>
  1352 + <zorder>ctrlBtnErr02</zorder>
  1353 + <zorder>ctrlBtnErr03</zorder>
  1354 + <zorder>ctrlBtnErr04</zorder>
  1355 + <zorder>ctrlBtnErr05</zorder>
  1356 + <zorder>ctrlBtnErr06</zorder>
  1357 + <zorder>ctrlBtnErr07</zorder>
  1358 + <zorder>ctrlBtnErr08</zorder>
  1359 + <zorder>ctrlBtnErr09</zorder>
  1360 + <zorder>ctrlLabelStarTime_1</zorder>
  1361 + <zorder>ctrlLabelStarTime_2</zorder>
  1362 + <zorder>ctrlLabelStarTime_3</zorder>
  1363 + <zorder>ctrlLabelStarTime_4</zorder>
  1364 + <zorder>ctrlLabelStarTime_5</zorder>
  1365 + <zorder>ctrlLabelStarTime_6</zorder>
  1366 + <zorder>ctrlLabelStarTime_7</zorder>
  1367 + <zorder>ctrlLabelStarTime_8</zorder>
  1368 + <zorder>ctrlLabelStarTime_9</zorder>
  1369 + <zorder>bottomBar</zorder>
  1370 + <zorder>ctrlLabelCount_2</zorder>
  1371 + <zorder>ctrlLabelCount_3</zorder>
  1372 + <zorder>ctrlLabelCount_1</zorder>
  1373 + <zorder>ctrlLabelCount_4</zorder>
  1374 + <zorder>ctrlLabelCount_6</zorder>
  1375 + <zorder>ctrlLabelCount_7</zorder>
  1376 + <zorder>ctrlLabelCount_9</zorder>
  1377 + <zorder>ctrlLabelCount_8</zorder>
  1378 + <zorder>ctrlLabelCount_5</zorder>
  1379 + <zorder>ctrlLabelLastTime_2</zorder>
  1380 + <zorder>ctrlLabelLastTime_3</zorder>
  1381 + <zorder>ctrlLabelLastTime_1</zorder>
  1382 + <zorder>ctrlLabelLastTime_4</zorder>
  1383 + <zorder>ctrlLabelLastTime_6</zorder>
  1384 + <zorder>ctrlLabelLastTime_7</zorder>
  1385 + <zorder>ctrlLabelLastTime_9</zorder>
  1386 + <zorder>ctrlLabelLastTime_8</zorder>
  1387 + <zorder>ctrlLabelLastTime_5</zorder>
  1388 + </widget>
  1389 + </widget>
  1390 + <customwidgets>
  1391 + <customwidget>
  1392 + <class>Clock</class>
  1393 + <extends>QWidget</extends>
  1394 + <header>clock.h</header>
  1395 + <container>1</container>
  1396 + </customwidget>
  1397 + </customwidgets>
  1398 + <resources/>
  1399 + <connections/>
  1400 +</ui>
... ...
app/gui/oven_control/images/config/service/operationtime_heat_bgnd.png

1.38 KB

app/gui/oven_control/images/config/service/operationtime_mode_bgnd.png

4.2 KB

app/gui/oven_control/images/config/service/operationtime_parts_bgnd.png

5.13 KB

app/gui/oven_control/images/config/service/oprationtime_menu_line.png

247 Bytes

app/gui/oven_control/images/config/service/realtime_menu_line.png

213 Bytes

app/gui/oven_control/images/config/service/realtime_parts_bgnd.png

3.91 KB

app/gui/oven_control/images/config/service/realtime_sensor_bgnd.png

4.23 KB

app/gui/oven_control/images/config/service/service_grid_background.png

231 KB

app/gui/oven_control/images/config/service/service_menu_line.png

283 Bytes

app/gui/oven_control/mainwindow.cpp
... ... @@ -11,6 +11,7 @@
11 11 #include "functiontestwindow.h"
12 12 #include "autocookselectionwindow.h"
13 13 #include "washwindow.h"
  14 +#include "engineermenuwindow.h"
14 15  
15 16 MainWindow::MainWindow(QWidget *parent) :
16 17 QMainWindow(parent),
... ... @@ -107,3 +108,10 @@ void MainWindow::on_washButton_clicked()
107 108 w->showFullScreen();
108 109 w->raise();
109 110 }
  111 +
  112 +void MainWindow::on_helpButton_clicked()
  113 +{
  114 + engineermenuwindow *w = new engineermenuwindow(this);
  115 + w->setWindowModality(Qt::WindowModal);
  116 + w->showFullScreen();
  117 +}
... ...
app/gui/oven_control/mainwindow.h
... ... @@ -38,6 +38,8 @@ private slots:
38 38  
39 39 void on_washButton_clicked();
40 40  
  41 + void on_helpButton_clicked();
  42 +
41 43 private:
42 44 Ui::MainWindow *ui;
43 45  
... ...
app/gui/oven_control/operationtimeheat.cpp
... ... @@ -0,0 +1,60 @@
  1 +#include "operationtimeheat.h"
  2 +#include "ui_operationtimeheat.h"
  3 +#include "ovenstatics.h"
  4 +
  5 +operationTimeHeat::operationTimeHeat(QWidget *parent) :
  6 + QMainWindow(parent),
  7 + ui(new Ui::operationTimeHeat)
  8 +{
  9 + ui->setupUi(this);
  10 + reloadUI();
  11 +
  12 +}
  13 +
  14 +operationTimeHeat::~operationTimeHeat()
  15 +{
  16 + delete ui;
  17 +}
  18 +
  19 +void operationTimeHeat::on_btnReset1_clicked()
  20 +{
  21 + //스팀 가열 시간 초기화
  22 + OvenStatics* ovs = OvenStatics::getInstance();
  23 + if(ovs!=NULL){
  24 + ovs->srvdatas->use_log.items.steam_heat=0;
  25 + ovs->srvdatas->saveServiceDatas();
  26 + reloadUI();
  27 + }
  28 +}
  29 +
  30 +void operationTimeHeat::on_btnReset2_clicked()
  31 +{
  32 + //건열 가열 시간 초기화
  33 + OvenStatics* ovs = OvenStatics::getInstance();
  34 + if(ovs!=NULL){
  35 + ovs->srvdatas->use_log.items.dry_heat=0;
  36 + ovs->srvdatas->use_log.items.upper_heat=0;
  37 + ovs->srvdatas->use_log.items.lower_heat=0;
  38 + ovs->srvdatas->saveServiceDatas();
  39 + reloadUI();
  40 + }
  41 +}
  42 +
  43 +void operationTimeHeat::reloadUI(void){
  44 + uint32_t timetemp;
  45 + OvenStatics* ovs = OvenStatics::getInstance();
  46 + QString strTemp="";
  47 + if(ovs!=NULL){
  48 + timetemp = ovs->srvdatas->use_log.items.steam_heat;
  49 + strTemp.sprintf("%d h", timetemp/3600);
  50 + ui->m_ctrlLbListTime1->setText(strTemp);
  51 + timetemp = ovs->srvdatas->use_log.items.dry_heat;
  52 + strTemp.sprintf("%d h", timetemp/3600);
  53 + ui->m_ctrlLbListTime2->setText(strTemp);
  54 + }
  55 +}
  56 +
  57 +void operationTimeHeat::on_backButton_clicked()
  58 +{
  59 + deleteLater();
  60 +}
... ...
app/gui/oven_control/operationtimeheat.h
... ... @@ -0,0 +1,30 @@
  1 +#ifndef OPERATIONTIMEHEAT_H
  2 +#define OPERATIONTIMEHEAT_H
  3 +
  4 +#include <QMainWindow>
  5 +
  6 +namespace Ui {
  7 +class operationTimeHeat;
  8 +}
  9 +
  10 +class operationTimeHeat : public QMainWindow
  11 +{
  12 + Q_OBJECT
  13 +
  14 +public:
  15 + explicit operationTimeHeat(QWidget *parent = 0);
  16 + ~operationTimeHeat();
  17 +
  18 +private slots:
  19 + void on_btnReset1_clicked();
  20 +
  21 + void on_btnReset2_clicked();
  22 +
  23 + void on_backButton_clicked();
  24 +
  25 +private:
  26 + Ui::operationTimeHeat *ui;
  27 + void reloadUI(void);
  28 +};
  29 +
  30 +#endif // OPERATIONTIMEHEAT_H
... ...
app/gui/oven_control/operationtimeheat.ui
... ... @@ -0,0 +1,358 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>operationTimeHeat</class>
  4 + <widget class="QMainWindow" name="operationTimeHeat">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }
  19 +#midwidget { background-image: url(:/images/config/service/operationtime_heat_bgnd.png); }</string>
  20 + </property>
  21 + <widget class="QWidget" name="centralwidget">
  22 + <property name="styleSheet">
  23 + <string notr="true"/>
  24 + </property>
  25 + <widget class="QStackedWidget" name="upperStack">
  26 + <property name="geometry">
  27 + <rect>
  28 + <x>0</x>
  29 + <y>0</y>
  30 + <width>900</width>
  31 + <height>426</height>
  32 + </rect>
  33 + </property>
  34 + <widget class="QWidget" name="clockContainer">
  35 + <property name="styleSheet">
  36 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  37 + </property>
  38 + <widget class="Clock" name="clock" native="true">
  39 + <property name="geometry">
  40 + <rect>
  41 + <x>272</x>
  42 + <y>36</y>
  43 + <width>356</width>
  44 + <height>355</height>
  45 + </rect>
  46 + </property>
  47 + </widget>
  48 + </widget>
  49 + <widget class="QWidget" name="page_2"/>
  50 + </widget>
  51 + <widget class="QLabel" name="label_15">
  52 + <property name="geometry">
  53 + <rect>
  54 + <x>55</x>
  55 + <y>426</y>
  56 + <width>1500</width>
  57 + <height>84</height>
  58 + </rect>
  59 + </property>
  60 + <property name="font">
  61 + <font>
  62 + <family>Malgun Gothic</family>
  63 + <pointsize>11</pointsize>
  64 + </font>
  65 + </property>
  66 + <property name="styleSheet">
  67 + <string notr="true">color: rgb(255, 255, 255);</string>
  68 + </property>
  69 + <property name="text">
  70 + <string>서비스단계(엔지니어모드) &gt; 작동시간 &gt; 가열</string>
  71 + </property>
  72 + </widget>
  73 + <widget class="QWidget" name="bottomBar" native="true">
  74 + <property name="geometry">
  75 + <rect>
  76 + <x>0</x>
  77 + <y>1450</y>
  78 + <width>900</width>
  79 + <height>150</height>
  80 + </rect>
  81 + </property>
  82 + <widget class="QPushButton" name="backButton">
  83 + <property name="geometry">
  84 + <rect>
  85 + <x>343</x>
  86 + <y>26</y>
  87 + <width>97</width>
  88 + <height>97</height>
  89 + </rect>
  90 + </property>
  91 + <property name="sizePolicy">
  92 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  93 + <horstretch>0</horstretch>
  94 + <verstretch>0</verstretch>
  95 + </sizepolicy>
  96 + </property>
  97 + <property name="styleSheet">
  98 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  99 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  100 + </property>
  101 + <property name="text">
  102 + <string/>
  103 + </property>
  104 + </widget>
  105 + <widget class="QPushButton" name="helpButton">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>457</x>
  109 + <y>26</y>
  110 + <width>97</width>
  111 + <height>97</height>
  112 + </rect>
  113 + </property>
  114 + <property name="sizePolicy">
  115 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  116 + <horstretch>0</horstretch>
  117 + <verstretch>0</verstretch>
  118 + </sizepolicy>
  119 + </property>
  120 + <property name="styleSheet">
  121 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/help.png); }
  122 +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</string>
  123 + </property>
  124 + <property name="text">
  125 + <string/>
  126 + </property>
  127 + </widget>
  128 + </widget>
  129 + <widget class="QWidget" name="midwidget" native="true">
  130 + <property name="geometry">
  131 + <rect>
  132 + <x>57</x>
  133 + <y>532</y>
  134 + <width>792</width>
  135 + <height>266</height>
  136 + </rect>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QLabel {
  140 + color:white;
  141 +}</string>
  142 + </property>
  143 + <widget class="QLabel" name="m_ctrlLbCol1Name">
  144 + <property name="geometry">
  145 + <rect>
  146 + <x>0</x>
  147 + <y>0</y>
  148 + <width>267</width>
  149 + <height>71</height>
  150 + </rect>
  151 + </property>
  152 + <property name="text">
  153 + <string>목록</string>
  154 + </property>
  155 + <property name="alignment">
  156 + <set>Qt::AlignCenter</set>
  157 + </property>
  158 + </widget>
  159 + <widget class="QLabel" name="m_ctrlLbCol2Name">
  160 + <property name="geometry">
  161 + <rect>
  162 + <x>266</x>
  163 + <y>0</y>
  164 + <width>265</width>
  165 + <height>71</height>
  166 + </rect>
  167 + </property>
  168 + <property name="text">
  169 + <string>초기화</string>
  170 + </property>
  171 + <property name="alignment">
  172 + <set>Qt::AlignCenter</set>
  173 + </property>
  174 + </widget>
  175 + <widget class="QLabel" name="m_ctrlLbCol3Name">
  176 + <property name="geometry">
  177 + <rect>
  178 + <x>530</x>
  179 + <y>0</y>
  180 + <width>263</width>
  181 + <height>71</height>
  182 + </rect>
  183 + </property>
  184 + <property name="text">
  185 + <string>시간</string>
  186 + </property>
  187 + <property name="alignment">
  188 + <set>Qt::AlignCenter</set>
  189 + </property>
  190 + </widget>
  191 + <widget class="QLabel" name="m_ctrlLbListName1">
  192 + <property name="geometry">
  193 + <rect>
  194 + <x>0</x>
  195 + <y>70</y>
  196 + <width>267</width>
  197 + <height>97</height>
  198 + </rect>
  199 + </property>
  200 + <property name="font">
  201 + <font>
  202 + <pointsize>10</pointsize>
  203 + </font>
  204 + </property>
  205 + <property name="text">
  206 + <string>스팀가열시간</string>
  207 + </property>
  208 + <property name="alignment">
  209 + <set>Qt::AlignCenter</set>
  210 + </property>
  211 + </widget>
  212 + <widget class="QLabel" name="m_ctrlLbListName2">
  213 + <property name="geometry">
  214 + <rect>
  215 + <x>0</x>
  216 + <y>170</y>
  217 + <width>267</width>
  218 + <height>97</height>
  219 + </rect>
  220 + </property>
  221 + <property name="font">
  222 + <font>
  223 + <pointsize>10</pointsize>
  224 + </font>
  225 + </property>
  226 + <property name="text">
  227 + <string>건열가열시간</string>
  228 + </property>
  229 + <property name="alignment">
  230 + <set>Qt::AlignCenter</set>
  231 + </property>
  232 + </widget>
  233 + <widget class="QPushButton" name="btnReset1">
  234 + <property name="geometry">
  235 + <rect>
  236 + <x>275</x>
  237 + <y>88</y>
  238 + <width>245</width>
  239 + <height>65</height>
  240 + </rect>
  241 + </property>
  242 + <property name="sizePolicy">
  243 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  244 + <horstretch>0</horstretch>
  245 + <verstretch>0</verstretch>
  246 + </sizepolicy>
  247 + </property>
  248 + <property name="font">
  249 + <font>
  250 + <family>Roboto</family>
  251 + <pointsize>10</pointsize>
  252 + <weight>75</weight>
  253 + <bold>true</bold>
  254 + <underline>false</underline>
  255 + </font>
  256 + </property>
  257 + <property name="styleSheet">
  258 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  259 +color: rgb(55, 55, 55); }
  260 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  261 +QPushButton { text-align: center;}
  262 +</string>
  263 + </property>
  264 + <property name="text">
  265 + <string>RESET</string>
  266 + </property>
  267 + </widget>
  268 + <widget class="QPushButton" name="btnReset2">
  269 + <property name="geometry">
  270 + <rect>
  271 + <x>275</x>
  272 + <y>188</y>
  273 + <width>245</width>
  274 + <height>65</height>
  275 + </rect>
  276 + </property>
  277 + <property name="sizePolicy">
  278 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  279 + <horstretch>0</horstretch>
  280 + <verstretch>0</verstretch>
  281 + </sizepolicy>
  282 + </property>
  283 + <property name="font">
  284 + <font>
  285 + <family>Roboto</family>
  286 + <pointsize>10</pointsize>
  287 + <weight>75</weight>
  288 + <bold>true</bold>
  289 + <underline>false</underline>
  290 + </font>
  291 + </property>
  292 + <property name="styleSheet">
  293 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  294 +color: rgb(55, 55, 55); }
  295 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  296 +QPushButton { text-align: center;}
  297 +</string>
  298 + </property>
  299 + <property name="text">
  300 + <string>RESET</string>
  301 + </property>
  302 + </widget>
  303 + <widget class="QLabel" name="m_ctrlLbListTime1">
  304 + <property name="geometry">
  305 + <rect>
  306 + <x>530</x>
  307 + <y>70</y>
  308 + <width>267</width>
  309 + <height>97</height>
  310 + </rect>
  311 + </property>
  312 + <property name="font">
  313 + <font>
  314 + <pointsize>10</pointsize>
  315 + </font>
  316 + </property>
  317 + <property name="text">
  318 + <string/>
  319 + </property>
  320 + <property name="alignment">
  321 + <set>Qt::AlignCenter</set>
  322 + </property>
  323 + </widget>
  324 + <widget class="QLabel" name="m_ctrlLbListTime2">
  325 + <property name="geometry">
  326 + <rect>
  327 + <x>530</x>
  328 + <y>170</y>
  329 + <width>267</width>
  330 + <height>97</height>
  331 + </rect>
  332 + </property>
  333 + <property name="font">
  334 + <font>
  335 + <pointsize>10</pointsize>
  336 + </font>
  337 + </property>
  338 + <property name="text">
  339 + <string/>
  340 + </property>
  341 + <property name="alignment">
  342 + <set>Qt::AlignCenter</set>
  343 + </property>
  344 + </widget>
  345 + </widget>
  346 + </widget>
  347 + </widget>
  348 + <customwidgets>
  349 + <customwidget>
  350 + <class>Clock</class>
  351 + <extends>QWidget</extends>
  352 + <header>clock.h</header>
  353 + <container>1</container>
  354 + </customwidget>
  355 + </customwidgets>
  356 + <resources/>
  357 + <connections/>
  358 +</ui>
... ...
app/gui/oven_control/operationtimemain.cpp
... ... @@ -0,0 +1,43 @@
  1 +#include "operationtimemain.h"
  2 +#include "ui_operationtimemain.h"
  3 +#include "operationtimeheat.h"
  4 +#include "operationtimemode.h"
  5 +#include "operationtimeparts.h"
  6 +
  7 +operationTimeMain::operationTimeMain(QWidget *parent) :
  8 + QMainWindow(parent),
  9 + ui(new Ui::operationTimeMain)
  10 +{
  11 + ui->setupUi(this);
  12 +}
  13 +
  14 +operationTimeMain::~operationTimeMain()
  15 +{
  16 + delete ui;
  17 +}
  18 +
  19 +void operationTimeMain::on_btnHeatPartTime_clicked()
  20 +{
  21 + operationTimeHeat* w = new operationTimeHeat();
  22 + w->setWindowModality(Qt::WindowModal);
  23 + w->showFullScreen();
  24 +}
  25 +
  26 +void operationTimeMain::on_btnModeTime_clicked()
  27 +{
  28 + operationTimeMode* w = new operationTimeMode();
  29 + w->setWindowModality(Qt::WindowModal);
  30 + w->showFullScreen();
  31 +}
  32 +
  33 +void operationTimeMain::on_btnPartsTime_clicked()
  34 +{
  35 + operationTimeParts*w = new operationTimeParts();
  36 + w->setWindowModality(Qt::WindowModal);
  37 + w->showFullScreen();
  38 +}
  39 +
  40 +void operationTimeMain::on_backButton_clicked()
  41 +{
  42 + deleteLater();
  43 +}
... ...
app/gui/oven_control/operationtimemain.h
... ... @@ -0,0 +1,31 @@
  1 +#ifndef OPERATIONTIMEMAIN_H
  2 +#define OPERATIONTIMEMAIN_H
  3 +
  4 +#include <QMainWindow>
  5 +
  6 +namespace Ui {
  7 +class operationTimeMain;
  8 +}
  9 +
  10 +class operationTimeMain : public QMainWindow
  11 +{
  12 + Q_OBJECT
  13 +
  14 +public:
  15 + explicit operationTimeMain(QWidget *parent = 0);
  16 + ~operationTimeMain();
  17 +
  18 +private slots:
  19 + void on_btnHeatPartTime_clicked();
  20 +
  21 + void on_btnModeTime_clicked();
  22 +
  23 + void on_btnPartsTime_clicked();
  24 +
  25 + void on_backButton_clicked();
  26 +
  27 +private:
  28 + Ui::operationTimeMain *ui;
  29 +};
  30 +
  31 +#endif // OPERATIONTIMEMAIN_H
... ...
app/gui/oven_control/operationtimemain.ui
... ... @@ -0,0 +1,321 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>operationTimeMain</class>
  4 + <widget class="QMainWindow" name="operationTimeMain">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }</string>
  19 + </property>
  20 + <widget class="QWidget" name="centralwidget">
  21 + <property name="styleSheet">
  22 + <string notr="true"/>
  23 + </property>
  24 + <widget class="QStackedWidget" name="upperStack">
  25 + <property name="geometry">
  26 + <rect>
  27 + <x>0</x>
  28 + <y>0</y>
  29 + <width>900</width>
  30 + <height>426</height>
  31 + </rect>
  32 + </property>
  33 + <widget class="QWidget" name="clockContainer">
  34 + <property name="styleSheet">
  35 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  36 + </property>
  37 + <widget class="Clock" name="clock" native="true">
  38 + <property name="geometry">
  39 + <rect>
  40 + <x>272</x>
  41 + <y>36</y>
  42 + <width>356</width>
  43 + <height>355</height>
  44 + </rect>
  45 + </property>
  46 + </widget>
  47 + </widget>
  48 + <widget class="QWidget" name="page_2"/>
  49 + </widget>
  50 + <widget class="QLabel" name="label_15">
  51 + <property name="geometry">
  52 + <rect>
  53 + <x>55</x>
  54 + <y>426</y>
  55 + <width>900</width>
  56 + <height>84</height>
  57 + </rect>
  58 + </property>
  59 + <property name="font">
  60 + <font>
  61 + <family>Malgun Gothic</family>
  62 + <pointsize>11</pointsize>
  63 + </font>
  64 + </property>
  65 + <property name="styleSheet">
  66 + <string notr="true">color: rgb(255, 255, 255);</string>
  67 + </property>
  68 + <property name="text">
  69 + <string>서비스단계(엔지니어모드) &gt; 작동시간</string>
  70 + </property>
  71 + </widget>
  72 + <widget class="QWidget" name="bottomBar" native="true">
  73 + <property name="geometry">
  74 + <rect>
  75 + <x>0</x>
  76 + <y>1450</y>
  77 + <width>900</width>
  78 + <height>150</height>
  79 + </rect>
  80 + </property>
  81 + <widget class="QPushButton" name="backButton">
  82 + <property name="geometry">
  83 + <rect>
  84 + <x>401</x>
  85 + <y>26</y>
  86 + <width>97</width>
  87 + <height>97</height>
  88 + </rect>
  89 + </property>
  90 + <property name="sizePolicy">
  91 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  92 + <horstretch>0</horstretch>
  93 + <verstretch>0</verstretch>
  94 + </sizepolicy>
  95 + </property>
  96 + <property name="styleSheet">
  97 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  98 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  99 + </property>
  100 + <property name="text">
  101 + <string/>
  102 + </property>
  103 + </widget>
  104 + </widget>
  105 + <widget class="QWidget" name="gridLayoutWidget">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>40</x>
  109 + <y>545</y>
  110 + <width>821</width>
  111 + <height>66</height>
  112 + </rect>
  113 + </property>
  114 + <layout class="QGridLayout" name="gridLayout" columnstretch="67,33">
  115 + <property name="spacing">
  116 + <number>0</number>
  117 + </property>
  118 + <item row="0" column="0" colspan="2">
  119 + <widget class="QPushButton" name="button">
  120 + <property name="enabled">
  121 + <bool>false</bool>
  122 + </property>
  123 + <property name="sizePolicy">
  124 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  125 + <horstretch>0</horstretch>
  126 + <verstretch>0</verstretch>
  127 + </sizepolicy>
  128 + </property>
  129 + <property name="font">
  130 + <font>
  131 + <family>Roboto</family>
  132 + <pointsize>10</pointsize>
  133 + <weight>75</weight>
  134 + <bold>true</bold>
  135 + <underline>false</underline>
  136 + </font>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png);color: rgb(255, 255, 255); }
  140 +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
  141 +QPushButton { text-align: left;}
  142 +</string>
  143 + </property>
  144 + <property name="text">
  145 + <string> 작동시간</string>
  146 + </property>
  147 + </widget>
  148 + </item>
  149 + <item row="0" column="1">
  150 + <widget class="QLabel" name="label_17">
  151 + <property name="enabled">
  152 + <bool>true</bool>
  153 + </property>
  154 + <property name="font">
  155 + <font>
  156 + <family>Malgun Gothic</family>
  157 + <pointsize>11</pointsize>
  158 + <weight>75</weight>
  159 + <bold>true</bold>
  160 + </font>
  161 + </property>
  162 + <property name="styleSheet">
  163 + <string notr="true">color: rgb(255, 255, 255);</string>
  164 + </property>
  165 + <property name="text">
  166 + <string>EM-6</string>
  167 + </property>
  168 + <property name="alignment">
  169 + <set>Qt::AlignCenter</set>
  170 + </property>
  171 + <property name="margin">
  172 + <number>0</number>
  173 + </property>
  174 + </widget>
  175 + </item>
  176 + </layout>
  177 + </widget>
  178 + <widget class="QPushButton" name="btnHeatPartTime">
  179 + <property name="geometry">
  180 + <rect>
  181 + <x>124</x>
  182 + <y>630</y>
  183 + <width>381</width>
  184 + <height>65</height>
  185 + </rect>
  186 + </property>
  187 + <property name="sizePolicy">
  188 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  189 + <horstretch>0</horstretch>
  190 + <verstretch>0</verstretch>
  191 + </sizepolicy>
  192 + </property>
  193 + <property name="font">
  194 + <font>
  195 + <family>Roboto</family>
  196 + <pointsize>10</pointsize>
  197 + <weight>75</weight>
  198 + <bold>true</bold>
  199 + <underline>false</underline>
  200 + </font>
  201 + </property>
  202 + <property name="styleSheet">
  203 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  204 +color: rgb(55, 55, 55); }
  205 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  206 +QPushButton { text-align: center;}
  207 +</string>
  208 + </property>
  209 + <property name="text">
  210 + <string>가열부</string>
  211 + </property>
  212 + </widget>
  213 + <widget class="QPushButton" name="btnModeTime">
  214 + <property name="geometry">
  215 + <rect>
  216 + <x>124</x>
  217 + <y>717</y>
  218 + <width>381</width>
  219 + <height>65</height>
  220 + </rect>
  221 + </property>
  222 + <property name="sizePolicy">
  223 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  224 + <horstretch>0</horstretch>
  225 + <verstretch>0</verstretch>
  226 + </sizepolicy>
  227 + </property>
  228 + <property name="font">
  229 + <font>
  230 + <family>Roboto</family>
  231 + <pointsize>10</pointsize>
  232 + <weight>75</weight>
  233 + <bold>true</bold>
  234 + <underline>false</underline>
  235 + </font>
  236 + </property>
  237 + <property name="styleSheet">
  238 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  239 +color: rgb(55, 55, 55); }
  240 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  241 +QPushButton { text-align: center;}
  242 +</string>
  243 + </property>
  244 + <property name="text">
  245 + <string>모드</string>
  246 + </property>
  247 + </widget>
  248 + <widget class="QPushButton" name="btnPartsTime">
  249 + <property name="geometry">
  250 + <rect>
  251 + <x>124</x>
  252 + <y>802</y>
  253 + <width>381</width>
  254 + <height>65</height>
  255 + </rect>
  256 + </property>
  257 + <property name="sizePolicy">
  258 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  259 + <horstretch>0</horstretch>
  260 + <verstretch>0</verstretch>
  261 + </sizepolicy>
  262 + </property>
  263 + <property name="font">
  264 + <font>
  265 + <family>Roboto</family>
  266 + <pointsize>10</pointsize>
  267 + <weight>75</weight>
  268 + <bold>true</bold>
  269 + <underline>false</underline>
  270 + </font>
  271 + </property>
  272 + <property name="styleSheet">
  273 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  274 +color: rgb(55, 55, 55); }
  275 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  276 +QPushButton { text-align: center;}
  277 +</string>
  278 + </property>
  279 + <property name="text">
  280 + <string>부품</string>
  281 + </property>
  282 + </widget>
  283 + <widget class="QLabel" name="label">
  284 + <property name="geometry">
  285 + <rect>
  286 + <x>100</x>
  287 + <y>606</y>
  288 + <width>28</width>
  289 + <height>231</height>
  290 + </rect>
  291 + </property>
  292 + <property name="text">
  293 + <string/>
  294 + </property>
  295 + <property name="pixmap">
  296 + <pixmap resource="resources.qrc">:/images/config/service/oprationtime_menu_line.png</pixmap>
  297 + </property>
  298 + </widget>
  299 + <zorder>label</zorder>
  300 + <zorder>upperStack</zorder>
  301 + <zorder>label_15</zorder>
  302 + <zorder>bottomBar</zorder>
  303 + <zorder>gridLayoutWidget</zorder>
  304 + <zorder>btnHeatPartTime</zorder>
  305 + <zorder>btnModeTime</zorder>
  306 + <zorder>btnPartsTime</zorder>
  307 + </widget>
  308 + </widget>
  309 + <customwidgets>
  310 + <customwidget>
  311 + <class>Clock</class>
  312 + <extends>QWidget</extends>
  313 + <header>clock.h</header>
  314 + <container>1</container>
  315 + </customwidget>
  316 + </customwidgets>
  317 + <resources>
  318 + <include location="resources.qrc"/>
  319 + </resources>
  320 + <connections/>
  321 +</ui>
... ...
app/gui/oven_control/operationtimemode.cpp
... ... @@ -0,0 +1,80 @@
  1 +#include "operationtimemode.h"
  2 +#include "ui_operationtimemode.h"
  3 +#include "ovenstatics.h"
  4 +
  5 +operationTimeMode::operationTimeMode(QWidget *parent) :
  6 + QMainWindow(parent),
  7 + ui(new Ui::operationTimeMode)
  8 +{
  9 + ui->setupUi(this);
  10 + reloadUi();
  11 +}
  12 +
  13 +operationTimeMode::~operationTimeMode()
  14 +{
  15 + delete ui;
  16 +}
  17 +
  18 +void operationTimeMode::on_backButton_clicked()
  19 +{
  20 + deleteLater();
  21 +}
  22 +
  23 +
  24 +void operationTimeMode::reloadUi(void){
  25 + uint32_t timetemp;
  26 + OvenStatics* ovs = OvenStatics::getInstance();
  27 + QString strTemp="";
  28 + uint32_t totaltime;
  29 + if(ovs!=NULL){
  30 + //건열 조리 모드
  31 + timetemp = ovs->srvdatas->use_log.items.cook_dry_mode;
  32 + totaltime += timetemp;
  33 + strTemp.sprintf("%d h", timetemp/3600);
  34 + ui->m_ctrlLbListTime1->setText(strTemp);
  35 + //스팀 조리 모드
  36 + timetemp = ovs->srvdatas->use_log.items.cook_steam_mode;
  37 + totaltime += timetemp;
  38 + strTemp.sprintf("%d h", timetemp/3600);
  39 + ui->m_ctrlLbListTime2->setText(strTemp);
  40 + //콤비 조리 모드
  41 + timetemp = ovs->srvdatas->use_log.items.cook_combi_mode;
  42 + totaltime += timetemp;
  43 + strTemp.sprintf("%d h", timetemp/3600);
  44 + ui->m_ctrlLbListTime3->setText(strTemp);
  45 + //세제없이 헹굼
  46 + timetemp = ovs->srvdatas->use_log.items.wash_mode_nocleanser;
  47 + totaltime += timetemp;
  48 + strTemp.sprintf("%d h", timetemp/3600);
  49 + ui->m_ctrlLbListTime4->setText(strTemp);
  50 + //간이 세척
  51 + timetemp = ovs->srvdatas->use_log.items.wash_mode_simple;
  52 + totaltime += timetemp;
  53 + strTemp.sprintf("%d h", timetemp/3600);
  54 + ui->m_ctrlLbListTime5->setText(strTemp);
  55 + //표준 세척
  56 + timetemp = ovs->srvdatas->use_log.items.wash_mode_standard;
  57 + totaltime += timetemp;
  58 + strTemp.sprintf("%d h", timetemp/3600);
  59 + ui->m_ctrlLbListTime6->setText(strTemp);
  60 + //강세척
  61 + timetemp = ovs->srvdatas->use_log.items.wash_mode_strong;
  62 + totaltime += timetemp;
  63 + strTemp.sprintf("%d h", timetemp/3600);
  64 + ui->m_ctrlLbListTime7->setText(strTemp);
  65 + //고속 세척
  66 + timetemp = ovs->srvdatas->use_log.items.wash_mode_speed;
  67 + totaltime += timetemp;
  68 + strTemp.sprintf("%d h", timetemp/3600);
  69 + ui->m_ctrlLbListTime8->setText(strTemp);
  70 + //쿨다운
  71 + timetemp = ovs->srvdatas->use_log.items.cooldown_mode;
  72 + totaltime += timetemp;
  73 + strTemp.sprintf("%d h", timetemp/3600);
  74 + ui->m_ctrlLbListTime9->setText(strTemp);
  75 + //전체 작동 시간
  76 + timetemp = totaltime;
  77 + strTemp.sprintf("%d h", timetemp/3600);
  78 + ui->m_ctrlLbListTime10->setText(strTemp);
  79 + }
  80 +}
... ...
app/gui/oven_control/operationtimemode.h
... ... @@ -0,0 +1,26 @@
  1 +#ifndef OPERATIONTIMEMODE_H
  2 +#define OPERATIONTIMEMODE_H
  3 +
  4 +#include <QMainWindow>
  5 +
  6 +namespace Ui {
  7 +class operationTimeMode;
  8 +}
  9 +
  10 +class operationTimeMode : public QMainWindow
  11 +{
  12 + Q_OBJECT
  13 +
  14 +public:
  15 + explicit operationTimeMode(QWidget *parent = 0);
  16 + ~operationTimeMode();
  17 +
  18 +private slots:
  19 + void on_backButton_clicked();
  20 +
  21 +private:
  22 + Ui::operationTimeMode *ui;
  23 + void reloadUi(void);
  24 +};
  25 +
  26 +#endif // OPERATIONTIMEMODE_H
... ...
app/gui/oven_control/operationtimemode.ui
... ... @@ -0,0 +1,748 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>operationTimeMode</class>
  4 + <widget class="QMainWindow" name="operationTimeMode">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }
  19 +#midwidget { background-image: url(:/images/config/service/operationtime_mode_bgnd.png); }</string>
  20 + </property>
  21 + <widget class="QWidget" name="centralwidget">
  22 + <property name="styleSheet">
  23 + <string notr="true"/>
  24 + </property>
  25 + <widget class="QStackedWidget" name="upperStack">
  26 + <property name="geometry">
  27 + <rect>
  28 + <x>0</x>
  29 + <y>0</y>
  30 + <width>900</width>
  31 + <height>426</height>
  32 + </rect>
  33 + </property>
  34 + <widget class="QWidget" name="clockContainer">
  35 + <property name="styleSheet">
  36 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  37 + </property>
  38 + <widget class="Clock" name="clock" native="true">
  39 + <property name="geometry">
  40 + <rect>
  41 + <x>272</x>
  42 + <y>36</y>
  43 + <width>356</width>
  44 + <height>355</height>
  45 + </rect>
  46 + </property>
  47 + </widget>
  48 + </widget>
  49 + <widget class="QWidget" name="page_2"/>
  50 + </widget>
  51 + <widget class="QLabel" name="label_15">
  52 + <property name="geometry">
  53 + <rect>
  54 + <x>55</x>
  55 + <y>426</y>
  56 + <width>1500</width>
  57 + <height>84</height>
  58 + </rect>
  59 + </property>
  60 + <property name="font">
  61 + <font>
  62 + <family>Malgun Gothic</family>
  63 + <pointsize>11</pointsize>
  64 + </font>
  65 + </property>
  66 + <property name="styleSheet">
  67 + <string notr="true">color: rgb(255, 255, 255);</string>
  68 + </property>
  69 + <property name="text">
  70 + <string>서비스단계(엔지니어모드) &gt; 작동시간 &gt; 모드</string>
  71 + </property>
  72 + </widget>
  73 + <widget class="QWidget" name="bottomBar" native="true">
  74 + <property name="geometry">
  75 + <rect>
  76 + <x>0</x>
  77 + <y>1450</y>
  78 + <width>900</width>
  79 + <height>150</height>
  80 + </rect>
  81 + </property>
  82 + <widget class="QPushButton" name="backButton">
  83 + <property name="geometry">
  84 + <rect>
  85 + <x>343</x>
  86 + <y>26</y>
  87 + <width>97</width>
  88 + <height>97</height>
  89 + </rect>
  90 + </property>
  91 + <property name="sizePolicy">
  92 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  93 + <horstretch>0</horstretch>
  94 + <verstretch>0</verstretch>
  95 + </sizepolicy>
  96 + </property>
  97 + <property name="styleSheet">
  98 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  99 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  100 + </property>
  101 + <property name="text">
  102 + <string/>
  103 + </property>
  104 + </widget>
  105 + <widget class="QPushButton" name="helpButton">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>457</x>
  109 + <y>26</y>
  110 + <width>97</width>
  111 + <height>97</height>
  112 + </rect>
  113 + </property>
  114 + <property name="sizePolicy">
  115 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  116 + <horstretch>0</horstretch>
  117 + <verstretch>0</verstretch>
  118 + </sizepolicy>
  119 + </property>
  120 + <property name="styleSheet">
  121 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/help.png); }
  122 +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</string>
  123 + </property>
  124 + <property name="text">
  125 + <string/>
  126 + </property>
  127 + </widget>
  128 + </widget>
  129 + <widget class="QWidget" name="midwidget" native="true">
  130 + <property name="geometry">
  131 + <rect>
  132 + <x>57</x>
  133 + <y>532</y>
  134 + <width>793</width>
  135 + <height>769</height>
  136 + </rect>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QLabel {
  140 + color:white;
  141 +}</string>
  142 + </property>
  143 + <widget class="QLabel" name="m_ctrlLbCol1Name">
  144 + <property name="geometry">
  145 + <rect>
  146 + <x>3</x>
  147 + <y>0</y>
  148 + <width>377</width>
  149 + <height>71</height>
  150 + </rect>
  151 + </property>
  152 + <property name="text">
  153 + <string>목록</string>
  154 + </property>
  155 + <property name="alignment">
  156 + <set>Qt::AlignCenter</set>
  157 + </property>
  158 + </widget>
  159 + <widget class="QLabel" name="m_ctrlLbCol2Name">
  160 + <property name="geometry">
  161 + <rect>
  162 + <x>379</x>
  163 + <y>0</y>
  164 + <width>413</width>
  165 + <height>70</height>
  166 + </rect>
  167 + </property>
  168 + <property name="text">
  169 + <string>시간</string>
  170 + </property>
  171 + <property name="alignment">
  172 + <set>Qt::AlignCenter</set>
  173 + </property>
  174 + </widget>
  175 + <widget class="QPushButton" name="btnListName">
  176 + <property name="geometry">
  177 + <rect>
  178 + <x>0</x>
  179 + <y>75</y>
  180 + <width>375</width>
  181 + <height>58</height>
  182 + </rect>
  183 + </property>
  184 + <property name="sizePolicy">
  185 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  186 + <horstretch>0</horstretch>
  187 + <verstretch>0</verstretch>
  188 + </sizepolicy>
  189 + </property>
  190 + <property name="font">
  191 + <font>
  192 + <family>Roboto</family>
  193 + <pointsize>10</pointsize>
  194 + <weight>75</weight>
  195 + <bold>true</bold>
  196 + <underline>false</underline>
  197 + </font>
  198 + </property>
  199 + <property name="styleSheet">
  200 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  201 +color: rgb(55, 55, 55); }
  202 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  203 +QPushButton { text-align: center;}
  204 +</string>
  205 + </property>
  206 + <property name="text">
  207 + <string>건열모드</string>
  208 + </property>
  209 + </widget>
  210 + <widget class="QLabel" name="m_ctrlLbListTime1">
  211 + <property name="geometry">
  212 + <rect>
  213 + <x>380</x>
  214 + <y>69</y>
  215 + <width>411</width>
  216 + <height>71</height>
  217 + </rect>
  218 + </property>
  219 + <property name="font">
  220 + <font>
  221 + <pointsize>10</pointsize>
  222 + </font>
  223 + </property>
  224 + <property name="text">
  225 + <string/>
  226 + </property>
  227 + <property name="alignment">
  228 + <set>Qt::AlignCenter</set>
  229 + </property>
  230 + </widget>
  231 + <widget class="QPushButton" name="btnListName_2">
  232 + <property name="geometry">
  233 + <rect>
  234 + <x>0</x>
  235 + <y>145</y>
  236 + <width>375</width>
  237 + <height>58</height>
  238 + </rect>
  239 + </property>
  240 + <property name="sizePolicy">
  241 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  242 + <horstretch>0</horstretch>
  243 + <verstretch>0</verstretch>
  244 + </sizepolicy>
  245 + </property>
  246 + <property name="font">
  247 + <font>
  248 + <family>Roboto</family>
  249 + <pointsize>10</pointsize>
  250 + <weight>75</weight>
  251 + <bold>true</bold>
  252 + <underline>false</underline>
  253 + </font>
  254 + </property>
  255 + <property name="styleSheet">
  256 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  257 +color: rgb(55, 55, 55); }
  258 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  259 +QPushButton { text-align: center;}
  260 +</string>
  261 + </property>
  262 + <property name="text">
  263 + <string>스팀모드</string>
  264 + </property>
  265 + </widget>
  266 + <widget class="QPushButton" name="btnListName_3">
  267 + <property name="geometry">
  268 + <rect>
  269 + <x>0</x>
  270 + <y>215</y>
  271 + <width>375</width>
  272 + <height>58</height>
  273 + </rect>
  274 + </property>
  275 + <property name="sizePolicy">
  276 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  277 + <horstretch>0</horstretch>
  278 + <verstretch>0</verstretch>
  279 + </sizepolicy>
  280 + </property>
  281 + <property name="font">
  282 + <font>
  283 + <family>Roboto</family>
  284 + <pointsize>10</pointsize>
  285 + <weight>75</weight>
  286 + <bold>true</bold>
  287 + <underline>false</underline>
  288 + </font>
  289 + </property>
  290 + <property name="styleSheet">
  291 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  292 +color: rgb(55, 55, 55); }
  293 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  294 +QPushButton { text-align: center;}
  295 +</string>
  296 + </property>
  297 + <property name="text">
  298 + <string>콤비모드</string>
  299 + </property>
  300 + </widget>
  301 + <widget class="QPushButton" name="btnListName_4">
  302 + <property name="geometry">
  303 + <rect>
  304 + <x>0</x>
  305 + <y>285</y>
  306 + <width>375</width>
  307 + <height>58</height>
  308 + </rect>
  309 + </property>
  310 + <property name="sizePolicy">
  311 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  312 + <horstretch>0</horstretch>
  313 + <verstretch>0</verstretch>
  314 + </sizepolicy>
  315 + </property>
  316 + <property name="font">
  317 + <font>
  318 + <family>Roboto</family>
  319 + <pointsize>10</pointsize>
  320 + <weight>75</weight>
  321 + <bold>true</bold>
  322 + <underline>false</underline>
  323 + </font>
  324 + </property>
  325 + <property name="styleSheet">
  326 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  327 +color: rgb(55, 55, 55); }
  328 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  329 +QPushButton { text-align: center;}
  330 +</string>
  331 + </property>
  332 + <property name="text">
  333 + <string>세제없이헹굼</string>
  334 + </property>
  335 + </widget>
  336 + <widget class="QPushButton" name="btnListName_5">
  337 + <property name="geometry">
  338 + <rect>
  339 + <x>0</x>
  340 + <y>355</y>
  341 + <width>375</width>
  342 + <height>58</height>
  343 + </rect>
  344 + </property>
  345 + <property name="sizePolicy">
  346 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  347 + <horstretch>0</horstretch>
  348 + <verstretch>0</verstretch>
  349 + </sizepolicy>
  350 + </property>
  351 + <property name="font">
  352 + <font>
  353 + <family>Roboto</family>
  354 + <pointsize>10</pointsize>
  355 + <weight>75</weight>
  356 + <bold>true</bold>
  357 + <underline>false</underline>
  358 + </font>
  359 + </property>
  360 + <property name="styleSheet">
  361 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  362 +color: rgb(55, 55, 55); }
  363 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  364 +QPushButton { text-align: center;}
  365 +</string>
  366 + </property>
  367 + <property name="text">
  368 + <string>간이세척</string>
  369 + </property>
  370 + </widget>
  371 + <widget class="QPushButton" name="btnListName_6">
  372 + <property name="geometry">
  373 + <rect>
  374 + <x>0</x>
  375 + <y>425</y>
  376 + <width>375</width>
  377 + <height>58</height>
  378 + </rect>
  379 + </property>
  380 + <property name="sizePolicy">
  381 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  382 + <horstretch>0</horstretch>
  383 + <verstretch>0</verstretch>
  384 + </sizepolicy>
  385 + </property>
  386 + <property name="font">
  387 + <font>
  388 + <family>Roboto</family>
  389 + <pointsize>10</pointsize>
  390 + <weight>75</weight>
  391 + <bold>true</bold>
  392 + <underline>false</underline>
  393 + </font>
  394 + </property>
  395 + <property name="styleSheet">
  396 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  397 +color: rgb(55, 55, 55); }
  398 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  399 +QPushButton { text-align: center;}
  400 +</string>
  401 + </property>
  402 + <property name="text">
  403 + <string>표준세</string>
  404 + </property>
  405 + </widget>
  406 + <widget class="QPushButton" name="btnListName_7">
  407 + <property name="geometry">
  408 + <rect>
  409 + <x>0</x>
  410 + <y>495</y>
  411 + <width>375</width>
  412 + <height>58</height>
  413 + </rect>
  414 + </property>
  415 + <property name="sizePolicy">
  416 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  417 + <horstretch>0</horstretch>
  418 + <verstretch>0</verstretch>
  419 + </sizepolicy>
  420 + </property>
  421 + <property name="font">
  422 + <font>
  423 + <family>Roboto</family>
  424 + <pointsize>10</pointsize>
  425 + <weight>75</weight>
  426 + <bold>true</bold>
  427 + <underline>false</underline>
  428 + </font>
  429 + </property>
  430 + <property name="styleSheet">
  431 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  432 +color: rgb(55, 55, 55); }
  433 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  434 +QPushButton { text-align: center;}
  435 +</string>
  436 + </property>
  437 + <property name="text">
  438 + <string>강세척</string>
  439 + </property>
  440 + </widget>
  441 + <widget class="QPushButton" name="btnListName_8">
  442 + <property name="geometry">
  443 + <rect>
  444 + <x>0</x>
  445 + <y>565</y>
  446 + <width>375</width>
  447 + <height>58</height>
  448 + </rect>
  449 + </property>
  450 + <property name="sizePolicy">
  451 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  452 + <horstretch>0</horstretch>
  453 + <verstretch>0</verstretch>
  454 + </sizepolicy>
  455 + </property>
  456 + <property name="font">
  457 + <font>
  458 + <family>Roboto</family>
  459 + <pointsize>10</pointsize>
  460 + <weight>75</weight>
  461 + <bold>true</bold>
  462 + <underline>false</underline>
  463 + </font>
  464 + </property>
  465 + <property name="styleSheet">
  466 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  467 +color: rgb(55, 55, 55); }
  468 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  469 +QPushButton { text-align: center;}
  470 +</string>
  471 + </property>
  472 + <property name="text">
  473 + <string>고속세척</string>
  474 + </property>
  475 + </widget>
  476 + <widget class="QPushButton" name="btnListName_9">
  477 + <property name="geometry">
  478 + <rect>
  479 + <x>0</x>
  480 + <y>635</y>
  481 + <width>375</width>
  482 + <height>58</height>
  483 + </rect>
  484 + </property>
  485 + <property name="sizePolicy">
  486 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  487 + <horstretch>0</horstretch>
  488 + <verstretch>0</verstretch>
  489 + </sizepolicy>
  490 + </property>
  491 + <property name="font">
  492 + <font>
  493 + <family>Roboto</family>
  494 + <pointsize>10</pointsize>
  495 + <weight>75</weight>
  496 + <bold>true</bold>
  497 + <underline>false</underline>
  498 + </font>
  499 + </property>
  500 + <property name="styleSheet">
  501 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  502 +color: rgb(55, 55, 55); }
  503 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  504 +QPushButton { text-align: center;}
  505 +</string>
  506 + </property>
  507 + <property name="text">
  508 + <string>쿨다운</string>
  509 + </property>
  510 + </widget>
  511 + <widget class="QPushButton" name="btnListName_10">
  512 + <property name="geometry">
  513 + <rect>
  514 + <x>0</x>
  515 + <y>705</y>
  516 + <width>375</width>
  517 + <height>58</height>
  518 + </rect>
  519 + </property>
  520 + <property name="sizePolicy">
  521 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  522 + <horstretch>0</horstretch>
  523 + <verstretch>0</verstretch>
  524 + </sizepolicy>
  525 + </property>
  526 + <property name="font">
  527 + <font>
  528 + <family>Roboto</family>
  529 + <pointsize>10</pointsize>
  530 + <weight>75</weight>
  531 + <bold>true</bold>
  532 + <underline>false</underline>
  533 + </font>
  534 + </property>
  535 + <property name="styleSheet">
  536 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  537 +color: rgb(55, 55, 55); }
  538 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  539 +QPushButton { text-align: center;}
  540 +</string>
  541 + </property>
  542 + <property name="text">
  543 + <string>전체작동시간</string>
  544 + </property>
  545 + </widget>
  546 + <widget class="QLabel" name="m_ctrlLbListTime2">
  547 + <property name="geometry">
  548 + <rect>
  549 + <x>380</x>
  550 + <y>139</y>
  551 + <width>411</width>
  552 + <height>71</height>
  553 + </rect>
  554 + </property>
  555 + <property name="font">
  556 + <font>
  557 + <pointsize>10</pointsize>
  558 + </font>
  559 + </property>
  560 + <property name="text">
  561 + <string/>
  562 + </property>
  563 + <property name="alignment">
  564 + <set>Qt::AlignCenter</set>
  565 + </property>
  566 + </widget>
  567 + <widget class="QLabel" name="m_ctrlLbListTime3">
  568 + <property name="geometry">
  569 + <rect>
  570 + <x>380</x>
  571 + <y>209</y>
  572 + <width>411</width>
  573 + <height>71</height>
  574 + </rect>
  575 + </property>
  576 + <property name="font">
  577 + <font>
  578 + <pointsize>10</pointsize>
  579 + </font>
  580 + </property>
  581 + <property name="text">
  582 + <string/>
  583 + </property>
  584 + <property name="alignment">
  585 + <set>Qt::AlignCenter</set>
  586 + </property>
  587 + </widget>
  588 + <widget class="QLabel" name="m_ctrlLbListTime4">
  589 + <property name="geometry">
  590 + <rect>
  591 + <x>380</x>
  592 + <y>279</y>
  593 + <width>411</width>
  594 + <height>71</height>
  595 + </rect>
  596 + </property>
  597 + <property name="font">
  598 + <font>
  599 + <pointsize>10</pointsize>
  600 + </font>
  601 + </property>
  602 + <property name="text">
  603 + <string/>
  604 + </property>
  605 + <property name="alignment">
  606 + <set>Qt::AlignCenter</set>
  607 + </property>
  608 + </widget>
  609 + <widget class="QLabel" name="m_ctrlLbListTime5">
  610 + <property name="geometry">
  611 + <rect>
  612 + <x>380</x>
  613 + <y>349</y>
  614 + <width>411</width>
  615 + <height>71</height>
  616 + </rect>
  617 + </property>
  618 + <property name="font">
  619 + <font>
  620 + <pointsize>10</pointsize>
  621 + </font>
  622 + </property>
  623 + <property name="text">
  624 + <string/>
  625 + </property>
  626 + <property name="alignment">
  627 + <set>Qt::AlignCenter</set>
  628 + </property>
  629 + </widget>
  630 + <widget class="QLabel" name="m_ctrlLbListTime6">
  631 + <property name="geometry">
  632 + <rect>
  633 + <x>380</x>
  634 + <y>419</y>
  635 + <width>411</width>
  636 + <height>71</height>
  637 + </rect>
  638 + </property>
  639 + <property name="font">
  640 + <font>
  641 + <pointsize>10</pointsize>
  642 + </font>
  643 + </property>
  644 + <property name="text">
  645 + <string/>
  646 + </property>
  647 + <property name="alignment">
  648 + <set>Qt::AlignCenter</set>
  649 + </property>
  650 + </widget>
  651 + <widget class="QLabel" name="m_ctrlLbListTime7">
  652 + <property name="geometry">
  653 + <rect>
  654 + <x>380</x>
  655 + <y>489</y>
  656 + <width>411</width>
  657 + <height>71</height>
  658 + </rect>
  659 + </property>
  660 + <property name="font">
  661 + <font>
  662 + <pointsize>10</pointsize>
  663 + </font>
  664 + </property>
  665 + <property name="text">
  666 + <string/>
  667 + </property>
  668 + <property name="alignment">
  669 + <set>Qt::AlignCenter</set>
  670 + </property>
  671 + </widget>
  672 + <widget class="QLabel" name="m_ctrlLbListTime8">
  673 + <property name="geometry">
  674 + <rect>
  675 + <x>380</x>
  676 + <y>559</y>
  677 + <width>411</width>
  678 + <height>71</height>
  679 + </rect>
  680 + </property>
  681 + <property name="font">
  682 + <font>
  683 + <pointsize>10</pointsize>
  684 + </font>
  685 + </property>
  686 + <property name="text">
  687 + <string/>
  688 + </property>
  689 + <property name="alignment">
  690 + <set>Qt::AlignCenter</set>
  691 + </property>
  692 + </widget>
  693 + <widget class="QLabel" name="m_ctrlLbListTime9">
  694 + <property name="geometry">
  695 + <rect>
  696 + <x>380</x>
  697 + <y>629</y>
  698 + <width>411</width>
  699 + <height>71</height>
  700 + </rect>
  701 + </property>
  702 + <property name="font">
  703 + <font>
  704 + <pointsize>10</pointsize>
  705 + </font>
  706 + </property>
  707 + <property name="text">
  708 + <string/>
  709 + </property>
  710 + <property name="alignment">
  711 + <set>Qt::AlignCenter</set>
  712 + </property>
  713 + </widget>
  714 + <widget class="QLabel" name="m_ctrlLbListTime10">
  715 + <property name="geometry">
  716 + <rect>
  717 + <x>380</x>
  718 + <y>699</y>
  719 + <width>411</width>
  720 + <height>71</height>
  721 + </rect>
  722 + </property>
  723 + <property name="font">
  724 + <font>
  725 + <pointsize>10</pointsize>
  726 + </font>
  727 + </property>
  728 + <property name="text">
  729 + <string/>
  730 + </property>
  731 + <property name="alignment">
  732 + <set>Qt::AlignCenter</set>
  733 + </property>
  734 + </widget>
  735 + </widget>
  736 + </widget>
  737 + </widget>
  738 + <customwidgets>
  739 + <customwidget>
  740 + <class>Clock</class>
  741 + <extends>QWidget</extends>
  742 + <header>clock.h</header>
  743 + <container>1</container>
  744 + </customwidget>
  745 + </customwidgets>
  746 + <resources/>
  747 + <connections/>
  748 +</ui>
... ...
app/gui/oven_control/operationtimeparts.cpp
... ... @@ -0,0 +1,107 @@
  1 +#include <qdebug.h>
  2 +#include "operationtimeparts.h"
  3 +#include "ui_operationtimeparts.h"
  4 +#include "ovenstatics.h"
  5 +
  6 +operationTimeParts::operationTimeParts(QWidget *parent) :
  7 + QMainWindow(parent),
  8 + ui(new Ui::operationTimeParts)
  9 +{
  10 + int i=0;
  11 + OvenStatics* ovs = OvenStatics::getInstance();
  12 + ui->setupUi(this);
  13 +
  14 + m_arrTimeLabels[0] = ui->m_ctrlLbListTime_1;
  15 + m_arrTimeLabels[1] = ui->m_ctrlLbListTime_2;
  16 + m_arrTimeLabels[2] = ui->m_ctrlLbListTime_3;
  17 + m_arrTimeLabels[3] = ui->m_ctrlLbListTime_4;
  18 + m_arrTimeLabels[4] = ui->m_ctrlLbListTime_5;
  19 + m_arrTimeLabels[5] = ui->m_ctrlLbListTime_6;
  20 + m_arrTimeLabels[6] = ui->m_ctrlLbListTime_7;
  21 + m_arrTimeLabels[7] = ui->m_ctrlLbListTime_8;
  22 + m_arrTimeLabels[8] = ui->m_ctrlLbListTime_9;
  23 + m_arrTimeLabels[9] = ui->m_ctrlLbListTime_10;
  24 + m_arrTimeLabels[10] = ui->m_ctrlLbListTime_11;
  25 +
  26 + m_arrResetBtn[0] = ui->btnReset_1;
  27 + m_arrResetBtn[1] = ui->btnReset_2;
  28 + m_arrResetBtn[2] = ui->btnReset_3;
  29 + m_arrResetBtn[3] = ui->btnReset_4;
  30 + m_arrResetBtn[4] = ui->btnReset_5;
  31 + m_arrResetBtn[5] = ui->btnReset_6;
  32 + m_arrResetBtn[6] = ui->btnReset_7;
  33 + m_arrResetBtn[7] = ui->btnReset_8;
  34 + m_arrResetBtn[8] = ui->btnReset_9;
  35 + m_arrResetBtn[9] = ui->btnReset_10;
  36 + m_arrResetBtn[10] = ui->btnReset_11;
  37 +
  38 +
  39 + m_btnGrops = new QButtonGroup();
  40 +
  41 + for(i=0;i<OPERATION_TIME_CONTROL_MAX;i++){
  42 + m_btnGrops->addButton(m_arrResetBtn[i],i);
  43 + }
  44 +
  45 + connect(m_btnGrops,SIGNAL(buttonClicked(int)),this,SLOT(on_btnResets_clicked(int)));
  46 +
  47 + if(ovs != NULL){
  48 + for( i =0;i<OPERATION_TIME_PARTS_MAX_ITEM;i++){
  49 + if(m_arrPartItemIdxs[i] != 0xffff){
  50 + m_arrUseItems[i] = &(ovs->srvdatas->use_log.values[m_arrPartItemIdxs[i]]);
  51 + }
  52 + else m_arrUseItems[i] = NULL;
  53 + }
  54 + }
  55 + reloadUi();
  56 +}
  57 +
  58 +operationTimeParts::~operationTimeParts()
  59 +{
  60 + delete ui;
  61 +}
  62 +
  63 +void operationTimeParts::on_backButton_clicked()
  64 +{
  65 + deleteLater();
  66 +}
  67 +
  68 +void operationTimeParts::reloadUi(void){
  69 + uint32_t timetemp;
  70 + OvenStatics* ovs = OvenStatics::getInstance();
  71 + QString strTemp="";
  72 + int i = 0;
  73 +
  74 + if(ovs != NULL){
  75 + for(i = 0; i<OPERATION_TIME_PARTS_MAX_ITEM;i++){
  76 + if(m_arrUseItems[i] != NULL){
  77 + timetemp = *m_arrUseItems[i];
  78 + strTemp.sprintf("%d min", timetemp/60);
  79 + m_arrTimeLabels[i]->setText(strTemp);
  80 + }
  81 + else{
  82 + m_arrTimeLabels[i]->setText("-");
  83 + }
  84 + }
  85 + }
  86 + else{
  87 + for(i=0;i<OPERATION_TIME_PARTS_MAX_ITEM;i++){
  88 + m_arrTimeLabels[i]->setText("-");
  89 + }
  90 + }
  91 +}
  92 +
  93 +void operationTimeParts::on_btnReset_2_clicked()
  94 +{
  95 +
  96 +}
  97 +
  98 +void operationTimeParts::on_btnResets_clicked(int idx){
  99 + qDebug() << "PUSH BUTTON " << idx;
  100 + if(idx < OPERATION_TIME_CONTROL_MAX){
  101 + if(m_arrUseItems[idx] !=NULL){
  102 + *m_arrUseItems[idx]=0;
  103 + reloadUi();
  104 + }
  105 + }
  106 +
  107 +}
... ...
app/gui/oven_control/operationtimeparts.h
... ... @@ -0,0 +1,47 @@
  1 +#ifndef OPERATIONTIMEPARTS_H
  2 +#define OPERATIONTIMEPARTS_H
  3 +
  4 +#include <QMainWindow>
  5 +#include <qlabel.h>
  6 +#include <qbuttongroup.h>
  7 +#include <qpushbutton.h>
  8 +#include "servicedatas.h"
  9 +
  10 +#define OPERATION_TIME_CONTROL_MAX 11
  11 +#define OPERATION_TIME_PARTS_MAX_ITEM 10
  12 +
  13 +namespace Ui {
  14 +class operationTimeParts;
  15 +}
  16 +
  17 +class operationTimeParts : public QMainWindow
  18 +{
  19 + Q_OBJECT
  20 +
  21 +public:
  22 + explicit operationTimeParts(QWidget *parent = 0);
  23 + ~operationTimeParts();
  24 +
  25 +private slots:
  26 + void on_backButton_clicked();
  27 +
  28 + void on_btnReset_2_clicked();
  29 + void on_btnResets_clicked(int);
  30 +
  31 +private:
  32 + const uint16_t m_arrPartItemIdxs[OPERATION_TIME_PARTS_MAX_ITEM] = {
  33 + USE_ITEM_door_open,USE_ITEM_dv_open,USE_ITEM_ssv_open,USE_ITEM_qnv_open,USE_ITEM_snv_open,
  34 + 0xffff, USE_ITEM_ssp_open, USE_ITEM_hdm_open, USE_ITEM_dp_open, USE_ITEM_unp_open
  35 + };
  36 +
  37 +
  38 + uint32_t* m_arrUseItems[OPERATION_TIME_PARTS_MAX_ITEM];
  39 + QLabel* m_arrTimeLabels[OPERATION_TIME_CONTROL_MAX];
  40 + QPushButton* m_arrResetBtn[OPERATION_TIME_CONTROL_MAX];
  41 + QButtonGroup* m_btnGrops;
  42 +
  43 + Ui::operationTimeParts *ui;
  44 + void reloadUi(void);
  45 +};
  46 +
  47 +#endif // OPERATIONTIMEPARTS_H
... ...
app/gui/oven_control/operationtimeparts.ui
... ... @@ -0,0 +1,1051 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>operationTimeParts</class>
  4 + <widget class="QMainWindow" name="operationTimeParts">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }
  19 +#midwidget { background-image: url(:/images/config/service/operationtime_parts_bgnd.png); }</string>
  20 + </property>
  21 + <widget class="QWidget" name="centralwidget">
  22 + <property name="styleSheet">
  23 + <string notr="true"/>
  24 + </property>
  25 + <widget class="QStackedWidget" name="upperStack">
  26 + <property name="geometry">
  27 + <rect>
  28 + <x>0</x>
  29 + <y>0</y>
  30 + <width>900</width>
  31 + <height>426</height>
  32 + </rect>
  33 + </property>
  34 + <widget class="QWidget" name="clockContainer">
  35 + <property name="styleSheet">
  36 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  37 + </property>
  38 + <widget class="Clock" name="clock" native="true">
  39 + <property name="geometry">
  40 + <rect>
  41 + <x>272</x>
  42 + <y>36</y>
  43 + <width>356</width>
  44 + <height>355</height>
  45 + </rect>
  46 + </property>
  47 + </widget>
  48 + </widget>
  49 + <widget class="QWidget" name="page_2"/>
  50 + </widget>
  51 + <widget class="QLabel" name="label_15">
  52 + <property name="geometry">
  53 + <rect>
  54 + <x>55</x>
  55 + <y>426</y>
  56 + <width>1500</width>
  57 + <height>84</height>
  58 + </rect>
  59 + </property>
  60 + <property name="font">
  61 + <font>
  62 + <family>Malgun Gothic</family>
  63 + <pointsize>11</pointsize>
  64 + </font>
  65 + </property>
  66 + <property name="styleSheet">
  67 + <string notr="true">color: rgb(255, 255, 255);</string>
  68 + </property>
  69 + <property name="text">
  70 + <string>서비스단계(엔지니어모드) &gt; 작동시간 &gt; 부품</string>
  71 + </property>
  72 + </widget>
  73 + <widget class="QWidget" name="bottomBar" native="true">
  74 + <property name="geometry">
  75 + <rect>
  76 + <x>0</x>
  77 + <y>1450</y>
  78 + <width>900</width>
  79 + <height>150</height>
  80 + </rect>
  81 + </property>
  82 + <widget class="QPushButton" name="backButton">
  83 + <property name="geometry">
  84 + <rect>
  85 + <x>343</x>
  86 + <y>26</y>
  87 + <width>97</width>
  88 + <height>97</height>
  89 + </rect>
  90 + </property>
  91 + <property name="sizePolicy">
  92 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  93 + <horstretch>0</horstretch>
  94 + <verstretch>0</verstretch>
  95 + </sizepolicy>
  96 + </property>
  97 + <property name="styleSheet">
  98 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  99 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  100 + </property>
  101 + <property name="text">
  102 + <string/>
  103 + </property>
  104 + </widget>
  105 + <widget class="QPushButton" name="helpButton">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>457</x>
  109 + <y>26</y>
  110 + <width>97</width>
  111 + <height>97</height>
  112 + </rect>
  113 + </property>
  114 + <property name="sizePolicy">
  115 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  116 + <horstretch>0</horstretch>
  117 + <verstretch>0</verstretch>
  118 + </sizepolicy>
  119 + </property>
  120 + <property name="styleSheet">
  121 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/help.png); }
  122 +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</string>
  123 + </property>
  124 + <property name="text">
  125 + <string/>
  126 + </property>
  127 + </widget>
  128 + </widget>
  129 + <widget class="QWidget" name="midwidget" native="true">
  130 + <property name="geometry">
  131 + <rect>
  132 + <x>43</x>
  133 + <y>533</y>
  134 + <width>839</width>
  135 + <height>836</height>
  136 + </rect>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QLabel {
  140 + color:white;
  141 +}</string>
  142 + </property>
  143 + <widget class="QLabel" name="m_ctrlLbColName_1">
  144 + <property name="geometry">
  145 + <rect>
  146 + <x>6</x>
  147 + <y>0</y>
  148 + <width>351</width>
  149 + <height>71</height>
  150 + </rect>
  151 + </property>
  152 + <property name="text">
  153 + <string>목록</string>
  154 + </property>
  155 + <property name="alignment">
  156 + <set>Qt::AlignCenter</set>
  157 + </property>
  158 + </widget>
  159 + <widget class="QLabel" name="m_ctrlLbColName_3">
  160 + <property name="geometry">
  161 + <rect>
  162 + <x>621</x>
  163 + <y>0</y>
  164 + <width>171</width>
  165 + <height>70</height>
  166 + </rect>
  167 + </property>
  168 + <property name="text">
  169 + <string>시간</string>
  170 + </property>
  171 + <property name="alignment">
  172 + <set>Qt::AlignCenter</set>
  173 + </property>
  174 + </widget>
  175 + <widget class="QLabel" name="m_ctrlLbColName_2">
  176 + <property name="geometry">
  177 + <rect>
  178 + <x>358</x>
  179 + <y>-1</y>
  180 + <width>261</width>
  181 + <height>71</height>
  182 + </rect>
  183 + </property>
  184 + <property name="text">
  185 + <string>초기화</string>
  186 + </property>
  187 + <property name="alignment">
  188 + <set>Qt::AlignCenter</set>
  189 + </property>
  190 + </widget>
  191 + <widget class="QPushButton" name="btnReset_1">
  192 + <property name="geometry">
  193 + <rect>
  194 + <x>368</x>
  195 + <y>74</y>
  196 + <width>242</width>
  197 + <height>66</height>
  198 + </rect>
  199 + </property>
  200 + <property name="sizePolicy">
  201 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  202 + <horstretch>0</horstretch>
  203 + <verstretch>0</verstretch>
  204 + </sizepolicy>
  205 + </property>
  206 + <property name="font">
  207 + <font>
  208 + <family>Roboto</family>
  209 + <pointsize>10</pointsize>
  210 + <weight>75</weight>
  211 + <bold>true</bold>
  212 + <underline>false</underline>
  213 + </font>
  214 + </property>
  215 + <property name="styleSheet">
  216 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  217 +color: rgb(55, 55, 55); }
  218 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  219 +QPushButton { text-align: center;}
  220 +</string>
  221 + </property>
  222 + <property name="text">
  223 + <string>RESET</string>
  224 + </property>
  225 + </widget>
  226 + <widget class="QLabel" name="m_ctrlLbListTime_1">
  227 + <property name="geometry">
  228 + <rect>
  229 + <x>620</x>
  230 + <y>69</y>
  231 + <width>171</width>
  232 + <height>75</height>
  233 + </rect>
  234 + </property>
  235 + <property name="font">
  236 + <font>
  237 + <pointsize>10</pointsize>
  238 + </font>
  239 + </property>
  240 + <property name="text">
  241 + <string/>
  242 + </property>
  243 + <property name="alignment">
  244 + <set>Qt::AlignCenter</set>
  245 + </property>
  246 + </widget>
  247 + <widget class="QLabel" name="m_ctrlLbListName_1">
  248 + <property name="geometry">
  249 + <rect>
  250 + <x>0</x>
  251 + <y>69</y>
  252 + <width>357</width>
  253 + <height>75</height>
  254 + </rect>
  255 + </property>
  256 + <property name="font">
  257 + <font>
  258 + <pointsize>10</pointsize>
  259 + </font>
  260 + </property>
  261 + <property name="text">
  262 + <string>도어 OPEN</string>
  263 + </property>
  264 + <property name="alignment">
  265 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  266 + </property>
  267 + </widget>
  268 + <widget class="QLabel" name="m_ctrlLbListName_2">
  269 + <property name="geometry">
  270 + <rect>
  271 + <x>0</x>
  272 + <y>146</y>
  273 + <width>357</width>
  274 + <height>75</height>
  275 + </rect>
  276 + </property>
  277 + <property name="font">
  278 + <font>
  279 + <pointsize>10</pointsize>
  280 + </font>
  281 + </property>
  282 + <property name="text">
  283 + <string>볼밸브 OPEN</string>
  284 + </property>
  285 + <property name="alignment">
  286 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  287 + </property>
  288 + </widget>
  289 + <widget class="QLabel" name="m_ctrlLbListName_3">
  290 + <property name="geometry">
  291 + <rect>
  292 + <x>0</x>
  293 + <y>223</y>
  294 + <width>357</width>
  295 + <height>75</height>
  296 + </rect>
  297 + </property>
  298 + <property name="font">
  299 + <font>
  300 + <pointsize>10</pointsize>
  301 + </font>
  302 + </property>
  303 + <property name="text">
  304 + <string>S/G 급수 솔레노이드</string>
  305 + </property>
  306 + <property name="alignment">
  307 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  308 + </property>
  309 + </widget>
  310 + <widget class="QLabel" name="m_ctrlLbListName_4">
  311 + <property name="geometry">
  312 + <rect>
  313 + <x>0</x>
  314 + <y>299</y>
  315 + <width>357</width>
  316 + <height>75</height>
  317 + </rect>
  318 + </property>
  319 + <property name="font">
  320 + <font>
  321 + <pointsize>10</pointsize>
  322 + </font>
  323 + </property>
  324 + <property name="text">
  325 + <string>퀀칭 솔레노이드</string>
  326 + </property>
  327 + <property name="alignment">
  328 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  329 + </property>
  330 + </widget>
  331 + <widget class="QLabel" name="m_ctrlLbListName_5">
  332 + <property name="geometry">
  333 + <rect>
  334 + <x>0</x>
  335 + <y>376</y>
  336 + <width>357</width>
  337 + <height>75</height>
  338 + </rect>
  339 + </property>
  340 + <property name="font">
  341 + <font>
  342 + <pointsize>10</pointsize>
  343 + </font>
  344 + </property>
  345 + <property name="text">
  346 + <string>고내살수 노즐 솔레노이드 </string>
  347 + </property>
  348 + <property name="alignment">
  349 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  350 + </property>
  351 + </widget>
  352 + <widget class="QLabel" name="m_ctrlLbListName_6">
  353 + <property name="geometry">
  354 + <rect>
  355 + <x>0</x>
  356 + <y>452</y>
  357 + <width>357</width>
  358 + <height>75</height>
  359 + </rect>
  360 + </property>
  361 + <property name="font">
  362 + <font>
  363 + <pointsize>10</pointsize>
  364 + </font>
  365 + </property>
  366 + <property name="text">
  367 + <string>호스릴 솔레노이드</string>
  368 + </property>
  369 + <property name="alignment">
  370 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  371 + </property>
  372 + </widget>
  373 + <widget class="QLabel" name="m_ctrlLbListName_7">
  374 + <property name="geometry">
  375 + <rect>
  376 + <x>0</x>
  377 + <y>529</y>
  378 + <width>357</width>
  379 + <height>75</height>
  380 + </rect>
  381 + </property>
  382 + <property name="font">
  383 + <font>
  384 + <pointsize>10</pointsize>
  385 + </font>
  386 + </property>
  387 + <property name="text">
  388 + <string>세제공급펌프</string>
  389 + </property>
  390 + <property name="alignment">
  391 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  392 + </property>
  393 + </widget>
  394 + <widget class="QLabel" name="m_ctrlLbListName_8">
  395 + <property name="geometry">
  396 + <rect>
  397 + <x>0</x>
  398 + <y>605</y>
  399 + <width>357</width>
  400 + <height>75</height>
  401 + </rect>
  402 + </property>
  403 + <property name="font">
  404 + <font>
  405 + <pointsize>10</pointsize>
  406 + </font>
  407 + </property>
  408 + <property name="text">
  409 + <string>배습댐퍼</string>
  410 + </property>
  411 + <property name="alignment">
  412 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  413 + </property>
  414 + </widget>
  415 + <widget class="QLabel" name="m_ctrlLbListName_9">
  416 + <property name="geometry">
  417 + <rect>
  418 + <x>0</x>
  419 + <y>682</y>
  420 + <width>357</width>
  421 + <height>75</height>
  422 + </rect>
  423 + </property>
  424 + <property name="font">
  425 + <font>
  426 + <pointsize>10</pointsize>
  427 + </font>
  428 + </property>
  429 + <property name="text">
  430 + <string>소형펌프모터</string>
  431 + </property>
  432 + <property name="alignment">
  433 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  434 + </property>
  435 + </widget>
  436 + <widget class="QLabel" name="m_ctrlLbListName_10">
  437 + <property name="geometry">
  438 + <rect>
  439 + <x>0</x>
  440 + <y>759</y>
  441 + <width>357</width>
  442 + <height>75</height>
  443 + </rect>
  444 + </property>
  445 + <property name="font">
  446 + <font>
  447 + <pointsize>10</pointsize>
  448 + </font>
  449 + </property>
  450 + <property name="text">
  451 + <string>중형펌프모터</string>
  452 + </property>
  453 + <property name="alignment">
  454 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  455 + </property>
  456 + </widget>
  457 + <widget class="QLabel" name="m_ctrlLbListName_11">
  458 + <property name="geometry">
  459 + <rect>
  460 + <x>0</x>
  461 + <y>836</y>
  462 + <width>357</width>
  463 + <height>75</height>
  464 + </rect>
  465 + </property>
  466 + <property name="font">
  467 + <font>
  468 + <pointsize>10</pointsize>
  469 + </font>
  470 + </property>
  471 + <property name="text">
  472 + <string>중형펌프모터</string>
  473 + </property>
  474 + <property name="alignment">
  475 + <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
  476 + </property>
  477 + </widget>
  478 + <widget class="QPushButton" name="btnReset_2">
  479 + <property name="geometry">
  480 + <rect>
  481 + <x>368</x>
  482 + <y>151</y>
  483 + <width>242</width>
  484 + <height>66</height>
  485 + </rect>
  486 + </property>
  487 + <property name="sizePolicy">
  488 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  489 + <horstretch>0</horstretch>
  490 + <verstretch>0</verstretch>
  491 + </sizepolicy>
  492 + </property>
  493 + <property name="font">
  494 + <font>
  495 + <family>Roboto</family>
  496 + <pointsize>10</pointsize>
  497 + <weight>75</weight>
  498 + <bold>true</bold>
  499 + <underline>false</underline>
  500 + </font>
  501 + </property>
  502 + <property name="styleSheet">
  503 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  504 +color: rgb(55, 55, 55); }
  505 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  506 +QPushButton { text-align: center;}
  507 +</string>
  508 + </property>
  509 + <property name="text">
  510 + <string>RESET</string>
  511 + </property>
  512 + </widget>
  513 + <widget class="QPushButton" name="btnReset_3">
  514 + <property name="geometry">
  515 + <rect>
  516 + <x>368</x>
  517 + <y>228</y>
  518 + <width>242</width>
  519 + <height>66</height>
  520 + </rect>
  521 + </property>
  522 + <property name="sizePolicy">
  523 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  524 + <horstretch>0</horstretch>
  525 + <verstretch>0</verstretch>
  526 + </sizepolicy>
  527 + </property>
  528 + <property name="font">
  529 + <font>
  530 + <family>Roboto</family>
  531 + <pointsize>10</pointsize>
  532 + <weight>75</weight>
  533 + <bold>true</bold>
  534 + <underline>false</underline>
  535 + </font>
  536 + </property>
  537 + <property name="styleSheet">
  538 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  539 +color: rgb(55, 55, 55); }
  540 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  541 +QPushButton { text-align: center;}
  542 +</string>
  543 + </property>
  544 + <property name="text">
  545 + <string>RESET</string>
  546 + </property>
  547 + </widget>
  548 + <widget class="QPushButton" name="btnReset_4">
  549 + <property name="geometry">
  550 + <rect>
  551 + <x>368</x>
  552 + <y>305</y>
  553 + <width>242</width>
  554 + <height>66</height>
  555 + </rect>
  556 + </property>
  557 + <property name="sizePolicy">
  558 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  559 + <horstretch>0</horstretch>
  560 + <verstretch>0</verstretch>
  561 + </sizepolicy>
  562 + </property>
  563 + <property name="font">
  564 + <font>
  565 + <family>Roboto</family>
  566 + <pointsize>10</pointsize>
  567 + <weight>75</weight>
  568 + <bold>true</bold>
  569 + <underline>false</underline>
  570 + </font>
  571 + </property>
  572 + <property name="styleSheet">
  573 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  574 +color: rgb(55, 55, 55); }
  575 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  576 +QPushButton { text-align: center;}
  577 +</string>
  578 + </property>
  579 + <property name="text">
  580 + <string>RESET</string>
  581 + </property>
  582 + </widget>
  583 + <widget class="QPushButton" name="btnReset_5">
  584 + <property name="geometry">
  585 + <rect>
  586 + <x>368</x>
  587 + <y>382</y>
  588 + <width>242</width>
  589 + <height>66</height>
  590 + </rect>
  591 + </property>
  592 + <property name="sizePolicy">
  593 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  594 + <horstretch>0</horstretch>
  595 + <verstretch>0</verstretch>
  596 + </sizepolicy>
  597 + </property>
  598 + <property name="font">
  599 + <font>
  600 + <family>Roboto</family>
  601 + <pointsize>10</pointsize>
  602 + <weight>75</weight>
  603 + <bold>true</bold>
  604 + <underline>false</underline>
  605 + </font>
  606 + </property>
  607 + <property name="styleSheet">
  608 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  609 +color: rgb(55, 55, 55); }
  610 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  611 +QPushButton { text-align: center;}
  612 +</string>
  613 + </property>
  614 + <property name="text">
  615 + <string>RESET</string>
  616 + </property>
  617 + </widget>
  618 + <widget class="QPushButton" name="btnReset_6">
  619 + <property name="geometry">
  620 + <rect>
  621 + <x>368</x>
  622 + <y>459</y>
  623 + <width>242</width>
  624 + <height>66</height>
  625 + </rect>
  626 + </property>
  627 + <property name="sizePolicy">
  628 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  629 + <horstretch>0</horstretch>
  630 + <verstretch>0</verstretch>
  631 + </sizepolicy>
  632 + </property>
  633 + <property name="font">
  634 + <font>
  635 + <family>Roboto</family>
  636 + <pointsize>10</pointsize>
  637 + <weight>75</weight>
  638 + <bold>true</bold>
  639 + <underline>false</underline>
  640 + </font>
  641 + </property>
  642 + <property name="styleSheet">
  643 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  644 +color: rgb(55, 55, 55); }
  645 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  646 +QPushButton { text-align: center;}
  647 +</string>
  648 + </property>
  649 + <property name="text">
  650 + <string>RESET</string>
  651 + </property>
  652 + </widget>
  653 + <widget class="QPushButton" name="btnReset_7">
  654 + <property name="geometry">
  655 + <rect>
  656 + <x>368</x>
  657 + <y>536</y>
  658 + <width>242</width>
  659 + <height>66</height>
  660 + </rect>
  661 + </property>
  662 + <property name="sizePolicy">
  663 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  664 + <horstretch>0</horstretch>
  665 + <verstretch>0</verstretch>
  666 + </sizepolicy>
  667 + </property>
  668 + <property name="font">
  669 + <font>
  670 + <family>Roboto</family>
  671 + <pointsize>10</pointsize>
  672 + <weight>75</weight>
  673 + <bold>true</bold>
  674 + <underline>false</underline>
  675 + </font>
  676 + </property>
  677 + <property name="styleSheet">
  678 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  679 +color: rgb(55, 55, 55); }
  680 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  681 +QPushButton { text-align: center;}
  682 +</string>
  683 + </property>
  684 + <property name="text">
  685 + <string>RESET</string>
  686 + </property>
  687 + </widget>
  688 + <widget class="QPushButton" name="btnReset_8">
  689 + <property name="geometry">
  690 + <rect>
  691 + <x>368</x>
  692 + <y>613</y>
  693 + <width>242</width>
  694 + <height>66</height>
  695 + </rect>
  696 + </property>
  697 + <property name="sizePolicy">
  698 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  699 + <horstretch>0</horstretch>
  700 + <verstretch>0</verstretch>
  701 + </sizepolicy>
  702 + </property>
  703 + <property name="font">
  704 + <font>
  705 + <family>Roboto</family>
  706 + <pointsize>10</pointsize>
  707 + <weight>75</weight>
  708 + <bold>true</bold>
  709 + <underline>false</underline>
  710 + </font>
  711 + </property>
  712 + <property name="styleSheet">
  713 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  714 +color: rgb(55, 55, 55); }
  715 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  716 +QPushButton { text-align: center;}
  717 +</string>
  718 + </property>
  719 + <property name="text">
  720 + <string>RESET</string>
  721 + </property>
  722 + </widget>
  723 + <widget class="QPushButton" name="btnReset_9">
  724 + <property name="geometry">
  725 + <rect>
  726 + <x>368</x>
  727 + <y>690</y>
  728 + <width>242</width>
  729 + <height>66</height>
  730 + </rect>
  731 + </property>
  732 + <property name="sizePolicy">
  733 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  734 + <horstretch>0</horstretch>
  735 + <verstretch>0</verstretch>
  736 + </sizepolicy>
  737 + </property>
  738 + <property name="font">
  739 + <font>
  740 + <family>Roboto</family>
  741 + <pointsize>10</pointsize>
  742 + <weight>75</weight>
  743 + <bold>true</bold>
  744 + <underline>false</underline>
  745 + </font>
  746 + </property>
  747 + <property name="styleSheet">
  748 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  749 +color: rgb(55, 55, 55); }
  750 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  751 +QPushButton { text-align: center;}
  752 +</string>
  753 + </property>
  754 + <property name="text">
  755 + <string>RESET</string>
  756 + </property>
  757 + </widget>
  758 + <widget class="QPushButton" name="btnReset_10">
  759 + <property name="geometry">
  760 + <rect>
  761 + <x>368</x>
  762 + <y>767</y>
  763 + <width>242</width>
  764 + <height>66</height>
  765 + </rect>
  766 + </property>
  767 + <property name="sizePolicy">
  768 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  769 + <horstretch>0</horstretch>
  770 + <verstretch>0</verstretch>
  771 + </sizepolicy>
  772 + </property>
  773 + <property name="font">
  774 + <font>
  775 + <family>Roboto</family>
  776 + <pointsize>10</pointsize>
  777 + <weight>75</weight>
  778 + <bold>true</bold>
  779 + <underline>false</underline>
  780 + </font>
  781 + </property>
  782 + <property name="styleSheet">
  783 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  784 +color: rgb(55, 55, 55); }
  785 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  786 +QPushButton { text-align: center;}
  787 +</string>
  788 + </property>
  789 + <property name="text">
  790 + <string>RESET</string>
  791 + </property>
  792 + </widget>
  793 + <widget class="QPushButton" name="btnReset_11">
  794 + <property name="geometry">
  795 + <rect>
  796 + <x>368</x>
  797 + <y>844</y>
  798 + <width>242</width>
  799 + <height>66</height>
  800 + </rect>
  801 + </property>
  802 + <property name="sizePolicy">
  803 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  804 + <horstretch>0</horstretch>
  805 + <verstretch>0</verstretch>
  806 + </sizepolicy>
  807 + </property>
  808 + <property name="font">
  809 + <font>
  810 + <family>Roboto</family>
  811 + <pointsize>10</pointsize>
  812 + <weight>75</weight>
  813 + <bold>true</bold>
  814 + <underline>false</underline>
  815 + </font>
  816 + </property>
  817 + <property name="styleSheet">
  818 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  819 +color: rgb(55, 55, 55); }
  820 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  821 +QPushButton { text-align: center;}
  822 +</string>
  823 + </property>
  824 + <property name="text">
  825 + <string>RESET</string>
  826 + </property>
  827 + </widget>
  828 + <widget class="QLabel" name="m_ctrlLbListTime_2">
  829 + <property name="geometry">
  830 + <rect>
  831 + <x>620</x>
  832 + <y>146</y>
  833 + <width>171</width>
  834 + <height>75</height>
  835 + </rect>
  836 + </property>
  837 + <property name="font">
  838 + <font>
  839 + <pointsize>10</pointsize>
  840 + </font>
  841 + </property>
  842 + <property name="text">
  843 + <string/>
  844 + </property>
  845 + <property name="alignment">
  846 + <set>Qt::AlignCenter</set>
  847 + </property>
  848 + </widget>
  849 + <widget class="QLabel" name="m_ctrlLbListTime_3">
  850 + <property name="geometry">
  851 + <rect>
  852 + <x>620</x>
  853 + <y>223</y>
  854 + <width>171</width>
  855 + <height>75</height>
  856 + </rect>
  857 + </property>
  858 + <property name="font">
  859 + <font>
  860 + <pointsize>10</pointsize>
  861 + </font>
  862 + </property>
  863 + <property name="text">
  864 + <string/>
  865 + </property>
  866 + <property name="alignment">
  867 + <set>Qt::AlignCenter</set>
  868 + </property>
  869 + </widget>
  870 + <widget class="QLabel" name="m_ctrlLbListTime_4">
  871 + <property name="geometry">
  872 + <rect>
  873 + <x>620</x>
  874 + <y>300</y>
  875 + <width>171</width>
  876 + <height>75</height>
  877 + </rect>
  878 + </property>
  879 + <property name="font">
  880 + <font>
  881 + <pointsize>10</pointsize>
  882 + </font>
  883 + </property>
  884 + <property name="text">
  885 + <string/>
  886 + </property>
  887 + <property name="alignment">
  888 + <set>Qt::AlignCenter</set>
  889 + </property>
  890 + </widget>
  891 + <widget class="QLabel" name="m_ctrlLbListTime_5">
  892 + <property name="geometry">
  893 + <rect>
  894 + <x>620</x>
  895 + <y>377</y>
  896 + <width>171</width>
  897 + <height>75</height>
  898 + </rect>
  899 + </property>
  900 + <property name="font">
  901 + <font>
  902 + <pointsize>10</pointsize>
  903 + </font>
  904 + </property>
  905 + <property name="text">
  906 + <string/>
  907 + </property>
  908 + <property name="alignment">
  909 + <set>Qt::AlignCenter</set>
  910 + </property>
  911 + </widget>
  912 + <widget class="QLabel" name="m_ctrlLbListTime_6">
  913 + <property name="geometry">
  914 + <rect>
  915 + <x>620</x>
  916 + <y>454</y>
  917 + <width>171</width>
  918 + <height>75</height>
  919 + </rect>
  920 + </property>
  921 + <property name="font">
  922 + <font>
  923 + <pointsize>10</pointsize>
  924 + </font>
  925 + </property>
  926 + <property name="text">
  927 + <string/>
  928 + </property>
  929 + <property name="alignment">
  930 + <set>Qt::AlignCenter</set>
  931 + </property>
  932 + </widget>
  933 + <widget class="QLabel" name="m_ctrlLbListTime_7">
  934 + <property name="geometry">
  935 + <rect>
  936 + <x>620</x>
  937 + <y>531</y>
  938 + <width>171</width>
  939 + <height>75</height>
  940 + </rect>
  941 + </property>
  942 + <property name="font">
  943 + <font>
  944 + <pointsize>10</pointsize>
  945 + </font>
  946 + </property>
  947 + <property name="text">
  948 + <string/>
  949 + </property>
  950 + <property name="alignment">
  951 + <set>Qt::AlignCenter</set>
  952 + </property>
  953 + </widget>
  954 + <widget class="QLabel" name="m_ctrlLbListTime_8">
  955 + <property name="geometry">
  956 + <rect>
  957 + <x>620</x>
  958 + <y>608</y>
  959 + <width>171</width>
  960 + <height>75</height>
  961 + </rect>
  962 + </property>
  963 + <property name="font">
  964 + <font>
  965 + <pointsize>10</pointsize>
  966 + </font>
  967 + </property>
  968 + <property name="text">
  969 + <string/>
  970 + </property>
  971 + <property name="alignment">
  972 + <set>Qt::AlignCenter</set>
  973 + </property>
  974 + </widget>
  975 + <widget class="QLabel" name="m_ctrlLbListTime_9">
  976 + <property name="geometry">
  977 + <rect>
  978 + <x>620</x>
  979 + <y>685</y>
  980 + <width>171</width>
  981 + <height>75</height>
  982 + </rect>
  983 + </property>
  984 + <property name="font">
  985 + <font>
  986 + <pointsize>10</pointsize>
  987 + </font>
  988 + </property>
  989 + <property name="text">
  990 + <string/>
  991 + </property>
  992 + <property name="alignment">
  993 + <set>Qt::AlignCenter</set>
  994 + </property>
  995 + </widget>
  996 + <widget class="QLabel" name="m_ctrlLbListTime_10">
  997 + <property name="geometry">
  998 + <rect>
  999 + <x>620</x>
  1000 + <y>762</y>
  1001 + <width>171</width>
  1002 + <height>75</height>
  1003 + </rect>
  1004 + </property>
  1005 + <property name="font">
  1006 + <font>
  1007 + <pointsize>10</pointsize>
  1008 + </font>
  1009 + </property>
  1010 + <property name="text">
  1011 + <string/>
  1012 + </property>
  1013 + <property name="alignment">
  1014 + <set>Qt::AlignCenter</set>
  1015 + </property>
  1016 + </widget>
  1017 + <widget class="QLabel" name="m_ctrlLbListTime_11">
  1018 + <property name="geometry">
  1019 + <rect>
  1020 + <x>620</x>
  1021 + <y>839</y>
  1022 + <width>171</width>
  1023 + <height>75</height>
  1024 + </rect>
  1025 + </property>
  1026 + <property name="font">
  1027 + <font>
  1028 + <pointsize>10</pointsize>
  1029 + </font>
  1030 + </property>
  1031 + <property name="text">
  1032 + <string/>
  1033 + </property>
  1034 + <property name="alignment">
  1035 + <set>Qt::AlignCenter</set>
  1036 + </property>
  1037 + </widget>
  1038 + </widget>
  1039 + </widget>
  1040 + </widget>
  1041 + <customwidgets>
  1042 + <customwidget>
  1043 + <class>Clock</class>
  1044 + <extends>QWidget</extends>
  1045 + <header>clock.h</header>
  1046 + <container>1</container>
  1047 + </customwidget>
  1048 + </customwidgets>
  1049 + <resources/>
  1050 + <connections/>
  1051 +</ui>
... ...
app/gui/oven_control/oven_control.pro
... ... @@ -51,7 +51,16 @@ SOURCES += main.cpp\
51 51 define.cpp \
52 52 autocook.cpp \
53 53 keepwarmpopup.cpp \
54   - errorpopupdlg.cpp
  54 + errorpopupdlg.cpp \
  55 + servicehistorymain.cpp \
  56 + historylistwindow.cpp \
  57 + operationtimemain.cpp \
  58 + operationtimeheat.cpp \
  59 + operationtimemode.cpp \
  60 + operationtimeparts.cpp \
  61 + realtimemain.cpp \
  62 + realtimepartswindow.cpp \
  63 + realtimesensorwindow.cpp
55 64  
56 65 HEADERS += mainwindow.h \
57 66 cook.h \
... ... @@ -91,7 +100,16 @@ HEADERS += mainwindow.h \
91 100 define.h \
92 101 autocook.h \
93 102 keepwarmpopup.h \
94   - errorpopupdlg.h
  103 + errorpopupdlg.h \
  104 + servicehistorymain.h \
  105 + historylistwindow.h \
  106 + operationtimemain.h \
  107 + operationtimeheat.h \
  108 + operationtimemode.h \
  109 + operationtimeparts.h \
  110 + realtimemain.h \
  111 + realtimepartswindow.h \
  112 + realtimesensorwindow.h
95 113  
96 114 FORMS += mainwindow.ui \
97 115 manualcookwindow.ui \
... ... @@ -112,7 +130,16 @@ FORMS += mainwindow.ui \
112 130 engineermenuwindow.ui \
113 131 popupwindow.ui \
114 132 keepwarmpopup.ui \
115   - errorpopupdlg.ui
  133 + errorpopupdlg.ui \
  134 + servicehistorymain.ui \
  135 + historylistwindow.ui \
  136 + operationtimemain.ui \
  137 + operationtimeheat.ui \
  138 + operationtimemode.ui \
  139 + operationtimeparts.ui \
  140 + realtimemain.ui \
  141 + realtimepartswindow.ui \
  142 + realtimesensorwindow.ui
116 143  
117 144 RESOURCES += \
118 145 resources.qrc
... ...
app/gui/oven_control/ovenstatics.cpp
... ... @@ -7,6 +7,7 @@
7 7 #include "popupwindow.h"
8 8 #include "engineermenuwindow.h"
9 9 #include "errorpopupdlg.h"
  10 +#include "historylistwindow.h"
10 11  
11 12 OvenStatics* OvenStatics::p_singtonInstance=NULL;
12 13  
... ... @@ -17,8 +18,8 @@ OvenStatics* OvenStatics::getInstance(QObject *parent, UdpHandler* udp, Oven* ov
17 18 p_singtonInstance->udp = udp;
18 19 p_singtonInstance->oven = oven;
19 20 //for singletone event debug
20   - MainWindow* mw = (MainWindow*)parent;
21   - connect(mw->pcombiButton, SIGNAL(clicked()),p_singtonInstance, SLOT(onDataChanged()));
  21 +// MainWindow* mw = (MainWindow*)parent;
  22 +// connect(mw->pcombiButton, SIGNAL(clicked()),p_singtonInstance, SLOT(onDataChanged()));
22 23 connect(p_singtonInstance->udp , SIGNAL(changed()), p_singtonInstance, SLOT(onDataChanged()));
23 24 QTimer *timer = new QTimer(p_singtonInstance);
24 25 connect(timer, SIGNAL(timeout()),p_singtonInstance,SLOT(oneSecTimerFired()));
... ... @@ -35,11 +36,20 @@ void OvenStatics::destroy(){
35 36  
36 37 OvenStatics::OvenStatics(QObject* parent) :QObject(parent)
37 38 {
  39 + int i = 0;
38 40 curdoorstate = false;
39 41 curSysErrorState = 0;
40 42 curCommErrorState = 0;
41 43 curSensorErrorState = 0;
42 44 bDataRefreshed = false;
  45 + realdata.d32 = 0;
  46 +
  47 + for(i=0;i<MAX_LOG_SENSOR;i++){
  48 + curSensorValue[i].utemp = 0;
  49 + }
  50 +
  51 + curSensorValue[12].itemp = 100;
  52 +
43 53 srvdatas = new servicedatas();
44 54 srvdatas->loadServiceDatas();
45 55 }
... ... @@ -269,6 +279,17 @@ void OvenStatics::clearNeedErrorClear(){
269 279 }
270 280  
271 281 void OvenStatics::oneSecTimerFired(void){
  282 + static int nOneSecCnt=1;
  283 + time_t ltime;
  284 +
  285 + ltime = time(NULL);
  286 +
  287 + nOneSecCnt++;
  288 + if( (nOneSecCnt % 10) ==0 ) {
  289 + srvdatas->saveServiceDatas();
  290 + qDebug()<<"statics data saved";
  291 + }
  292 +
272 293 if(bDataRefreshed) bDataRefreshed= false;
273 294 else{
274 295 udp->fillControl(control);
... ... @@ -324,8 +345,10 @@ void OvenStatics::oneSecTimerFired(void){
324 345 srvdatas->use_log.items.cooldown_mode+=1;
325 346 }
326 347 //부품
327   - if(state.door_state ==1){
  348 + qDebug() << "door state = " <<state.door_state;
  349 + if(state.door_state !=0){
328 350 srvdatas->use_log.items.door_open+=1;
  351 + realdata.b.door_open = 1;
329 352 }
330 353 if(state.onoff_state2 !=0){
331 354 if( (state.onoff_state2 & LOAD_STATE2_DV)!=0){
... ... @@ -353,10 +376,103 @@ void OvenStatics::oneSecTimerFired(void){
353 376 srvdatas->use_log.items.unp_open+=1;
354 377 }
355 378 }
  379 +
  380 + //Real time Data Refresh
  381 +
  382 + realdata.b.door_open = state.door_state==0?0:1;
  383 + realdata.b.dv_open = (state.onoff_state2&LOAD_STATE2_DV)==0?0:1;
  384 + realdata.b.qnv_open = (state.onoff_state2&LOAD_STATE2_QNV)==0?0:1;
  385 + realdata.b.sgnv_open = (state.onoff_state2&LOAD_STATE2_SGNV)==0?0:1;
  386 + realdata.b.snv_open = (state.onoff_state2&LOAD_STATE2_SNV)==0?0:1;
  387 + realdata.b.ssp_opne = (state.onoff_state2&LOAD_STATE2_SSP)==0?0:1;
  388 + realdata.b.ssv_open = (state.onoff_state2&LOAD_STATE2_SSV)==0?0:1;
  389 + realdata.b.water_level = 0;
  390 +
  391 + if(srvdatas->sensor_log.items.B1.high_temp.itemp < state.sensor1 ){
  392 + srvdatas->sensor_log.items.B1.high_temp.itemp = state.sensor1;
  393 + srvdatas->sensor_log.items.B1.last_high_time = ltime;
  394 + }
  395 + curSensorValue[0].itemp = state.sensor1;
  396 +
  397 + if(srvdatas->sensor_log.items.B2.high_temp.itemp < state.sensor2 ){
  398 + srvdatas->sensor_log.items.B2.high_temp.itemp = state.sensor2;
  399 + srvdatas->sensor_log.items.B2.last_high_time = ltime;
  400 + }
  401 + curSensorValue[1].itemp = state.sensor2;
  402 +
  403 + if(srvdatas->sensor_log.items.B3_1.high_temp.itemp < state.sensor6 ){
  404 + srvdatas->sensor_log.items.B3_1.high_temp.itemp = state.sensor6;
  405 + srvdatas->sensor_log.items.B3_1.last_high_time = ltime;
  406 + }
  407 + curSensorValue[5].itemp = state.sensor6;
  408 +
  409 + if(srvdatas->sensor_log.items.B4.high_temp.itemp < state.sensor4 ){
  410 + srvdatas->sensor_log.items.B4.high_temp.itemp = state.sensor4;
  411 + srvdatas->sensor_log.items.B4.last_high_time = ltime;
  412 + }
  413 + curSensorValue[3].itemp = state.sensor4;
  414 +
  415 + if(srvdatas->sensor_log.items.B5.high_temp.itemp < state.sensor5 ){
  416 + srvdatas->sensor_log.items.B5.high_temp.itemp = state.sensor5;
  417 + srvdatas->sensor_log.items.B5.last_high_time = ltime;
  418 + }
  419 + curSensorValue[4].itemp = state.sensor5;
  420 +
  421 + if(srvdatas->sensor_log.items.B3_2.high_temp.itemp < state.sensor7 ){
  422 + srvdatas->sensor_log.items.B3_2.high_temp.itemp = state.sensor7;
  423 + srvdatas->sensor_log.items.B3_2.last_high_time = ltime;
  424 + }
  425 + curSensorValue[6].itemp = state.sensor7;
  426 +
  427 + if(srvdatas->sensor_log.items.B3_3.high_temp.itemp < state.sensor8 ){
  428 + srvdatas->sensor_log.items.B3_3.high_temp.itemp = state.sensor8;
  429 + srvdatas->sensor_log.items.B3_3.last_high_time = ltime;
  430 + }
  431 + curSensorValue[7].itemp = state.sensor8;
  432 +
  433 + if(srvdatas->sensor_log.items.B3_4.high_temp.itemp < state.sensor9 ){
  434 + srvdatas->sensor_log.items.B3_4.high_temp.itemp = state.sensor9;
  435 + srvdatas->sensor_log.items.B3_4.last_high_time = ltime;
  436 + }
  437 + curSensorValue[8].itemp = state.sensor9;
  438 +
  439 + if(srvdatas->sensor_log.items.mbar1.high_temp.utemp < state.sensor11 ){
  440 + srvdatas->sensor_log.items.mbar1.high_temp.utemp = state.sensor11;
  441 + srvdatas->sensor_log.items.mbar1.last_high_time = ltime;
  442 + }
  443 + curSensorValue[10].utemp = state.sensor11;
  444 + if(srvdatas->sensor_log.items.mbar2.high_temp.utemp < state.sensor12 ){
  445 + srvdatas->sensor_log.items.mbar2.high_temp.utemp = state.sensor12;
  446 + srvdatas->sensor_log.items.mbar2.last_high_time = ltime;
  447 + }
  448 + curSensorValue[11].utemp = state.sensor12;
  449 +
  450 + if(srvdatas->sensor_log.items.pcb.high_temp.itemp < state.sensor13 ){
  451 + srvdatas->sensor_log.items.pcb.high_temp.itemp = state.sensor13;
  452 + srvdatas->sensor_log.items.pcb.last_high_time = ltime;
  453 + }
  454 + curSensorValue[12].itemp = state.sensor13;
  455 +
  456 + if(srvdatas->sensor_log.items.adc.high_temp.itemp < state.sensor14 ){
  457 + srvdatas->sensor_log.items.adc.high_temp.itemp = state.sensor14;
  458 + srvdatas->sensor_log.items.adc.last_high_time = ltime;
  459 + }
  460 + curSensorValue[13].itemp = state.sensor14;
  461 +
  462 +
  463 +
  464 +
356 465 }
357 466  
358 467 void OvenStatics::processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc, time_t ltime){
359 468  
  469 + if(m_pLastErrItem == item ){
  470 + srvdatas->err_log.items.repeat_error.fired_cnt =item->fired_cnt;
  471 + srvdatas->err_log.items.repeat_error.first_fired = item->first_fired;
  472 + srvdatas->err_log.items.repeat_error.last_fried = item->last_fried;
  473 + }
  474 + m_pLastErrItem = item;
  475 +
360 476 if(errtype >= error_type_onlychk){
361 477 item->fired_cnt+=1;
362 478 if(item->first_fired == 0) item->first_fired = ltime;
... ... @@ -395,3 +511,16 @@ void OvenStatics::processErrorItems(error_item *item, error_exe_type errtype, co
395 511 }
396 512  
397 513 }
  514 +
  515 +realtime_data OvenStatics::getPartsRealtimeData(void){
  516 + return realdata;
  517 +}
  518 +
  519 +uint8_t OvenStatics::getSensorTypeByIdx(uint16_t idx){
  520 + if(idx > MAX_LOG_SENSOR) return 0;
  521 + return sensorTypeInfo[idx];
  522 +}
  523 +
  524 +type_temp OvenStatics::getCurSensorValueByIdx(uint16_t idx){
  525 + return curSensorValue[idx];
  526 +}
... ...
app/gui/oven_control/ovenstatics.h
... ... @@ -47,7 +47,7 @@
47 47 #define LOAD_STATE1_CONVEC_FAN1 0x0040
48 48 #define LOAD_STATE1_CONVEC_FAN2 0x0080
49 49  
50   -#define LOAD_STATE2_DV 0x0001
  50 +/*#define LOAD_STATE2_DV 0x0001
51 51 #define LOAD_STATE2_CFAN 0x0002
52 52 #define LOAD_STATE2_WSV 0x0004
53 53 #define LOAD_STATE2_QNV 0x0008
... ... @@ -62,7 +62,22 @@
62 62 #define LOAD_STATE2_HT1 0x1000
63 63 #define LOAD_STATE2_HT2 0x2000
64 64 #define LOAD_STATE2_HDM 0x4000
65   -#define LOAD_STATE2_ST1 0x8000
  65 +#define LOAD_STATE2_ST1 0x8000*/
  66 +
  67 +
  68 +
  69 +#define LOAD_STATE2_DV 0x0001
  70 +#define LOAD_STATE2_CFAN 0x0002
  71 +#define LOAD_STATE2_WSV 0x0004
  72 +#define LOAD_STATE2_QNV 0x0008
  73 +#define LOAD_STATE2_SSV 0x0010
  74 +#define LOAD_STATE2_SNV 0x0020
  75 +#define LOAD_STATE2_HL 0x0040
  76 +#define LOAD_STATE2_DP 0x0080
  77 +#define LOAD_STATE2_SSP 0x0100
  78 +#define LOAD_STATE2_UNP 0x0200
  79 +#define LOAD_STATE2_HDM 0x0400
  80 +#define LOAD_STATE2_SGNV 0x0800
66 81  
67 82 enum sys_state_type{
68 83 SYS_OFF_COOK_OFF=0,
... ... @@ -127,14 +142,37 @@ enum wash_mode_type{
127 142 wash_mode_highspeed
128 143 };
129 144  
  145 +
  146 +typedef union
  147 +{
  148 + uint32_t d32;
  149 + struct
  150 + {
  151 + uint32_t reserved : 9;
  152 + uint32_t door_open : 1;
  153 + uint32_t ssp_opne : 1;
  154 + uint32_t dv_open : 1;
  155 + uint32_t sgnv_open : 1;
  156 + uint32_t water_level : 16;
  157 + uint32_t snv_open : 1;
  158 + uint32_t qnv_open : 1;
  159 + uint32_t ssv_open : 1;
  160 + }b;
  161 +}realtime_data;
  162 +
130 163 class OvenStatics : public QObject
131 164 {
132 165 Q_OBJECT
133 166 public:
  167 + servicedatas* srvdatas;
  168 +
134 169 static OvenStatics* getInstance(QObject* parent = 0,UdpHandler * udp=0, Oven* oven=0);
135 170 static void destroy();
136 171 bool getNeedErrorClear();
137 172 void clearNeedErrorClear();
  173 + realtime_data getPartsRealtimeData(void);
  174 + uint8_t getSensorTypeByIdx(uint16_t idx);
  175 + type_temp getCurSensorValueByIdx(uint16_t idx);
138 176  
139 177 private:
140 178  
... ... @@ -167,7 +205,12 @@ private:
167 205 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
168 206 };
169 207  
  208 + const uint8_t sensorTypeInfo[MAX_LOG_SENSOR] = {
  209 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  210 + 1, 1, 2, 0, 1, 1
  211 + }; //Type 2 is /10 value;
170 212  
  213 + type_temp curSensorValue[MAX_LOG_SENSOR];
171 214  
172 215  
173 216 static OvenStatics* p_singtonInstance;
... ... @@ -175,7 +218,8 @@ private:
175 218 Oven* oven;
176 219 oven_control_t control;
177 220 oven_state_t state;
178   - servicedatas* srvdatas;
  221 + error_item* m_pLastErrItem;
  222 +
179 223  
180 224  
181 225 bool curdoorstate;
... ... @@ -184,6 +228,7 @@ private:
184 228 uint16_t curSensorErrorState;
185 229 bool bNeedErrorClear;
186 230 bool bDataRefreshed;
  231 + realtime_data realdata;
187 232 explicit OvenStatics(QObject* parent);
188 233 ~OvenStatics();
189 234 void processSystemError(uint16_t errflag,time_t ltime);
... ... @@ -191,6 +236,7 @@ private:
191 236 void processSensorError(uint16_t errflag, time_t ltime);
192 237 void processErrorItems(error_item *item, error_exe_type errtype, const QString &MsgDesc, time_t ltime);
193 238  
  239 +
194 240 public slots:
195 241 void onDataChanged();
196 242 void oneSecTimerFired(void);
... ...
app/gui/oven_control/realtimemain.cpp
... ... @@ -0,0 +1,35 @@
  1 +#include "realtimemain.h"
  2 +#include "ui_realtimemain.h"
  3 +#include "realtimepartswindow.h"
  4 +#include "realtimesensorwindow.h"
  5 +
  6 +realtimeMain::realtimeMain(QWidget *parent) :
  7 + QMainWindow(parent),
  8 + ui(new Ui::realtimeMain)
  9 +{
  10 + ui->setupUi(this);
  11 +}
  12 +
  13 +realtimeMain::~realtimeMain()
  14 +{
  15 + delete ui;
  16 +}
  17 +
  18 +void realtimeMain::on_btnPartsReal_clicked()
  19 +{
  20 + realtimePartsWindow* w = new realtimePartsWindow(this);
  21 + w->setWindowModality(Qt::WindowModal);
  22 + w->showFullScreen();
  23 +}
  24 +
  25 +void realtimeMain::on_btnTemperatureReal_clicked()
  26 +{
  27 + realtimeSensorWindow* w = new realtimeSensorWindow(this);
  28 + w->setWindowModality(Qt::WindowModal);
  29 + w->showFullScreen();
  30 +}
  31 +
  32 +void realtimeMain::on_backButton_clicked()
  33 +{
  34 + deleteLater();
  35 +}
... ...
app/gui/oven_control/realtimemain.h
... ... @@ -0,0 +1,29 @@
  1 +#ifndef REALTIMEMAIN_H
  2 +#define REALTIMEMAIN_H
  3 +
  4 +#include <QMainWindow>
  5 +
  6 +namespace Ui {
  7 +class realtimeMain;
  8 +}
  9 +
  10 +class realtimeMain : public QMainWindow
  11 +{
  12 + Q_OBJECT
  13 +
  14 +public:
  15 + explicit realtimeMain(QWidget *parent = 0);
  16 + ~realtimeMain();
  17 +
  18 +private slots:
  19 + void on_btnPartsReal_clicked();
  20 +
  21 + void on_btnTemperatureReal_clicked();
  22 +
  23 + void on_backButton_clicked();
  24 +
  25 +private:
  26 + Ui::realtimeMain *ui;
  27 +};
  28 +
  29 +#endif // REALTIMEMAIN_H
... ...
app/gui/oven_control/realtimemain.ui
... ... @@ -0,0 +1,285 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>realtimeMain</class>
  4 + <widget class="QMainWindow" name="realtimeMain">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }</string>
  19 + </property>
  20 + <widget class="QWidget" name="centralwidget">
  21 + <property name="styleSheet">
  22 + <string notr="true"/>
  23 + </property>
  24 + <widget class="QStackedWidget" name="upperStack">
  25 + <property name="geometry">
  26 + <rect>
  27 + <x>0</x>
  28 + <y>0</y>
  29 + <width>900</width>
  30 + <height>426</height>
  31 + </rect>
  32 + </property>
  33 + <widget class="QWidget" name="clockContainer">
  34 + <property name="styleSheet">
  35 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  36 + </property>
  37 + <widget class="Clock" name="clock" native="true">
  38 + <property name="geometry">
  39 + <rect>
  40 + <x>272</x>
  41 + <y>36</y>
  42 + <width>356</width>
  43 + <height>355</height>
  44 + </rect>
  45 + </property>
  46 + </widget>
  47 + </widget>
  48 + <widget class="QWidget" name="page_2"/>
  49 + </widget>
  50 + <widget class="QLabel" name="label_15">
  51 + <property name="geometry">
  52 + <rect>
  53 + <x>55</x>
  54 + <y>426</y>
  55 + <width>900</width>
  56 + <height>84</height>
  57 + </rect>
  58 + </property>
  59 + <property name="font">
  60 + <font>
  61 + <family>Malgun Gothic</family>
  62 + <pointsize>11</pointsize>
  63 + </font>
  64 + </property>
  65 + <property name="styleSheet">
  66 + <string notr="true">color: rgb(255, 255, 255);</string>
  67 + </property>
  68 + <property name="text">
  69 + <string>서비스단계(엔지니어모드) &gt; 실시간데이터</string>
  70 + </property>
  71 + </widget>
  72 + <widget class="QWidget" name="bottomBar" native="true">
  73 + <property name="geometry">
  74 + <rect>
  75 + <x>0</x>
  76 + <y>1450</y>
  77 + <width>900</width>
  78 + <height>150</height>
  79 + </rect>
  80 + </property>
  81 + <widget class="QPushButton" name="backButton">
  82 + <property name="geometry">
  83 + <rect>
  84 + <x>401</x>
  85 + <y>26</y>
  86 + <width>97</width>
  87 + <height>97</height>
  88 + </rect>
  89 + </property>
  90 + <property name="sizePolicy">
  91 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  92 + <horstretch>0</horstretch>
  93 + <verstretch>0</verstretch>
  94 + </sizepolicy>
  95 + </property>
  96 + <property name="styleSheet">
  97 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  98 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  99 + </property>
  100 + <property name="text">
  101 + <string/>
  102 + </property>
  103 + </widget>
  104 + </widget>
  105 + <widget class="QWidget" name="gridLayoutWidget">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>40</x>
  109 + <y>545</y>
  110 + <width>821</width>
  111 + <height>66</height>
  112 + </rect>
  113 + </property>
  114 + <layout class="QGridLayout" name="gridLayout" columnstretch="67,33">
  115 + <property name="spacing">
  116 + <number>0</number>
  117 + </property>
  118 + <item row="0" column="0" colspan="2">
  119 + <widget class="QPushButton" name="button">
  120 + <property name="enabled">
  121 + <bool>false</bool>
  122 + </property>
  123 + <property name="sizePolicy">
  124 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  125 + <horstretch>0</horstretch>
  126 + <verstretch>0</verstretch>
  127 + </sizepolicy>
  128 + </property>
  129 + <property name="font">
  130 + <font>
  131 + <family>Roboto</family>
  132 + <pointsize>10</pointsize>
  133 + <weight>75</weight>
  134 + <bold>true</bold>
  135 + <underline>false</underline>
  136 + </font>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png);color: rgb(255, 255, 255); }
  140 +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
  141 +QPushButton { text-align: left;}
  142 +</string>
  143 + </property>
  144 + <property name="text">
  145 + <string> 실시간데이터</string>
  146 + </property>
  147 + </widget>
  148 + </item>
  149 + <item row="0" column="1">
  150 + <widget class="QLabel" name="label_17">
  151 + <property name="enabled">
  152 + <bool>true</bool>
  153 + </property>
  154 + <property name="font">
  155 + <font>
  156 + <family>Malgun Gothic</family>
  157 + <pointsize>11</pointsize>
  158 + <weight>75</weight>
  159 + <bold>true</bold>
  160 + </font>
  161 + </property>
  162 + <property name="styleSheet">
  163 + <string notr="true">color: rgb(255, 255, 255);</string>
  164 + </property>
  165 + <property name="text">
  166 + <string>EM-5</string>
  167 + </property>
  168 + <property name="alignment">
  169 + <set>Qt::AlignCenter</set>
  170 + </property>
  171 + <property name="margin">
  172 + <number>0</number>
  173 + </property>
  174 + </widget>
  175 + </item>
  176 + </layout>
  177 + </widget>
  178 + <widget class="QPushButton" name="btnPartsReal">
  179 + <property name="geometry">
  180 + <rect>
  181 + <x>124</x>
  182 + <y>634</y>
  183 + <width>381</width>
  184 + <height>65</height>
  185 + </rect>
  186 + </property>
  187 + <property name="sizePolicy">
  188 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  189 + <horstretch>0</horstretch>
  190 + <verstretch>0</verstretch>
  191 + </sizepolicy>
  192 + </property>
  193 + <property name="font">
  194 + <font>
  195 + <family>Roboto</family>
  196 + <pointsize>10</pointsize>
  197 + <weight>75</weight>
  198 + <bold>true</bold>
  199 + <underline>false</underline>
  200 + </font>
  201 + </property>
  202 + <property name="styleSheet">
  203 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  204 +color: rgb(55, 55, 55); }
  205 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  206 +QPushButton { text-align: center;}
  207 +</string>
  208 + </property>
  209 + <property name="text">
  210 + <string>구성품</string>
  211 + </property>
  212 + </widget>
  213 + <widget class="QPushButton" name="btnTemperatureReal">
  214 + <property name="geometry">
  215 + <rect>
  216 + <x>124</x>
  217 + <y>720</y>
  218 + <width>381</width>
  219 + <height>65</height>
  220 + </rect>
  221 + </property>
  222 + <property name="sizePolicy">
  223 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  224 + <horstretch>0</horstretch>
  225 + <verstretch>0</verstretch>
  226 + </sizepolicy>
  227 + </property>
  228 + <property name="font">
  229 + <font>
  230 + <family>Roboto</family>
  231 + <pointsize>10</pointsize>
  232 + <weight>75</weight>
  233 + <bold>true</bold>
  234 + <underline>false</underline>
  235 + </font>
  236 + </property>
  237 + <property name="styleSheet">
  238 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  239 +color: rgb(55, 55, 55); }
  240 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  241 +QPushButton { text-align: center;}
  242 +</string>
  243 + </property>
  244 + <property name="text">
  245 + <string>온도센서</string>
  246 + </property>
  247 + </widget>
  248 + <widget class="QLabel" name="label">
  249 + <property name="geometry">
  250 + <rect>
  251 + <x>100</x>
  252 + <y>606</y>
  253 + <width>28</width>
  254 + <height>151</height>
  255 + </rect>
  256 + </property>
  257 + <property name="text">
  258 + <string/>
  259 + </property>
  260 + <property name="pixmap">
  261 + <pixmap resource="resources.qrc">:/images/config/service/realtime_menu_line.png</pixmap>
  262 + </property>
  263 + </widget>
  264 + <zorder>label</zorder>
  265 + <zorder>upperStack</zorder>
  266 + <zorder>label_15</zorder>
  267 + <zorder>bottomBar</zorder>
  268 + <zorder>gridLayoutWidget</zorder>
  269 + <zorder>btnPartsReal</zorder>
  270 + <zorder>btnTemperatureReal</zorder>
  271 + </widget>
  272 + </widget>
  273 + <customwidgets>
  274 + <customwidget>
  275 + <class>Clock</class>
  276 + <extends>QWidget</extends>
  277 + <header>clock.h</header>
  278 + <container>1</container>
  279 + </customwidget>
  280 + </customwidgets>
  281 + <resources>
  282 + <include location="resources.qrc"/>
  283 + </resources>
  284 + <connections/>
  285 +</ui>
... ...
app/gui/oven_control/realtimepartswindow.cpp
... ... @@ -0,0 +1,99 @@
  1 +#include "realtimepartswindow.h"
  2 +#include "ui_realtimepartswindow.h"
  3 +#include "ovenstatics.h"
  4 +
  5 +realtimePartsWindow::realtimePartsWindow(QWidget *parent) :
  6 + QMainWindow(parent),
  7 + ui(new Ui::realtimePartsWindow)
  8 +{
  9 + ui->setupUi(this);
  10 +
  11 +// for(i=0;i<CONTROL_LIST_COL_MAX;i++){
  12 +// for(j=0;i<CONTROL_LIST_ITEM_MAX;j++){
  13 +// m_arrLbState[i][j]=NULL;
  14 +// }
  15 +// }
  16 +
  17 + m_arrLbState[0][0] = ui->m_ctrlLbListState_1_1;
  18 + m_arrLbState[0][1] = ui->m_ctrlLbListState_1_2;
  19 + m_arrLbState[0][2] = ui->m_ctrlLbListState_1_3;
  20 + m_arrLbState[0][3] = ui->m_ctrlLbListState_1_4;
  21 + m_arrLbState[0][4] = ui->m_ctrlLbListState_1_5;
  22 + m_arrLbState[0][5] = ui->m_ctrlLbListState_1_6;
  23 + m_arrLbState[0][6] = ui->m_ctrlLbListState_1_7;
  24 + m_arrLbState[0][7] = ui->m_ctrlLbListState_1_8;
  25 +
  26 + m_arrLbState[1][0] = ui->m_ctrlLbListState_2_1;
  27 + m_arrLbState[1][1] = ui->m_ctrlLbListState_2_2;
  28 + m_arrLbState[1][2] = ui->m_ctrlLbListState_2_3;
  29 + m_arrLbState[1][3] = ui->m_ctrlLbListState_2_4;
  30 + m_arrLbState[1][4] = ui->m_ctrlLbListState_2_5;
  31 + m_arrLbState[1][5] = ui->m_ctrlLbListState_2_6;
  32 + m_arrLbState[1][6] = ui->m_ctrlLbListState_2_7;
  33 + m_arrLbState[1][7] = ui->m_ctrlLbListState_2_8;
  34 +
  35 + m_arrLbState[2][0] = ui->m_ctrlLbListState_3_1;
  36 + m_arrLbState[2][1] = ui->m_ctrlLbListState_3_2;
  37 + m_arrLbState[2][2] = ui->m_ctrlLbListState_3_3;
  38 + m_arrLbState[2][3] = ui->m_ctrlLbListState_3_4;
  39 + m_arrLbState[2][4] = ui->m_ctrlLbListState_3_5;
  40 + m_arrLbState[2][5] = ui->m_ctrlLbListState_3_6;
  41 + m_arrLbState[2][6] = ui->m_ctrlLbListState_3_7;
  42 + m_arrLbState[2][7] = ui->m_ctrlLbListState_3_8;
  43 +
  44 +
  45 + reloadUi();
  46 +
  47 +}
  48 +
  49 +realtimePartsWindow::~realtimePartsWindow()
  50 +{
  51 + delete ui;
  52 +}
  53 +
  54 +void realtimePartsWindow::on_backButton_clicked()
  55 +{
  56 + deleteLater();
  57 +}
  58 +
  59 +void realtimePartsWindow::reloadUi(void){
  60 + OvenStatics* ovs = OvenStatics::getInstance();
  61 + QString strTemp = "";
  62 + int i = 0,j=0;
  63 + realtime_data realdata;
  64 + if(ovs != NULL){
  65 + realdata = ovs->getPartsRealtimeData();
  66 + }
  67 +
  68 + if(realdata.b.ssv_open) ui->m_ctrlLbListState_1_1->setText(tr("ON"));
  69 + else ui->m_ctrlLbListState_1_1->setText(tr("OFF"));
  70 +
  71 + if(realdata.b.qnv_open) ui->m_ctrlLbListState_1_2->setText(tr("ON"));
  72 + else ui->m_ctrlLbListState_1_2->setText(tr("OFF"));
  73 +
  74 + if(realdata.b.snv_open) ui->m_ctrlLbListState_1_3->setText(tr("ON"));
  75 + else ui->m_ctrlLbListState_1_3->setText(tr("OFF"));
  76 +
  77 + strTemp.sprintf("%d",realdata.b.water_level);
  78 + ui->m_ctrlLbListState_1_4->setText(strTemp);
  79 +
  80 + if(realdata.b.sgnv_open) ui->m_ctrlLbListState_1_5->setText(tr("ON"));
  81 + else ui->m_ctrlLbListState_1_5->setText(tr("OFF"));
  82 +
  83 + if(realdata.b.dv_open) ui->m_ctrlLbListState_1_6->setText(tr("ON"));
  84 + else ui->m_ctrlLbListState_1_6->setText(tr("OFF"));
  85 +
  86 + if(realdata.b.ssp_opne) ui->m_ctrlLbListState_1_7->setText(tr("ON"));
  87 + else ui->m_ctrlLbListState_1_7->setText(tr("OFF"));
  88 +
  89 + if(realdata.b.door_open) ui->m_ctrlLbListState_1_8->setText(tr("ON"));
  90 + else ui->m_ctrlLbListState_1_8->setText(tr("OFF"));
  91 +
  92 +
  93 + for(i=1;i<CONTROL_LIST_COL_MAX;i++){
  94 + for(j=0;j<CONTROL_LIST_ITEM_MAX;j++){
  95 + m_arrLbState[i][j]->setText("-");
  96 + }
  97 + }
  98 +
  99 +}
... ...
app/gui/oven_control/realtimepartswindow.h
... ... @@ -0,0 +1,33 @@
  1 +#ifndef REALTIMEPARTSWINDOW_H
  2 +#define REALTIMEPARTSWINDOW_H
  3 +
  4 +#include <QMainWindow>
  5 +#include <qlabel.h>
  6 +
  7 +#define CONTROL_LIST_COL_MAX 3
  8 +#define CONTROL_LIST_ITEM_MAX 8
  9 +
  10 +
  11 +namespace Ui {
  12 +class realtimePartsWindow;
  13 +}
  14 +
  15 +class realtimePartsWindow : public QMainWindow
  16 +{
  17 + Q_OBJECT
  18 +
  19 +public:
  20 + explicit realtimePartsWindow(QWidget *parent = 0);
  21 + ~realtimePartsWindow();
  22 +
  23 +private slots:
  24 + void on_backButton_clicked();
  25 +
  26 +private:
  27 + Ui::realtimePartsWindow *ui;
  28 + QLabel *m_arrLbState[CONTROL_LIST_COL_MAX][CONTROL_LIST_ITEM_MAX];
  29 +
  30 + void reloadUi(void);
  31 +};
  32 +
  33 +#endif // REALTIMEPARTSWINDOW_H
... ...
app/gui/oven_control/realtimepartswindow.ui
... ... @@ -0,0 +1,1004 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>realtimePartsWindow</class>
  4 + <widget class="QMainWindow" name="realtimePartsWindow">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }
  19 +#midwidget { background-image: url(:/images/config/service/realtime_parts_bgnd.png); }</string>
  20 + </property>
  21 + <widget class="QWidget" name="centralwidget">
  22 + <property name="styleSheet">
  23 + <string notr="true"/>
  24 + </property>
  25 + <widget class="QStackedWidget" name="upperStack">
  26 + <property name="geometry">
  27 + <rect>
  28 + <x>0</x>
  29 + <y>0</y>
  30 + <width>900</width>
  31 + <height>426</height>
  32 + </rect>
  33 + </property>
  34 + <widget class="QWidget" name="clockContainer">
  35 + <property name="styleSheet">
  36 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  37 + </property>
  38 + <widget class="Clock" name="clock" native="true">
  39 + <property name="geometry">
  40 + <rect>
  41 + <x>272</x>
  42 + <y>36</y>
  43 + <width>356</width>
  44 + <height>355</height>
  45 + </rect>
  46 + </property>
  47 + </widget>
  48 + </widget>
  49 + <widget class="QWidget" name="page_2"/>
  50 + </widget>
  51 + <widget class="QLabel" name="label_15">
  52 + <property name="geometry">
  53 + <rect>
  54 + <x>55</x>
  55 + <y>426</y>
  56 + <width>1500</width>
  57 + <height>84</height>
  58 + </rect>
  59 + </property>
  60 + <property name="font">
  61 + <font>
  62 + <family>Malgun Gothic</family>
  63 + <pointsize>11</pointsize>
  64 + </font>
  65 + </property>
  66 + <property name="styleSheet">
  67 + <string notr="true">color: rgb(255, 255, 255);</string>
  68 + </property>
  69 + <property name="text">
  70 + <string>서비스단계(엔지니어모드) &gt; 실시간데이터 &gt; 구성품</string>
  71 + </property>
  72 + </widget>
  73 + <widget class="QWidget" name="bottomBar" native="true">
  74 + <property name="geometry">
  75 + <rect>
  76 + <x>0</x>
  77 + <y>1450</y>
  78 + <width>900</width>
  79 + <height>150</height>
  80 + </rect>
  81 + </property>
  82 + <widget class="QPushButton" name="backButton">
  83 + <property name="geometry">
  84 + <rect>
  85 + <x>343</x>
  86 + <y>26</y>
  87 + <width>97</width>
  88 + <height>97</height>
  89 + </rect>
  90 + </property>
  91 + <property name="sizePolicy">
  92 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  93 + <horstretch>0</horstretch>
  94 + <verstretch>0</verstretch>
  95 + </sizepolicy>
  96 + </property>
  97 + <property name="styleSheet">
  98 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  99 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  100 + </property>
  101 + <property name="text">
  102 + <string/>
  103 + </property>
  104 + </widget>
  105 + <widget class="QPushButton" name="helpButton">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>457</x>
  109 + <y>26</y>
  110 + <width>97</width>
  111 + <height>97</height>
  112 + </rect>
  113 + </property>
  114 + <property name="sizePolicy">
  115 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  116 + <horstretch>0</horstretch>
  117 + <verstretch>0</verstretch>
  118 + </sizepolicy>
  119 + </property>
  120 + <property name="styleSheet">
  121 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/help.png); }
  122 +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</string>
  123 + </property>
  124 + <property name="text">
  125 + <string/>
  126 + </property>
  127 + </widget>
  128 + </widget>
  129 + <widget class="QWidget" name="midwidget" native="true">
  130 + <property name="geometry">
  131 + <rect>
  132 + <x>62</x>
  133 + <y>532</y>
  134 + <width>793</width>
  135 + <height>848</height>
  136 + </rect>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QLabel {
  140 + color:white;
  141 +}</string>
  142 + </property>
  143 + <widget class="QLabel" name="m_ctrlLbCol1Name">
  144 + <property name="geometry">
  145 + <rect>
  146 + <x>4</x>
  147 + <y>0</y>
  148 + <width>301</width>
  149 + <height>71</height>
  150 + </rect>
  151 + </property>
  152 + <property name="text">
  153 + <string>목록</string>
  154 + </property>
  155 + <property name="alignment">
  156 + <set>Qt::AlignCenter</set>
  157 + </property>
  158 + </widget>
  159 + <widget class="QLabel" name="m_ctrlLbCol2Name">
  160 + <property name="geometry">
  161 + <rect>
  162 + <x>309</x>
  163 + <y>0</y>
  164 + <width>161</width>
  165 + <height>70</height>
  166 + </rect>
  167 + </property>
  168 + <property name="text">
  169 + <string>상태</string>
  170 + </property>
  171 + <property name="alignment">
  172 + <set>Qt::AlignCenter</set>
  173 + </property>
  174 + </widget>
  175 + <widget class="QPushButton" name="btnListName">
  176 + <property name="geometry">
  177 + <rect>
  178 + <x>0</x>
  179 + <y>87</y>
  180 + <width>300</width>
  181 + <height>62</height>
  182 + </rect>
  183 + </property>
  184 + <property name="sizePolicy">
  185 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  186 + <horstretch>0</horstretch>
  187 + <verstretch>0</verstretch>
  188 + </sizepolicy>
  189 + </property>
  190 + <property name="font">
  191 + <font>
  192 + <family>Roboto</family>
  193 + <pointsize>10</pointsize>
  194 + <weight>75</weight>
  195 + <bold>true</bold>
  196 + <underline>false</underline>
  197 + </font>
  198 + </property>
  199 + <property name="styleSheet">
  200 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  201 +color: rgb(55, 55, 55); }
  202 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  203 +QPushButton { text-align: center;}
  204 +</string>
  205 + </property>
  206 + <property name="text">
  207 + <string>S/G 솔레노이드</string>
  208 + </property>
  209 + </widget>
  210 + <widget class="QLabel" name="m_ctrlLbListState_1_1">
  211 + <property name="geometry">
  212 + <rect>
  213 + <x>310</x>
  214 + <y>78</y>
  215 + <width>161</width>
  216 + <height>81</height>
  217 + </rect>
  218 + </property>
  219 + <property name="font">
  220 + <font>
  221 + <pointsize>10</pointsize>
  222 + </font>
  223 + </property>
  224 + <property name="text">
  225 + <string/>
  226 + </property>
  227 + <property name="alignment">
  228 + <set>Qt::AlignCenter</set>
  229 + </property>
  230 + </widget>
  231 + <widget class="QPushButton" name="btnListName_2">
  232 + <property name="geometry">
  233 + <rect>
  234 + <x>0</x>
  235 + <y>184</y>
  236 + <width>300</width>
  237 + <height>62</height>
  238 + </rect>
  239 + </property>
  240 + <property name="sizePolicy">
  241 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  242 + <horstretch>0</horstretch>
  243 + <verstretch>0</verstretch>
  244 + </sizepolicy>
  245 + </property>
  246 + <property name="font">
  247 + <font>
  248 + <family>Roboto</family>
  249 + <pointsize>10</pointsize>
  250 + <weight>75</weight>
  251 + <bold>true</bold>
  252 + <underline>false</underline>
  253 + </font>
  254 + </property>
  255 + <property name="styleSheet">
  256 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  257 +color: rgb(55, 55, 55); }
  258 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  259 +QPushButton { text-align: center;}
  260 +</string>
  261 + </property>
  262 + <property name="text">
  263 + <string>퀀칭 솔레노이드</string>
  264 + </property>
  265 + </widget>
  266 + <widget class="QPushButton" name="btnListName_3">
  267 + <property name="geometry">
  268 + <rect>
  269 + <x>0</x>
  270 + <y>281</y>
  271 + <width>300</width>
  272 + <height>62</height>
  273 + </rect>
  274 + </property>
  275 + <property name="sizePolicy">
  276 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  277 + <horstretch>0</horstretch>
  278 + <verstretch>0</verstretch>
  279 + </sizepolicy>
  280 + </property>
  281 + <property name="font">
  282 + <font>
  283 + <family>Roboto</family>
  284 + <pointsize>10</pointsize>
  285 + <weight>75</weight>
  286 + <bold>true</bold>
  287 + <underline>false</underline>
  288 + </font>
  289 + </property>
  290 + <property name="styleSheet">
  291 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  292 +color: rgb(55, 55, 55); }
  293 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  294 +QPushButton { text-align: center;}
  295 +</string>
  296 + </property>
  297 + <property name="text">
  298 + <string>고내살수 노즐 솔레노이드</string>
  299 + </property>
  300 + </widget>
  301 + <widget class="QPushButton" name="btnListName_4">
  302 + <property name="geometry">
  303 + <rect>
  304 + <x>0</x>
  305 + <y>378</y>
  306 + <width>300</width>
  307 + <height>62</height>
  308 + </rect>
  309 + </property>
  310 + <property name="sizePolicy">
  311 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  312 + <horstretch>0</horstretch>
  313 + <verstretch>0</verstretch>
  314 + </sizepolicy>
  315 + </property>
  316 + <property name="font">
  317 + <font>
  318 + <family>Roboto</family>
  319 + <pointsize>10</pointsize>
  320 + <weight>75</weight>
  321 + <bold>true</bold>
  322 + <underline>false</underline>
  323 + </font>
  324 + </property>
  325 + <property name="styleSheet">
  326 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  327 +color: rgb(55, 55, 55); }
  328 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  329 +QPushButton { text-align: center;}
  330 +</string>
  331 + </property>
  332 + <property name="text">
  333 + <string>수위센서</string>
  334 + </property>
  335 + </widget>
  336 + <widget class="QPushButton" name="btnListName_5">
  337 + <property name="geometry">
  338 + <rect>
  339 + <x>0</x>
  340 + <y>475</y>
  341 + <width>300</width>
  342 + <height>62</height>
  343 + </rect>
  344 + </property>
  345 + <property name="sizePolicy">
  346 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  347 + <horstretch>0</horstretch>
  348 + <verstretch>0</verstretch>
  349 + </sizepolicy>
  350 + </property>
  351 + <property name="font">
  352 + <font>
  353 + <family>Roboto</family>
  354 + <pointsize>10</pointsize>
  355 + <weight>75</weight>
  356 + <bold>true</bold>
  357 + <underline>false</underline>
  358 + </font>
  359 + </property>
  360 + <property name="styleSheet">
  361 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  362 +color: rgb(55, 55, 55); }
  363 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  364 +QPushButton { text-align: center;}
  365 +</string>
  366 + </property>
  367 + <property name="text">
  368 + <string>S/G펌프모터</string>
  369 + </property>
  370 + </widget>
  371 + <widget class="QPushButton" name="btnListName_6">
  372 + <property name="geometry">
  373 + <rect>
  374 + <x>0</x>
  375 + <y>572</y>
  376 + <width>300</width>
  377 + <height>62</height>
  378 + </rect>
  379 + </property>
  380 + <property name="sizePolicy">
  381 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  382 + <horstretch>0</horstretch>
  383 + <verstretch>0</verstretch>
  384 + </sizepolicy>
  385 + </property>
  386 + <property name="font">
  387 + <font>
  388 + <family>Roboto</family>
  389 + <pointsize>10</pointsize>
  390 + <weight>75</weight>
  391 + <bold>true</bold>
  392 + <underline>false</underline>
  393 + </font>
  394 + </property>
  395 + <property name="styleSheet">
  396 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  397 +color: rgb(55, 55, 55); }
  398 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  399 +QPushButton { text-align: center;}
  400 +</string>
  401 + </property>
  402 + <property name="text">
  403 + <string>드레인볼밸브</string>
  404 + </property>
  405 + </widget>
  406 + <widget class="QPushButton" name="btnListName_7">
  407 + <property name="geometry">
  408 + <rect>
  409 + <x>0</x>
  410 + <y>669</y>
  411 + <width>300</width>
  412 + <height>62</height>
  413 + </rect>
  414 + </property>
  415 + <property name="sizePolicy">
  416 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  417 + <horstretch>0</horstretch>
  418 + <verstretch>0</verstretch>
  419 + </sizepolicy>
  420 + </property>
  421 + <property name="font">
  422 + <font>
  423 + <family>Roboto</family>
  424 + <pointsize>10</pointsize>
  425 + <weight>75</weight>
  426 + <bold>true</bold>
  427 + <underline>false</underline>
  428 + </font>
  429 + </property>
  430 + <property name="styleSheet">
  431 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  432 +color: rgb(55, 55, 55); }
  433 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  434 +QPushButton { text-align: center;}
  435 +</string>
  436 + </property>
  437 + <property name="text">
  438 + <string>세제공급펌프</string>
  439 + </property>
  440 + </widget>
  441 + <widget class="QPushButton" name="btnListName_8">
  442 + <property name="geometry">
  443 + <rect>
  444 + <x>0</x>
  445 + <y>766</y>
  446 + <width>300</width>
  447 + <height>62</height>
  448 + </rect>
  449 + </property>
  450 + <property name="sizePolicy">
  451 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  452 + <horstretch>0</horstretch>
  453 + <verstretch>0</verstretch>
  454 + </sizepolicy>
  455 + </property>
  456 + <property name="font">
  457 + <font>
  458 + <family>Roboto</family>
  459 + <pointsize>10</pointsize>
  460 + <weight>75</weight>
  461 + <bold>true</bold>
  462 + <underline>false</underline>
  463 + </font>
  464 + </property>
  465 + <property name="styleSheet">
  466 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  467 +color: rgb(55, 55, 55); }
  468 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  469 +QPushButton { text-align: center;}
  470 +</string>
  471 + </property>
  472 + <property name="text">
  473 + <string>도어센서</string>
  474 + </property>
  475 + </widget>
  476 + <widget class="QLabel" name="m_ctrlLbCol3Name">
  477 + <property name="geometry">
  478 + <rect>
  479 + <x>471</x>
  480 + <y>0</y>
  481 + <width>161</width>
  482 + <height>70</height>
  483 + </rect>
  484 + </property>
  485 + <property name="text">
  486 + <string>상태</string>
  487 + </property>
  488 + <property name="alignment">
  489 + <set>Qt::AlignCenter</set>
  490 + </property>
  491 + </widget>
  492 + <widget class="QLabel" name="m_ctrlLbCol4Name">
  493 + <property name="geometry">
  494 + <rect>
  495 + <x>632</x>
  496 + <y>0</y>
  497 + <width>161</width>
  498 + <height>70</height>
  499 + </rect>
  500 + </property>
  501 + <property name="text">
  502 + <string>상태</string>
  503 + </property>
  504 + <property name="alignment">
  505 + <set>Qt::AlignCenter</set>
  506 + </property>
  507 + </widget>
  508 + <widget class="QLabel" name="m_ctrlLbListState_1_2">
  509 + <property name="geometry">
  510 + <rect>
  511 + <x>310</x>
  512 + <y>175</y>
  513 + <width>161</width>
  514 + <height>81</height>
  515 + </rect>
  516 + </property>
  517 + <property name="font">
  518 + <font>
  519 + <pointsize>10</pointsize>
  520 + </font>
  521 + </property>
  522 + <property name="text">
  523 + <string/>
  524 + </property>
  525 + <property name="alignment">
  526 + <set>Qt::AlignCenter</set>
  527 + </property>
  528 + </widget>
  529 + <widget class="QLabel" name="m_ctrlLbListState_1_3">
  530 + <property name="geometry">
  531 + <rect>
  532 + <x>310</x>
  533 + <y>272</y>
  534 + <width>161</width>
  535 + <height>81</height>
  536 + </rect>
  537 + </property>
  538 + <property name="font">
  539 + <font>
  540 + <pointsize>10</pointsize>
  541 + </font>
  542 + </property>
  543 + <property name="text">
  544 + <string/>
  545 + </property>
  546 + <property name="alignment">
  547 + <set>Qt::AlignCenter</set>
  548 + </property>
  549 + </widget>
  550 + <widget class="QLabel" name="m_ctrlLbListState_1_4">
  551 + <property name="geometry">
  552 + <rect>
  553 + <x>310</x>
  554 + <y>369</y>
  555 + <width>161</width>
  556 + <height>81</height>
  557 + </rect>
  558 + </property>
  559 + <property name="font">
  560 + <font>
  561 + <pointsize>10</pointsize>
  562 + </font>
  563 + </property>
  564 + <property name="text">
  565 + <string/>
  566 + </property>
  567 + <property name="alignment">
  568 + <set>Qt::AlignCenter</set>
  569 + </property>
  570 + </widget>
  571 + <widget class="QLabel" name="m_ctrlLbListState_1_5">
  572 + <property name="geometry">
  573 + <rect>
  574 + <x>310</x>
  575 + <y>466</y>
  576 + <width>161</width>
  577 + <height>81</height>
  578 + </rect>
  579 + </property>
  580 + <property name="font">
  581 + <font>
  582 + <pointsize>10</pointsize>
  583 + </font>
  584 + </property>
  585 + <property name="text">
  586 + <string/>
  587 + </property>
  588 + <property name="alignment">
  589 + <set>Qt::AlignCenter</set>
  590 + </property>
  591 + </widget>
  592 + <widget class="QLabel" name="m_ctrlLbListState_1_6">
  593 + <property name="geometry">
  594 + <rect>
  595 + <x>310</x>
  596 + <y>563</y>
  597 + <width>161</width>
  598 + <height>81</height>
  599 + </rect>
  600 + </property>
  601 + <property name="font">
  602 + <font>
  603 + <pointsize>10</pointsize>
  604 + </font>
  605 + </property>
  606 + <property name="text">
  607 + <string/>
  608 + </property>
  609 + <property name="alignment">
  610 + <set>Qt::AlignCenter</set>
  611 + </property>
  612 + </widget>
  613 + <widget class="QLabel" name="m_ctrlLbListState_1_7">
  614 + <property name="geometry">
  615 + <rect>
  616 + <x>310</x>
  617 + <y>660</y>
  618 + <width>161</width>
  619 + <height>81</height>
  620 + </rect>
  621 + </property>
  622 + <property name="font">
  623 + <font>
  624 + <pointsize>10</pointsize>
  625 + </font>
  626 + </property>
  627 + <property name="text">
  628 + <string/>
  629 + </property>
  630 + <property name="alignment">
  631 + <set>Qt::AlignCenter</set>
  632 + </property>
  633 + </widget>
  634 + <widget class="QLabel" name="m_ctrlLbListState_1_8">
  635 + <property name="geometry">
  636 + <rect>
  637 + <x>310</x>
  638 + <y>757</y>
  639 + <width>161</width>
  640 + <height>81</height>
  641 + </rect>
  642 + </property>
  643 + <property name="font">
  644 + <font>
  645 + <pointsize>10</pointsize>
  646 + </font>
  647 + </property>
  648 + <property name="text">
  649 + <string/>
  650 + </property>
  651 + <property name="alignment">
  652 + <set>Qt::AlignCenter</set>
  653 + </property>
  654 + </widget>
  655 + <widget class="QLabel" name="m_ctrlLbListState_2_1">
  656 + <property name="geometry">
  657 + <rect>
  658 + <x>471</x>
  659 + <y>78</y>
  660 + <width>161</width>
  661 + <height>81</height>
  662 + </rect>
  663 + </property>
  664 + <property name="font">
  665 + <font>
  666 + <pointsize>10</pointsize>
  667 + </font>
  668 + </property>
  669 + <property name="text">
  670 + <string/>
  671 + </property>
  672 + <property name="alignment">
  673 + <set>Qt::AlignCenter</set>
  674 + </property>
  675 + </widget>
  676 + <widget class="QLabel" name="m_ctrlLbListState_2_4">
  677 + <property name="geometry">
  678 + <rect>
  679 + <x>471</x>
  680 + <y>369</y>
  681 + <width>161</width>
  682 + <height>81</height>
  683 + </rect>
  684 + </property>
  685 + <property name="font">
  686 + <font>
  687 + <pointsize>10</pointsize>
  688 + </font>
  689 + </property>
  690 + <property name="text">
  691 + <string/>
  692 + </property>
  693 + <property name="alignment">
  694 + <set>Qt::AlignCenter</set>
  695 + </property>
  696 + </widget>
  697 + <widget class="QLabel" name="m_ctrlLbListState_2_2">
  698 + <property name="geometry">
  699 + <rect>
  700 + <x>471</x>
  701 + <y>175</y>
  702 + <width>161</width>
  703 + <height>81</height>
  704 + </rect>
  705 + </property>
  706 + <property name="font">
  707 + <font>
  708 + <pointsize>10</pointsize>
  709 + </font>
  710 + </property>
  711 + <property name="text">
  712 + <string/>
  713 + </property>
  714 + <property name="alignment">
  715 + <set>Qt::AlignCenter</set>
  716 + </property>
  717 + </widget>
  718 + <widget class="QLabel" name="m_ctrlLbListState_2_6">
  719 + <property name="geometry">
  720 + <rect>
  721 + <x>471</x>
  722 + <y>563</y>
  723 + <width>161</width>
  724 + <height>81</height>
  725 + </rect>
  726 + </property>
  727 + <property name="font">
  728 + <font>
  729 + <pointsize>10</pointsize>
  730 + </font>
  731 + </property>
  732 + <property name="text">
  733 + <string/>
  734 + </property>
  735 + <property name="alignment">
  736 + <set>Qt::AlignCenter</set>
  737 + </property>
  738 + </widget>
  739 + <widget class="QLabel" name="m_ctrlLbListState_2_3">
  740 + <property name="geometry">
  741 + <rect>
  742 + <x>471</x>
  743 + <y>272</y>
  744 + <width>161</width>
  745 + <height>81</height>
  746 + </rect>
  747 + </property>
  748 + <property name="font">
  749 + <font>
  750 + <pointsize>10</pointsize>
  751 + </font>
  752 + </property>
  753 + <property name="text">
  754 + <string/>
  755 + </property>
  756 + <property name="alignment">
  757 + <set>Qt::AlignCenter</set>
  758 + </property>
  759 + </widget>
  760 + <widget class="QLabel" name="m_ctrlLbListState_2_8">
  761 + <property name="geometry">
  762 + <rect>
  763 + <x>471</x>
  764 + <y>757</y>
  765 + <width>161</width>
  766 + <height>81</height>
  767 + </rect>
  768 + </property>
  769 + <property name="font">
  770 + <font>
  771 + <pointsize>10</pointsize>
  772 + </font>
  773 + </property>
  774 + <property name="text">
  775 + <string/>
  776 + </property>
  777 + <property name="alignment">
  778 + <set>Qt::AlignCenter</set>
  779 + </property>
  780 + </widget>
  781 + <widget class="QLabel" name="m_ctrlLbListState_2_5">
  782 + <property name="geometry">
  783 + <rect>
  784 + <x>471</x>
  785 + <y>466</y>
  786 + <width>161</width>
  787 + <height>81</height>
  788 + </rect>
  789 + </property>
  790 + <property name="font">
  791 + <font>
  792 + <pointsize>10</pointsize>
  793 + </font>
  794 + </property>
  795 + <property name="text">
  796 + <string/>
  797 + </property>
  798 + <property name="alignment">
  799 + <set>Qt::AlignCenter</set>
  800 + </property>
  801 + </widget>
  802 + <widget class="QLabel" name="m_ctrlLbListState_2_7">
  803 + <property name="geometry">
  804 + <rect>
  805 + <x>471</x>
  806 + <y>660</y>
  807 + <width>161</width>
  808 + <height>81</height>
  809 + </rect>
  810 + </property>
  811 + <property name="font">
  812 + <font>
  813 + <pointsize>10</pointsize>
  814 + </font>
  815 + </property>
  816 + <property name="text">
  817 + <string/>
  818 + </property>
  819 + <property name="alignment">
  820 + <set>Qt::AlignCenter</set>
  821 + </property>
  822 + </widget>
  823 + <widget class="QLabel" name="m_ctrlLbListState_3_1">
  824 + <property name="geometry">
  825 + <rect>
  826 + <x>632</x>
  827 + <y>78</y>
  828 + <width>161</width>
  829 + <height>81</height>
  830 + </rect>
  831 + </property>
  832 + <property name="font">
  833 + <font>
  834 + <pointsize>10</pointsize>
  835 + </font>
  836 + </property>
  837 + <property name="text">
  838 + <string/>
  839 + </property>
  840 + <property name="alignment">
  841 + <set>Qt::AlignCenter</set>
  842 + </property>
  843 + </widget>
  844 + <widget class="QLabel" name="m_ctrlLbListState_3_4">
  845 + <property name="geometry">
  846 + <rect>
  847 + <x>632</x>
  848 + <y>369</y>
  849 + <width>161</width>
  850 + <height>81</height>
  851 + </rect>
  852 + </property>
  853 + <property name="font">
  854 + <font>
  855 + <pointsize>10</pointsize>
  856 + </font>
  857 + </property>
  858 + <property name="text">
  859 + <string/>
  860 + </property>
  861 + <property name="alignment">
  862 + <set>Qt::AlignCenter</set>
  863 + </property>
  864 + </widget>
  865 + <widget class="QLabel" name="m_ctrlLbListState_3_2">
  866 + <property name="geometry">
  867 + <rect>
  868 + <x>632</x>
  869 + <y>175</y>
  870 + <width>161</width>
  871 + <height>81</height>
  872 + </rect>
  873 + </property>
  874 + <property name="font">
  875 + <font>
  876 + <pointsize>10</pointsize>
  877 + </font>
  878 + </property>
  879 + <property name="text">
  880 + <string/>
  881 + </property>
  882 + <property name="alignment">
  883 + <set>Qt::AlignCenter</set>
  884 + </property>
  885 + </widget>
  886 + <widget class="QLabel" name="m_ctrlLbListState_3_6">
  887 + <property name="geometry">
  888 + <rect>
  889 + <x>632</x>
  890 + <y>563</y>
  891 + <width>161</width>
  892 + <height>81</height>
  893 + </rect>
  894 + </property>
  895 + <property name="font">
  896 + <font>
  897 + <pointsize>10</pointsize>
  898 + </font>
  899 + </property>
  900 + <property name="text">
  901 + <string/>
  902 + </property>
  903 + <property name="alignment">
  904 + <set>Qt::AlignCenter</set>
  905 + </property>
  906 + </widget>
  907 + <widget class="QLabel" name="m_ctrlLbListState_3_3">
  908 + <property name="geometry">
  909 + <rect>
  910 + <x>632</x>
  911 + <y>272</y>
  912 + <width>161</width>
  913 + <height>81</height>
  914 + </rect>
  915 + </property>
  916 + <property name="font">
  917 + <font>
  918 + <pointsize>10</pointsize>
  919 + </font>
  920 + </property>
  921 + <property name="text">
  922 + <string/>
  923 + </property>
  924 + <property name="alignment">
  925 + <set>Qt::AlignCenter</set>
  926 + </property>
  927 + </widget>
  928 + <widget class="QLabel" name="m_ctrlLbListState_3_8">
  929 + <property name="geometry">
  930 + <rect>
  931 + <x>632</x>
  932 + <y>757</y>
  933 + <width>161</width>
  934 + <height>81</height>
  935 + </rect>
  936 + </property>
  937 + <property name="font">
  938 + <font>
  939 + <pointsize>10</pointsize>
  940 + </font>
  941 + </property>
  942 + <property name="text">
  943 + <string/>
  944 + </property>
  945 + <property name="alignment">
  946 + <set>Qt::AlignCenter</set>
  947 + </property>
  948 + </widget>
  949 + <widget class="QLabel" name="m_ctrlLbListState_3_5">
  950 + <property name="geometry">
  951 + <rect>
  952 + <x>632</x>
  953 + <y>466</y>
  954 + <width>161</width>
  955 + <height>81</height>
  956 + </rect>
  957 + </property>
  958 + <property name="font">
  959 + <font>
  960 + <pointsize>10</pointsize>
  961 + </font>
  962 + </property>
  963 + <property name="text">
  964 + <string/>
  965 + </property>
  966 + <property name="alignment">
  967 + <set>Qt::AlignCenter</set>
  968 + </property>
  969 + </widget>
  970 + <widget class="QLabel" name="m_ctrlLbListState_3_7">
  971 + <property name="geometry">
  972 + <rect>
  973 + <x>632</x>
  974 + <y>660</y>
  975 + <width>161</width>
  976 + <height>81</height>
  977 + </rect>
  978 + </property>
  979 + <property name="font">
  980 + <font>
  981 + <pointsize>10</pointsize>
  982 + </font>
  983 + </property>
  984 + <property name="text">
  985 + <string/>
  986 + </property>
  987 + <property name="alignment">
  988 + <set>Qt::AlignCenter</set>
  989 + </property>
  990 + </widget>
  991 + </widget>
  992 + </widget>
  993 + </widget>
  994 + <customwidgets>
  995 + <customwidget>
  996 + <class>Clock</class>
  997 + <extends>QWidget</extends>
  998 + <header>clock.h</header>
  999 + <container>1</container>
  1000 + </customwidget>
  1001 + </customwidgets>
  1002 + <resources/>
  1003 + <connections/>
  1004 +</ui>
... ...
app/gui/oven_control/realtimesensorwindow.cpp
... ... @@ -0,0 +1,123 @@
  1 +#include "realtimesensorwindow.h"
  2 +#include "ui_realtimesensorwindow.h"
  3 +#include "ovenstatics.h"
  4 +
  5 +realtimeSensorWindow::realtimeSensorWindow(QWidget *parent) :
  6 + QMainWindow(parent),
  7 + ui(new Ui::realtimeSensorWindow)
  8 +{
  9 + OvenStatics* ovs = OvenStatics::getInstance();
  10 + int i = 0;
  11 + ui->setupUi(this);
  12 +
  13 + m_arrLbState[0][0] = ui->m_ctrlLbListState_1_1;
  14 + m_arrLbState[0][1] = ui->m_ctrlLbListState_1_2;
  15 + m_arrLbState[0][2] = ui->m_ctrlLbListState_1_3;
  16 + m_arrLbState[0][3] = ui->m_ctrlLbListState_1_4;
  17 + m_arrLbState[0][4] = ui->m_ctrlLbListState_1_5;
  18 + m_arrLbState[0][5] = ui->m_ctrlLbListState_1_6;
  19 + m_arrLbState[0][6] = ui->m_ctrlLbListState_1_7;
  20 + m_arrLbState[0][7] = ui->m_ctrlLbListState_1_8;
  21 + m_arrLbState[0][8] = ui->m_ctrlLbListState_1_9;
  22 +
  23 + m_arrLbState[1][0] = ui->m_ctrlLbListState_2_1;
  24 + m_arrLbState[1][1] = ui->m_ctrlLbListState_2_2;
  25 + m_arrLbState[1][2] = ui->m_ctrlLbListState_2_3;
  26 + m_arrLbState[1][3] = ui->m_ctrlLbListState_2_4;
  27 + m_arrLbState[1][4] = ui->m_ctrlLbListState_2_5;
  28 + m_arrLbState[1][5] = ui->m_ctrlLbListState_2_6;
  29 + m_arrLbState[1][6] = ui->m_ctrlLbListState_2_7;
  30 + m_arrLbState[1][7] = ui->m_ctrlLbListState_2_8;
  31 + m_arrLbState[1][8] = ui->m_ctrlLbListState_2_9;
  32 +
  33 + m_arrLbState[2][0] = ui->m_ctrlLbListState_3_1;
  34 + m_arrLbState[2][1] = ui->m_ctrlLbListState_3_2;
  35 + m_arrLbState[2][2] = ui->m_ctrlLbListState_3_3;
  36 + m_arrLbState[2][3] = ui->m_ctrlLbListState_3_4;
  37 + m_arrLbState[2][4] = ui->m_ctrlLbListState_3_5;
  38 + m_arrLbState[2][5] = ui->m_ctrlLbListState_3_6;
  39 + m_arrLbState[2][6] = ui->m_ctrlLbListState_3_7;
  40 + m_arrLbState[2][7] = ui->m_ctrlLbListState_3_8;
  41 + m_arrLbState[2][8] = ui->m_ctrlLbListState_3_9;
  42 +
  43 + m_arrLbState[3][0] = ui->m_ctrlLbListState_4_1;
  44 + m_arrLbState[3][1] = ui->m_ctrlLbListState_4_2;
  45 + m_arrLbState[3][2] = ui->m_ctrlLbListState_4_3;
  46 + m_arrLbState[3][3] = ui->m_ctrlLbListState_4_4;
  47 + m_arrLbState[3][4] = ui->m_ctrlLbListState_4_5;
  48 + m_arrLbState[3][5] = ui->m_ctrlLbListState_4_6;
  49 + m_arrLbState[3][6] = ui->m_ctrlLbListState_4_7;
  50 + m_arrLbState[3][7] = ui->m_ctrlLbListState_4_8;
  51 + m_arrLbState[3][8] = ui->m_ctrlLbListState_4_9;
  52 +
  53 + for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
  54 + m_arrSensorItems[i] = &(ovs->srvdatas->sensor_log.values[m_arrSensorItemIdxs[i]]);
  55 + }
  56 + reloadUi();
  57 +}
  58 +
  59 +realtimeSensorWindow::~realtimeSensorWindow()
  60 +{
  61 + delete ui;
  62 +}
  63 +
  64 +void realtimeSensorWindow::on_backButton_clicked()
  65 +{
  66 + deleteLater();
  67 +}
  68 +
  69 +uint16_t i_temp1,i_temp2;
  70 +type_temp temp_temp;
  71 +
  72 +void realtimeSensorWindow::reloadUi(void){
  73 + char strTime[64];
  74 + QString strTemp="";
  75 + struct tm *timeptr;
  76 + int i = 0;
  77 + OvenStatics* ovs = OvenStatics::getInstance();
  78 + if(ovs!= NULL){
  79 + for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
  80 + i_temp1 = i;
  81 + i_temp2 = ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]);
  82 + temp_temp = ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]);
  83 +
  84 + if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 2 )
  85 + strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp/10);
  86 + else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1 )
  87 + strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).utemp);
  88 + else strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp);
  89 + m_arrLbState[0][i]->setText(strTemp);
  90 + }
  91 +
  92 + for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
  93 + if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 2 )
  94 + strTemp.sprintf("%d℃",m_arrSensorItems[i]->high_temp.itemp/10);
  95 + else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1)
  96 + strTemp.sprintf("%d℃",m_arrSensorItems[i]->high_temp.utemp);
  97 + else strTemp.sprintf("%d℃",m_arrSensorItems[i]->high_temp.itemp);
  98 + m_arrLbState[1][i]->setText(strTemp);
  99 + }
  100 +
  101 + for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
  102 + strTemp.sprintf("%d℃", m_arrCriticalValue[i]);
  103 + m_arrLbState[2][i]->setText(strTemp);
  104 + }
  105 +
  106 +
  107 + for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
  108 + if(m_arrSensorItems[i]->last_high_time !=0){
  109 + timeptr = gmtime(&(m_arrSensorItems[i]->last_high_time));
  110 + strftime(strTime,64,"%y-%m-%d\n%H:%M:%S",timeptr);
  111 + m_arrLbState[3][i]->setText(strTime);
  112 + }
  113 + else{
  114 + m_arrLbState[3][i]->setText("-");
  115 + }
  116 + }
  117 +
  118 +
  119 +
  120 +
  121 + }
  122 +
  123 +}
... ...
app/gui/oven_control/realtimesensorwindow.h
... ... @@ -0,0 +1,42 @@
  1 +#ifndef REALTIMESENSORWINDOW_H
  2 +#define REALTIMESENSORWINDOW_H
  3 +
  4 +#include <QMainWindow>
  5 +#include <qlabel.h>
  6 +#include "servicedatas.h"
  7 +
  8 +#define REALSENSOR_CONTROL_LIST_COL_MAX 4
  9 +#define REALSENSOR_CONTROL_LIST_ITEM_MAX 9
  10 +
  11 +namespace Ui {
  12 +class realtimeSensorWindow;
  13 +}
  14 +
  15 +class realtimeSensorWindow : public QMainWindow
  16 +{
  17 + Q_OBJECT
  18 +
  19 +public:
  20 + explicit realtimeSensorWindow(QWidget *parent = 0);
  21 + ~realtimeSensorWindow();
  22 +
  23 +private slots:
  24 + void on_backButton_clicked();
  25 +
  26 +private:
  27 + const uint16_t m_arrSensorItemIdxs[REALSENSOR_CONTROL_LIST_ITEM_MAX]={
  28 + 0,1,4,5,6,7,8,12,13
  29 + };
  30 + const uint16_t m_arrCriticalValue[REALSENSOR_CONTROL_LIST_ITEM_MAX] = {
  31 + 320,120,270,300,300,300,300,80,80
  32 + };
  33 +
  34 + Ui::realtimeSensorWindow *ui;
  35 + QLabel *m_arrLbState[REALSENSOR_CONTROL_LIST_COL_MAX][REALSENSOR_CONTROL_LIST_ITEM_MAX];
  36 + sensor_log_item* m_arrSensorItems[REALSENSOR_CONTROL_LIST_ITEM_MAX];
  37 +
  38 +
  39 + void reloadUi(void);
  40 +};
  41 +
  42 +#endif // REALTIMESENSORWINDOW_H
... ...
app/gui/oven_control/realtimesensorwindow.ui
... ... @@ -0,0 +1,1338 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>realtimeSensorWindow</class>
  4 + <widget class="QMainWindow" name="realtimeSensorWindow">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }
  19 +#midwidget { background-image: url(:/images/config/service/realtime_sensor_bgnd.png); }</string>
  20 + </property>
  21 + <widget class="QWidget" name="centralwidget">
  22 + <property name="styleSheet">
  23 + <string notr="true"/>
  24 + </property>
  25 + <widget class="QStackedWidget" name="upperStack">
  26 + <property name="geometry">
  27 + <rect>
  28 + <x>0</x>
  29 + <y>0</y>
  30 + <width>900</width>
  31 + <height>426</height>
  32 + </rect>
  33 + </property>
  34 + <widget class="QWidget" name="clockContainer">
  35 + <property name="styleSheet">
  36 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  37 + </property>
  38 + <widget class="Clock" name="clock" native="true">
  39 + <property name="geometry">
  40 + <rect>
  41 + <x>272</x>
  42 + <y>36</y>
  43 + <width>356</width>
  44 + <height>355</height>
  45 + </rect>
  46 + </property>
  47 + </widget>
  48 + </widget>
  49 + <widget class="QWidget" name="page_2"/>
  50 + </widget>
  51 + <widget class="QLabel" name="label_15">
  52 + <property name="geometry">
  53 + <rect>
  54 + <x>55</x>
  55 + <y>426</y>
  56 + <width>1500</width>
  57 + <height>84</height>
  58 + </rect>
  59 + </property>
  60 + <property name="font">
  61 + <font>
  62 + <family>Malgun Gothic</family>
  63 + <pointsize>11</pointsize>
  64 + </font>
  65 + </property>
  66 + <property name="styleSheet">
  67 + <string notr="true">color: rgb(255, 255, 255);</string>
  68 + </property>
  69 + <property name="text">
  70 + <string>서비스단계(엔지니어모드) &gt; 실시간데이터 &gt; 온도센서</string>
  71 + </property>
  72 + </widget>
  73 + <widget class="QWidget" name="bottomBar" native="true">
  74 + <property name="geometry">
  75 + <rect>
  76 + <x>0</x>
  77 + <y>1450</y>
  78 + <width>900</width>
  79 + <height>150</height>
  80 + </rect>
  81 + </property>
  82 + <widget class="QPushButton" name="backButton">
  83 + <property name="geometry">
  84 + <rect>
  85 + <x>343</x>
  86 + <y>26</y>
  87 + <width>97</width>
  88 + <height>97</height>
  89 + </rect>
  90 + </property>
  91 + <property name="sizePolicy">
  92 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  93 + <horstretch>0</horstretch>
  94 + <verstretch>0</verstretch>
  95 + </sizepolicy>
  96 + </property>
  97 + <property name="styleSheet">
  98 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  99 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  100 + </property>
  101 + <property name="text">
  102 + <string/>
  103 + </property>
  104 + </widget>
  105 + <widget class="QPushButton" name="helpButton">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>457</x>
  109 + <y>26</y>
  110 + <width>97</width>
  111 + <height>97</height>
  112 + </rect>
  113 + </property>
  114 + <property name="sizePolicy">
  115 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  116 + <horstretch>0</horstretch>
  117 + <verstretch>0</verstretch>
  118 + </sizepolicy>
  119 + </property>
  120 + <property name="styleSheet">
  121 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/help.png); }
  122 +QPushButton:pressed { border-image: url(:/images/bottom_bar/help_ov.png); }</string>
  123 + </property>
  124 + <property name="text">
  125 + <string/>
  126 + </property>
  127 + </widget>
  128 + </widget>
  129 + <widget class="QWidget" name="midwidget" native="true">
  130 + <property name="geometry">
  131 + <rect>
  132 + <x>57</x>
  133 + <y>532</y>
  134 + <width>793</width>
  135 + <height>916</height>
  136 + </rect>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QLabel {
  140 + color:white;
  141 +}</string>
  142 + </property>
  143 + <widget class="QLabel" name="m_ctrlLbCol1Name">
  144 + <property name="geometry">
  145 + <rect>
  146 + <x>3</x>
  147 + <y>0</y>
  148 + <width>261</width>
  149 + <height>71</height>
  150 + </rect>
  151 + </property>
  152 + <property name="font">
  153 + <font>
  154 + <family>나눔고딕</family>
  155 + <pointsize>8</pointsize>
  156 + </font>
  157 + </property>
  158 + <property name="text">
  159 + <string>목록</string>
  160 + </property>
  161 + <property name="alignment">
  162 + <set>Qt::AlignCenter</set>
  163 + </property>
  164 + </widget>
  165 + <widget class="QLabel" name="m_ctrlLbCol2Name">
  166 + <property name="geometry">
  167 + <rect>
  168 + <x>269</x>
  169 + <y>0</y>
  170 + <width>111</width>
  171 + <height>70</height>
  172 + </rect>
  173 + </property>
  174 + <property name="font">
  175 + <font>
  176 + <family>나눔고딕</family>
  177 + <pointsize>8</pointsize>
  178 + </font>
  179 + </property>
  180 + <property name="text">
  181 + <string>현재온도</string>
  182 + </property>
  183 + <property name="alignment">
  184 + <set>Qt::AlignCenter</set>
  185 + </property>
  186 + </widget>
  187 + <widget class="QPushButton" name="btnListName_1">
  188 + <property name="geometry">
  189 + <rect>
  190 + <x>0</x>
  191 + <y>87</y>
  192 + <width>256</width>
  193 + <height>62</height>
  194 + </rect>
  195 + </property>
  196 + <property name="sizePolicy">
  197 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  198 + <horstretch>0</horstretch>
  199 + <verstretch>0</verstretch>
  200 + </sizepolicy>
  201 + </property>
  202 + <property name="font">
  203 + <font>
  204 + <family>Roboto</family>
  205 + <pointsize>10</pointsize>
  206 + <weight>75</weight>
  207 + <bold>true</bold>
  208 + <underline>false</underline>
  209 + </font>
  210 + </property>
  211 + <property name="styleSheet">
  212 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  213 +color: rgb(55, 55, 55); }
  214 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  215 +QPushButton { text-align: center;}
  216 +</string>
  217 + </property>
  218 + <property name="text">
  219 + <string>실내온도</string>
  220 + </property>
  221 + </widget>
  222 + <widget class="QLabel" name="m_ctrlLbListState_1_1">
  223 + <property name="geometry">
  224 + <rect>
  225 + <x>269</x>
  226 + <y>78</y>
  227 + <width>111</width>
  228 + <height>81</height>
  229 + </rect>
  230 + </property>
  231 + <property name="font">
  232 + <font>
  233 + <pointsize>10</pointsize>
  234 + </font>
  235 + </property>
  236 + <property name="text">
  237 + <string/>
  238 + </property>
  239 + <property name="alignment">
  240 + <set>Qt::AlignCenter</set>
  241 + </property>
  242 + </widget>
  243 + <widget class="QPushButton" name="btnListName_2">
  244 + <property name="geometry">
  245 + <rect>
  246 + <x>0</x>
  247 + <y>182</y>
  248 + <width>256</width>
  249 + <height>62</height>
  250 + </rect>
  251 + </property>
  252 + <property name="sizePolicy">
  253 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  254 + <horstretch>0</horstretch>
  255 + <verstretch>0</verstretch>
  256 + </sizepolicy>
  257 + </property>
  258 + <property name="font">
  259 + <font>
  260 + <family>Roboto</family>
  261 + <pointsize>10</pointsize>
  262 + <weight>75</weight>
  263 + <bold>true</bold>
  264 + <underline>false</underline>
  265 + </font>
  266 + </property>
  267 + <property name="styleSheet">
  268 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  269 +color: rgb(55, 55, 55); }
  270 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  271 +QPushButton { text-align: center;}
  272 +</string>
  273 + </property>
  274 + <property name="text">
  275 + <string>퀀칭온도</string>
  276 + </property>
  277 + </widget>
  278 + <widget class="QPushButton" name="btnListName_3">
  279 + <property name="geometry">
  280 + <rect>
  281 + <x>0</x>
  282 + <y>277</y>
  283 + <width>256</width>
  284 + <height>62</height>
  285 + </rect>
  286 + </property>
  287 + <property name="sizePolicy">
  288 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  289 + <horstretch>0</horstretch>
  290 + <verstretch>0</verstretch>
  291 + </sizepolicy>
  292 + </property>
  293 + <property name="font">
  294 + <font>
  295 + <family>Roboto</family>
  296 + <pointsize>10</pointsize>
  297 + <weight>75</weight>
  298 + <bold>true</bold>
  299 + <underline>false</underline>
  300 + </font>
  301 + </property>
  302 + <property name="styleSheet">
  303 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  304 +color: rgb(55, 55, 55); }
  305 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  306 +QPushButton { text-align: center;}
  307 +</string>
  308 + </property>
  309 + <property name="text">
  310 + <string>스팀제네레이터온도</string>
  311 + </property>
  312 + </widget>
  313 + <widget class="QPushButton" name="btnListName_4">
  314 + <property name="geometry">
  315 + <rect>
  316 + <x>0</x>
  317 + <y>372</y>
  318 + <width>256</width>
  319 + <height>62</height>
  320 + </rect>
  321 + </property>
  322 + <property name="sizePolicy">
  323 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  324 + <horstretch>0</horstretch>
  325 + <verstretch>0</verstretch>
  326 + </sizepolicy>
  327 + </property>
  328 + <property name="font">
  329 + <font>
  330 + <family>Roboto</family>
  331 + <pointsize>10</pointsize>
  332 + <weight>75</weight>
  333 + <bold>true</bold>
  334 + <underline>false</underline>
  335 + </font>
  336 + </property>
  337 + <property name="styleSheet">
  338 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  339 +color: rgb(55, 55, 55); }
  340 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  341 +QPushButton { text-align: center;}
  342 +</string>
  343 + </property>
  344 + <property name="text">
  345 + <string>미트프로브온도1</string>
  346 + </property>
  347 + </widget>
  348 + <widget class="QPushButton" name="btnListName_5">
  349 + <property name="geometry">
  350 + <rect>
  351 + <x>0</x>
  352 + <y>467</y>
  353 + <width>256</width>
  354 + <height>62</height>
  355 + </rect>
  356 + </property>
  357 + <property name="sizePolicy">
  358 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  359 + <horstretch>0</horstretch>
  360 + <verstretch>0</verstretch>
  361 + </sizepolicy>
  362 + </property>
  363 + <property name="font">
  364 + <font>
  365 + <family>Roboto</family>
  366 + <pointsize>10</pointsize>
  367 + <weight>75</weight>
  368 + <bold>true</bold>
  369 + <underline>false</underline>
  370 + </font>
  371 + </property>
  372 + <property name="styleSheet">
  373 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  374 +color: rgb(55, 55, 55); }
  375 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  376 +QPushButton { text-align: center;}
  377 +</string>
  378 + </property>
  379 + <property name="text">
  380 + <string>미트프로브온도2</string>
  381 + </property>
  382 + </widget>
  383 + <widget class="QPushButton" name="btnListName_6">
  384 + <property name="geometry">
  385 + <rect>
  386 + <x>0</x>
  387 + <y>562</y>
  388 + <width>256</width>
  389 + <height>62</height>
  390 + </rect>
  391 + </property>
  392 + <property name="sizePolicy">
  393 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  394 + <horstretch>0</horstretch>
  395 + <verstretch>0</verstretch>
  396 + </sizepolicy>
  397 + </property>
  398 + <property name="font">
  399 + <font>
  400 + <family>Roboto</family>
  401 + <pointsize>10</pointsize>
  402 + <weight>75</weight>
  403 + <bold>true</bold>
  404 + <underline>false</underline>
  405 + </font>
  406 + </property>
  407 + <property name="styleSheet">
  408 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  409 +color: rgb(55, 55, 55); }
  410 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  411 +QPushButton { text-align: center;}
  412 +</string>
  413 + </property>
  414 + <property name="text">
  415 + <string>미트프로브온도3</string>
  416 + </property>
  417 + </widget>
  418 + <widget class="QPushButton" name="btnListName_7">
  419 + <property name="geometry">
  420 + <rect>
  421 + <x>0</x>
  422 + <y>657</y>
  423 + <width>256</width>
  424 + <height>62</height>
  425 + </rect>
  426 + </property>
  427 + <property name="sizePolicy">
  428 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  429 + <horstretch>0</horstretch>
  430 + <verstretch>0</verstretch>
  431 + </sizepolicy>
  432 + </property>
  433 + <property name="font">
  434 + <font>
  435 + <family>Roboto</family>
  436 + <pointsize>10</pointsize>
  437 + <weight>75</weight>
  438 + <bold>true</bold>
  439 + <underline>false</underline>
  440 + </font>
  441 + </property>
  442 + <property name="styleSheet">
  443 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  444 +color: rgb(55, 55, 55); }
  445 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  446 +QPushButton { text-align: center;}
  447 +</string>
  448 + </property>
  449 + <property name="text">
  450 + <string>미트프로브온도4</string>
  451 + </property>
  452 + </widget>
  453 + <widget class="QPushButton" name="btnListName_8">
  454 + <property name="geometry">
  455 + <rect>
  456 + <x>0</x>
  457 + <y>752</y>
  458 + <width>256</width>
  459 + <height>62</height>
  460 + </rect>
  461 + </property>
  462 + <property name="sizePolicy">
  463 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  464 + <horstretch>0</horstretch>
  465 + <verstretch>0</verstretch>
  466 + </sizepolicy>
  467 + </property>
  468 + <property name="font">
  469 + <font>
  470 + <family>Roboto</family>
  471 + <pointsize>10</pointsize>
  472 + <weight>75</weight>
  473 + <bold>true</bold>
  474 + <underline>false</underline>
  475 + </font>
  476 + </property>
  477 + <property name="styleSheet">
  478 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  479 +color: rgb(55, 55, 55); }
  480 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  481 +QPushButton { text-align: center;}
  482 +</string>
  483 + </property>
  484 + <property name="text">
  485 + <string>PCB온도</string>
  486 + </property>
  487 + </widget>
  488 + <widget class="QLabel" name="m_ctrlLbCol3Name">
  489 + <property name="geometry">
  490 + <rect>
  491 + <x>382</x>
  492 + <y>0</y>
  493 + <width>111</width>
  494 + <height>70</height>
  495 + </rect>
  496 + </property>
  497 + <property name="font">
  498 + <font>
  499 + <family>나눔고딕</family>
  500 + <pointsize>8</pointsize>
  501 + </font>
  502 + </property>
  503 + <property name="text">
  504 + <string>최대온도</string>
  505 + </property>
  506 + <property name="alignment">
  507 + <set>Qt::AlignCenter</set>
  508 + </property>
  509 + </widget>
  510 + <widget class="QLabel" name="m_ctrlLbCol4Name">
  511 + <property name="geometry">
  512 + <rect>
  513 + <x>495</x>
  514 + <y>0</y>
  515 + <width>111</width>
  516 + <height>70</height>
  517 + </rect>
  518 + </property>
  519 + <property name="font">
  520 + <font>
  521 + <family>나눔고딕</family>
  522 + <pointsize>8</pointsize>
  523 + </font>
  524 + </property>
  525 + <property name="text">
  526 + <string>허용범위</string>
  527 + </property>
  528 + <property name="alignment">
  529 + <set>Qt::AlignCenter</set>
  530 + </property>
  531 + </widget>
  532 + <widget class="QLabel" name="m_ctrlLbListState_1_2">
  533 + <property name="geometry">
  534 + <rect>
  535 + <x>269</x>
  536 + <y>173</y>
  537 + <width>111</width>
  538 + <height>81</height>
  539 + </rect>
  540 + </property>
  541 + <property name="font">
  542 + <font>
  543 + <pointsize>10</pointsize>
  544 + </font>
  545 + </property>
  546 + <property name="text">
  547 + <string/>
  548 + </property>
  549 + <property name="alignment">
  550 + <set>Qt::AlignCenter</set>
  551 + </property>
  552 + </widget>
  553 + <widget class="QLabel" name="m_ctrlLbListState_1_3">
  554 + <property name="geometry">
  555 + <rect>
  556 + <x>269</x>
  557 + <y>268</y>
  558 + <width>111</width>
  559 + <height>81</height>
  560 + </rect>
  561 + </property>
  562 + <property name="font">
  563 + <font>
  564 + <pointsize>10</pointsize>
  565 + </font>
  566 + </property>
  567 + <property name="text">
  568 + <string/>
  569 + </property>
  570 + <property name="alignment">
  571 + <set>Qt::AlignCenter</set>
  572 + </property>
  573 + </widget>
  574 + <widget class="QLabel" name="m_ctrlLbListState_1_4">
  575 + <property name="geometry">
  576 + <rect>
  577 + <x>269</x>
  578 + <y>363</y>
  579 + <width>111</width>
  580 + <height>81</height>
  581 + </rect>
  582 + </property>
  583 + <property name="font">
  584 + <font>
  585 + <pointsize>10</pointsize>
  586 + </font>
  587 + </property>
  588 + <property name="text">
  589 + <string/>
  590 + </property>
  591 + <property name="alignment">
  592 + <set>Qt::AlignCenter</set>
  593 + </property>
  594 + </widget>
  595 + <widget class="QLabel" name="m_ctrlLbListState_1_5">
  596 + <property name="geometry">
  597 + <rect>
  598 + <x>269</x>
  599 + <y>458</y>
  600 + <width>111</width>
  601 + <height>81</height>
  602 + </rect>
  603 + </property>
  604 + <property name="font">
  605 + <font>
  606 + <pointsize>10</pointsize>
  607 + </font>
  608 + </property>
  609 + <property name="text">
  610 + <string/>
  611 + </property>
  612 + <property name="alignment">
  613 + <set>Qt::AlignCenter</set>
  614 + </property>
  615 + </widget>
  616 + <widget class="QLabel" name="m_ctrlLbListState_1_6">
  617 + <property name="geometry">
  618 + <rect>
  619 + <x>269</x>
  620 + <y>553</y>
  621 + <width>111</width>
  622 + <height>81</height>
  623 + </rect>
  624 + </property>
  625 + <property name="font">
  626 + <font>
  627 + <pointsize>10</pointsize>
  628 + </font>
  629 + </property>
  630 + <property name="text">
  631 + <string/>
  632 + </property>
  633 + <property name="alignment">
  634 + <set>Qt::AlignCenter</set>
  635 + </property>
  636 + </widget>
  637 + <widget class="QLabel" name="m_ctrlLbListState_1_7">
  638 + <property name="geometry">
  639 + <rect>
  640 + <x>269</x>
  641 + <y>648</y>
  642 + <width>111</width>
  643 + <height>81</height>
  644 + </rect>
  645 + </property>
  646 + <property name="font">
  647 + <font>
  648 + <pointsize>10</pointsize>
  649 + </font>
  650 + </property>
  651 + <property name="text">
  652 + <string/>
  653 + </property>
  654 + <property name="alignment">
  655 + <set>Qt::AlignCenter</set>
  656 + </property>
  657 + </widget>
  658 + <widget class="QLabel" name="m_ctrlLbListState_1_8">
  659 + <property name="geometry">
  660 + <rect>
  661 + <x>269</x>
  662 + <y>743</y>
  663 + <width>111</width>
  664 + <height>81</height>
  665 + </rect>
  666 + </property>
  667 + <property name="font">
  668 + <font>
  669 + <pointsize>10</pointsize>
  670 + </font>
  671 + </property>
  672 + <property name="text">
  673 + <string/>
  674 + </property>
  675 + <property name="alignment">
  676 + <set>Qt::AlignCenter</set>
  677 + </property>
  678 + </widget>
  679 + <widget class="QPushButton" name="btnListName_9">
  680 + <property name="geometry">
  681 + <rect>
  682 + <x>0</x>
  683 + <y>842</y>
  684 + <width>256</width>
  685 + <height>62</height>
  686 + </rect>
  687 + </property>
  688 + <property name="sizePolicy">
  689 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  690 + <horstretch>0</horstretch>
  691 + <verstretch>0</verstretch>
  692 + </sizepolicy>
  693 + </property>
  694 + <property name="font">
  695 + <font>
  696 + <family>Roboto</family>
  697 + <pointsize>10</pointsize>
  698 + <weight>75</weight>
  699 + <bold>true</bold>
  700 + <underline>false</underline>
  701 + </font>
  702 + </property>
  703 + <property name="styleSheet">
  704 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  705 +color: rgb(55, 55, 55); }
  706 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  707 +QPushButton { text-align: center;}
  708 +</string>
  709 + </property>
  710 + <property name="text">
  711 + <string>기계식온도</string>
  712 + </property>
  713 + </widget>
  714 + <widget class="QLabel" name="m_ctrlLbListState_1_9">
  715 + <property name="geometry">
  716 + <rect>
  717 + <x>269</x>
  718 + <y>838</y>
  719 + <width>111</width>
  720 + <height>81</height>
  721 + </rect>
  722 + </property>
  723 + <property name="font">
  724 + <font>
  725 + <pointsize>10</pointsize>
  726 + </font>
  727 + </property>
  728 + <property name="text">
  729 + <string/>
  730 + </property>
  731 + <property name="alignment">
  732 + <set>Qt::AlignCenter</set>
  733 + </property>
  734 + </widget>
  735 + <widget class="QLabel" name="m_ctrlLbListState_2_4">
  736 + <property name="geometry">
  737 + <rect>
  738 + <x>382</x>
  739 + <y>363</y>
  740 + <width>111</width>
  741 + <height>81</height>
  742 + </rect>
  743 + </property>
  744 + <property name="font">
  745 + <font>
  746 + <pointsize>10</pointsize>
  747 + </font>
  748 + </property>
  749 + <property name="text">
  750 + <string/>
  751 + </property>
  752 + <property name="alignment">
  753 + <set>Qt::AlignCenter</set>
  754 + </property>
  755 + </widget>
  756 + <widget class="QLabel" name="m_ctrlLbListState_2_7">
  757 + <property name="geometry">
  758 + <rect>
  759 + <x>382</x>
  760 + <y>648</y>
  761 + <width>111</width>
  762 + <height>81</height>
  763 + </rect>
  764 + </property>
  765 + <property name="font">
  766 + <font>
  767 + <pointsize>10</pointsize>
  768 + </font>
  769 + </property>
  770 + <property name="text">
  771 + <string/>
  772 + </property>
  773 + <property name="alignment">
  774 + <set>Qt::AlignCenter</set>
  775 + </property>
  776 + </widget>
  777 + <widget class="QLabel" name="m_ctrlLbListState_2_9">
  778 + <property name="geometry">
  779 + <rect>
  780 + <x>382</x>
  781 + <y>838</y>
  782 + <width>111</width>
  783 + <height>81</height>
  784 + </rect>
  785 + </property>
  786 + <property name="font">
  787 + <font>
  788 + <pointsize>10</pointsize>
  789 + </font>
  790 + </property>
  791 + <property name="text">
  792 + <string/>
  793 + </property>
  794 + <property name="alignment">
  795 + <set>Qt::AlignCenter</set>
  796 + </property>
  797 + </widget>
  798 + <widget class="QLabel" name="m_ctrlLbListState_2_1">
  799 + <property name="geometry">
  800 + <rect>
  801 + <x>382</x>
  802 + <y>78</y>
  803 + <width>111</width>
  804 + <height>81</height>
  805 + </rect>
  806 + </property>
  807 + <property name="font">
  808 + <font>
  809 + <pointsize>10</pointsize>
  810 + </font>
  811 + </property>
  812 + <property name="text">
  813 + <string/>
  814 + </property>
  815 + <property name="alignment">
  816 + <set>Qt::AlignCenter</set>
  817 + </property>
  818 + </widget>
  819 + <widget class="QLabel" name="m_ctrlLbListState_2_6">
  820 + <property name="geometry">
  821 + <rect>
  822 + <x>382</x>
  823 + <y>553</y>
  824 + <width>111</width>
  825 + <height>81</height>
  826 + </rect>
  827 + </property>
  828 + <property name="font">
  829 + <font>
  830 + <pointsize>10</pointsize>
  831 + </font>
  832 + </property>
  833 + <property name="text">
  834 + <string/>
  835 + </property>
  836 + <property name="alignment">
  837 + <set>Qt::AlignCenter</set>
  838 + </property>
  839 + </widget>
  840 + <widget class="QLabel" name="m_ctrlLbListState_2_3">
  841 + <property name="geometry">
  842 + <rect>
  843 + <x>382</x>
  844 + <y>268</y>
  845 + <width>111</width>
  846 + <height>81</height>
  847 + </rect>
  848 + </property>
  849 + <property name="font">
  850 + <font>
  851 + <pointsize>10</pointsize>
  852 + </font>
  853 + </property>
  854 + <property name="text">
  855 + <string/>
  856 + </property>
  857 + <property name="alignment">
  858 + <set>Qt::AlignCenter</set>
  859 + </property>
  860 + </widget>
  861 + <widget class="QLabel" name="m_ctrlLbListState_2_8">
  862 + <property name="geometry">
  863 + <rect>
  864 + <x>382</x>
  865 + <y>743</y>
  866 + <width>111</width>
  867 + <height>81</height>
  868 + </rect>
  869 + </property>
  870 + <property name="font">
  871 + <font>
  872 + <pointsize>10</pointsize>
  873 + </font>
  874 + </property>
  875 + <property name="text">
  876 + <string/>
  877 + </property>
  878 + <property name="alignment">
  879 + <set>Qt::AlignCenter</set>
  880 + </property>
  881 + </widget>
  882 + <widget class="QLabel" name="m_ctrlLbListState_2_2">
  883 + <property name="geometry">
  884 + <rect>
  885 + <x>382</x>
  886 + <y>173</y>
  887 + <width>111</width>
  888 + <height>81</height>
  889 + </rect>
  890 + </property>
  891 + <property name="font">
  892 + <font>
  893 + <pointsize>10</pointsize>
  894 + </font>
  895 + </property>
  896 + <property name="text">
  897 + <string/>
  898 + </property>
  899 + <property name="alignment">
  900 + <set>Qt::AlignCenter</set>
  901 + </property>
  902 + </widget>
  903 + <widget class="QLabel" name="m_ctrlLbListState_2_5">
  904 + <property name="geometry">
  905 + <rect>
  906 + <x>382</x>
  907 + <y>458</y>
  908 + <width>111</width>
  909 + <height>81</height>
  910 + </rect>
  911 + </property>
  912 + <property name="font">
  913 + <font>
  914 + <pointsize>10</pointsize>
  915 + </font>
  916 + </property>
  917 + <property name="text">
  918 + <string/>
  919 + </property>
  920 + <property name="alignment">
  921 + <set>Qt::AlignCenter</set>
  922 + </property>
  923 + </widget>
  924 + <widget class="QLabel" name="m_ctrlLbListState_3_4">
  925 + <property name="geometry">
  926 + <rect>
  927 + <x>496</x>
  928 + <y>363</y>
  929 + <width>111</width>
  930 + <height>81</height>
  931 + </rect>
  932 + </property>
  933 + <property name="font">
  934 + <font>
  935 + <pointsize>10</pointsize>
  936 + </font>
  937 + </property>
  938 + <property name="text">
  939 + <string/>
  940 + </property>
  941 + <property name="alignment">
  942 + <set>Qt::AlignCenter</set>
  943 + </property>
  944 + </widget>
  945 + <widget class="QLabel" name="m_ctrlLbListState_3_7">
  946 + <property name="geometry">
  947 + <rect>
  948 + <x>496</x>
  949 + <y>648</y>
  950 + <width>111</width>
  951 + <height>81</height>
  952 + </rect>
  953 + </property>
  954 + <property name="font">
  955 + <font>
  956 + <pointsize>10</pointsize>
  957 + </font>
  958 + </property>
  959 + <property name="text">
  960 + <string/>
  961 + </property>
  962 + <property name="alignment">
  963 + <set>Qt::AlignCenter</set>
  964 + </property>
  965 + </widget>
  966 + <widget class="QLabel" name="m_ctrlLbListState_3_1">
  967 + <property name="geometry">
  968 + <rect>
  969 + <x>496</x>
  970 + <y>78</y>
  971 + <width>111</width>
  972 + <height>81</height>
  973 + </rect>
  974 + </property>
  975 + <property name="font">
  976 + <font>
  977 + <pointsize>10</pointsize>
  978 + </font>
  979 + </property>
  980 + <property name="text">
  981 + <string/>
  982 + </property>
  983 + <property name="alignment">
  984 + <set>Qt::AlignCenter</set>
  985 + </property>
  986 + </widget>
  987 + <widget class="QLabel" name="m_ctrlLbListState_3_9">
  988 + <property name="geometry">
  989 + <rect>
  990 + <x>496</x>
  991 + <y>838</y>
  992 + <width>111</width>
  993 + <height>81</height>
  994 + </rect>
  995 + </property>
  996 + <property name="font">
  997 + <font>
  998 + <pointsize>10</pointsize>
  999 + </font>
  1000 + </property>
  1001 + <property name="text">
  1002 + <string/>
  1003 + </property>
  1004 + <property name="alignment">
  1005 + <set>Qt::AlignCenter</set>
  1006 + </property>
  1007 + </widget>
  1008 + <widget class="QLabel" name="m_ctrlLbListState_3_6">
  1009 + <property name="geometry">
  1010 + <rect>
  1011 + <x>496</x>
  1012 + <y>553</y>
  1013 + <width>111</width>
  1014 + <height>81</height>
  1015 + </rect>
  1016 + </property>
  1017 + <property name="font">
  1018 + <font>
  1019 + <pointsize>10</pointsize>
  1020 + </font>
  1021 + </property>
  1022 + <property name="text">
  1023 + <string/>
  1024 + </property>
  1025 + <property name="alignment">
  1026 + <set>Qt::AlignCenter</set>
  1027 + </property>
  1028 + </widget>
  1029 + <widget class="QLabel" name="m_ctrlLbListState_3_3">
  1030 + <property name="geometry">
  1031 + <rect>
  1032 + <x>496</x>
  1033 + <y>268</y>
  1034 + <width>111</width>
  1035 + <height>81</height>
  1036 + </rect>
  1037 + </property>
  1038 + <property name="font">
  1039 + <font>
  1040 + <pointsize>10</pointsize>
  1041 + </font>
  1042 + </property>
  1043 + <property name="text">
  1044 + <string/>
  1045 + </property>
  1046 + <property name="alignment">
  1047 + <set>Qt::AlignCenter</set>
  1048 + </property>
  1049 + </widget>
  1050 + <widget class="QLabel" name="m_ctrlLbListState_3_8">
  1051 + <property name="geometry">
  1052 + <rect>
  1053 + <x>496</x>
  1054 + <y>743</y>
  1055 + <width>111</width>
  1056 + <height>81</height>
  1057 + </rect>
  1058 + </property>
  1059 + <property name="font">
  1060 + <font>
  1061 + <pointsize>10</pointsize>
  1062 + </font>
  1063 + </property>
  1064 + <property name="text">
  1065 + <string/>
  1066 + </property>
  1067 + <property name="alignment">
  1068 + <set>Qt::AlignCenter</set>
  1069 + </property>
  1070 + </widget>
  1071 + <widget class="QLabel" name="m_ctrlLbListState_3_2">
  1072 + <property name="geometry">
  1073 + <rect>
  1074 + <x>496</x>
  1075 + <y>173</y>
  1076 + <width>111</width>
  1077 + <height>81</height>
  1078 + </rect>
  1079 + </property>
  1080 + <property name="font">
  1081 + <font>
  1082 + <pointsize>10</pointsize>
  1083 + </font>
  1084 + </property>
  1085 + <property name="text">
  1086 + <string/>
  1087 + </property>
  1088 + <property name="alignment">
  1089 + <set>Qt::AlignCenter</set>
  1090 + </property>
  1091 + </widget>
  1092 + <widget class="QLabel" name="m_ctrlLbListState_3_5">
  1093 + <property name="geometry">
  1094 + <rect>
  1095 + <x>496</x>
  1096 + <y>458</y>
  1097 + <width>111</width>
  1098 + <height>81</height>
  1099 + </rect>
  1100 + </property>
  1101 + <property name="font">
  1102 + <font>
  1103 + <pointsize>10</pointsize>
  1104 + </font>
  1105 + </property>
  1106 + <property name="text">
  1107 + <string/>
  1108 + </property>
  1109 + <property name="alignment">
  1110 + <set>Qt::AlignCenter</set>
  1111 + </property>
  1112 + </widget>
  1113 + <widget class="QLabel" name="m_ctrlLbListState_4_4">
  1114 + <property name="geometry">
  1115 + <rect>
  1116 + <x>610</x>
  1117 + <y>363</y>
  1118 + <width>181</width>
  1119 + <height>81</height>
  1120 + </rect>
  1121 + </property>
  1122 + <property name="font">
  1123 + <font>
  1124 + <pointsize>10</pointsize>
  1125 + </font>
  1126 + </property>
  1127 + <property name="text">
  1128 + <string/>
  1129 + </property>
  1130 + <property name="alignment">
  1131 + <set>Qt::AlignCenter</set>
  1132 + </property>
  1133 + </widget>
  1134 + <widget class="QLabel" name="m_ctrlLbListState_4_7">
  1135 + <property name="geometry">
  1136 + <rect>
  1137 + <x>610</x>
  1138 + <y>648</y>
  1139 + <width>181</width>
  1140 + <height>81</height>
  1141 + </rect>
  1142 + </property>
  1143 + <property name="font">
  1144 + <font>
  1145 + <pointsize>10</pointsize>
  1146 + </font>
  1147 + </property>
  1148 + <property name="text">
  1149 + <string/>
  1150 + </property>
  1151 + <property name="alignment">
  1152 + <set>Qt::AlignCenter</set>
  1153 + </property>
  1154 + </widget>
  1155 + <widget class="QLabel" name="m_ctrlLbListState_4_1">
  1156 + <property name="geometry">
  1157 + <rect>
  1158 + <x>610</x>
  1159 + <y>78</y>
  1160 + <width>181</width>
  1161 + <height>81</height>
  1162 + </rect>
  1163 + </property>
  1164 + <property name="font">
  1165 + <font>
  1166 + <pointsize>10</pointsize>
  1167 + </font>
  1168 + </property>
  1169 + <property name="text">
  1170 + <string/>
  1171 + </property>
  1172 + <property name="alignment">
  1173 + <set>Qt::AlignCenter</set>
  1174 + </property>
  1175 + </widget>
  1176 + <widget class="QLabel" name="m_ctrlLbListState_4_9">
  1177 + <property name="geometry">
  1178 + <rect>
  1179 + <x>610</x>
  1180 + <y>838</y>
  1181 + <width>181</width>
  1182 + <height>81</height>
  1183 + </rect>
  1184 + </property>
  1185 + <property name="font">
  1186 + <font>
  1187 + <pointsize>10</pointsize>
  1188 + </font>
  1189 + </property>
  1190 + <property name="text">
  1191 + <string/>
  1192 + </property>
  1193 + <property name="alignment">
  1194 + <set>Qt::AlignCenter</set>
  1195 + </property>
  1196 + </widget>
  1197 + <widget class="QLabel" name="m_ctrlLbListState_4_6">
  1198 + <property name="geometry">
  1199 + <rect>
  1200 + <x>610</x>
  1201 + <y>553</y>
  1202 + <width>181</width>
  1203 + <height>81</height>
  1204 + </rect>
  1205 + </property>
  1206 + <property name="font">
  1207 + <font>
  1208 + <pointsize>10</pointsize>
  1209 + </font>
  1210 + </property>
  1211 + <property name="text">
  1212 + <string/>
  1213 + </property>
  1214 + <property name="alignment">
  1215 + <set>Qt::AlignCenter</set>
  1216 + </property>
  1217 + </widget>
  1218 + <widget class="QLabel" name="m_ctrlLbListState_4_3">
  1219 + <property name="geometry">
  1220 + <rect>
  1221 + <x>610</x>
  1222 + <y>268</y>
  1223 + <width>181</width>
  1224 + <height>81</height>
  1225 + </rect>
  1226 + </property>
  1227 + <property name="font">
  1228 + <font>
  1229 + <pointsize>10</pointsize>
  1230 + </font>
  1231 + </property>
  1232 + <property name="text">
  1233 + <string/>
  1234 + </property>
  1235 + <property name="alignment">
  1236 + <set>Qt::AlignCenter</set>
  1237 + </property>
  1238 + </widget>
  1239 + <widget class="QLabel" name="m_ctrlLbListState_4_8">
  1240 + <property name="geometry">
  1241 + <rect>
  1242 + <x>610</x>
  1243 + <y>743</y>
  1244 + <width>181</width>
  1245 + <height>81</height>
  1246 + </rect>
  1247 + </property>
  1248 + <property name="font">
  1249 + <font>
  1250 + <pointsize>10</pointsize>
  1251 + </font>
  1252 + </property>
  1253 + <property name="text">
  1254 + <string/>
  1255 + </property>
  1256 + <property name="alignment">
  1257 + <set>Qt::AlignCenter</set>
  1258 + </property>
  1259 + </widget>
  1260 + <widget class="QLabel" name="m_ctrlLbListState_4_2">
  1261 + <property name="geometry">
  1262 + <rect>
  1263 + <x>610</x>
  1264 + <y>173</y>
  1265 + <width>181</width>
  1266 + <height>81</height>
  1267 + </rect>
  1268 + </property>
  1269 + <property name="font">
  1270 + <font>
  1271 + <pointsize>10</pointsize>
  1272 + </font>
  1273 + </property>
  1274 + <property name="text">
  1275 + <string/>
  1276 + </property>
  1277 + <property name="alignment">
  1278 + <set>Qt::AlignCenter</set>
  1279 + </property>
  1280 + </widget>
  1281 + <widget class="QLabel" name="m_ctrlLbListState_4_5">
  1282 + <property name="geometry">
  1283 + <rect>
  1284 + <x>610</x>
  1285 + <y>458</y>
  1286 + <width>181</width>
  1287 + <height>81</height>
  1288 + </rect>
  1289 + </property>
  1290 + <property name="font">
  1291 + <font>
  1292 + <pointsize>10</pointsize>
  1293 + </font>
  1294 + </property>
  1295 + <property name="text">
  1296 + <string/>
  1297 + </property>
  1298 + <property name="alignment">
  1299 + <set>Qt::AlignCenter</set>
  1300 + </property>
  1301 + </widget>
  1302 + <widget class="QLabel" name="m_ctrlLbCol4Name_2">
  1303 + <property name="geometry">
  1304 + <rect>
  1305 + <x>609</x>
  1306 + <y>0</y>
  1307 + <width>181</width>
  1308 + <height>70</height>
  1309 + </rect>
  1310 + </property>
  1311 + <property name="font">
  1312 + <font>
  1313 + <family>나눔고딕</family>
  1314 + <pointsize>8</pointsize>
  1315 + </font>
  1316 + </property>
  1317 + <property name="text">
  1318 + <string>최대온도
  1319 +도달시간</string>
  1320 + </property>
  1321 + <property name="alignment">
  1322 + <set>Qt::AlignCenter</set>
  1323 + </property>
  1324 + </widget>
  1325 + </widget>
  1326 + </widget>
  1327 + </widget>
  1328 + <customwidgets>
  1329 + <customwidget>
  1330 + <class>Clock</class>
  1331 + <extends>QWidget</extends>
  1332 + <header>clock.h</header>
  1333 + <container>1</container>
  1334 + </customwidget>
  1335 + </customwidgets>
  1336 + <resources/>
  1337 + <connections/>
  1338 +</ui>
... ...
app/gui/oven_control/resources.qrc
... ... @@ -422,5 +422,14 @@
422 422 <file>images/slider_icon/thermometer_ov.png</file>
423 423 <file>images/background/popup/error.png</file>
424 424 <file>images/symbol/warning_big.png</file>
  425 + <file>images/config/service/service_grid_background.png</file>
  426 + <file>images/config/service/service_menu_line.png</file>
  427 + <file>images/config/service/oprationtime_menu_line.png</file>
  428 + <file>images/config/service/operationtime_heat_bgnd.png</file>
  429 + <file>images/config/service/operationtime_mode_bgnd.png</file>
  430 + <file>images/config/service/operationtime_parts_bgnd.png</file>
  431 + <file>images/config/service/realtime_menu_line.png</file>
  432 + <file>images/config/service/realtime_parts_bgnd.png</file>
  433 + <file>images/config/service/realtime_sensor_bgnd.png</file>
425 434 </qresource>
426 435 </RCC>
... ...
app/gui/oven_control/servicedatas.cpp
1 1 #include "string.h"
2 2 #include "servicedatas.h"
3 3 #include <QDebug>
  4 +#include <fcntl.h>
  5 +#include <unistd.h> // write(), close()
  6 +
  7 +#define FRAM_SIZE 2048
  8 +#define FRAM_TEST_PROCESS 0
  9 +
  10 +#define fRam_path "/sys/bus/spi/devices/spi0.0/fram"
  11 +#define INIT_FRAM 1
  12 +
4 13  
5 14 servicedatas::servicedatas()
6 15 {
7   - qDebug()<< "Statics Data Size Report\r\n error_log size = " << sizeof(error_log) << " \r\nuse_static_log size = " << sizeof(use_statics_log);
  16 + qDebug()<< "Statics Data Size Report\r\n error_log size = " << sizeof(error_log) << " \r\nuse_static_log size = " << sizeof(use_statics_log) \
  17 + << "\r\nsensor_statics_log size = " << sizeof(sensor_statics_log);
8 18 memset((void*)err_log.datas,0x00,sizeof(error_log));
9 19 memset((void*)use_log.datas,0x00,sizeof(use_statics_log));
10   -
  20 + memset((void*)sensor_log.datas,0x00, sizeof(sensor_statics_log));
  21 +#if INIT_FRAM == 1
  22 + saveServiceDatas();
  23 +#else
  24 + loadServiceDatas();
  25 +#endif
11 26 }
12 27  
  28 +
  29 +
13 30 bool servicedatas::loadServiceDatas(void){
  31 + uint8_t buffs[FRAM_SIZE];
  32 + int fd;
  33 +
  34 +#if FRAM_TEST_PROCESS == 1
  35 + int i;
  36 + memset(buffs,0x00,256);
  37 + for(i=0;i<256;i++){
  38 + buffs[i] = i;
  39 + }
  40 + fd = open(fRam_path, O_RDWR);
  41 + if(fd>0){
  42 + write(fd,buffs,256);
  43 + close(fd);
  44 + }
  45 + else{
  46 + qDebug()<<"FRAM open fail!";
  47 + return false;
  48 + }
  49 + i=0;
  50 + memset(buffs,0x00,256);
  51 + fd = open(fRam_path, O_RDONLY );
  52 + if(fd>0){
  53 + read(fd,buffs,256);
  54 + close(fd);
  55 + }else{
  56 + qDebug()<<"FRAM open fail!";
  57 + return false;
  58 + }
  59 + for(i=0;i<256;i++){
  60 + if(i !=buffs[i]) {
  61 + qDebug()<<"FRAM Test Fail";
  62 + return false;
  63 + }
  64 + }
  65 + qDebug()<<"FRAM Test Success!";
14 66 return true;
  67 +#endif
  68 +
  69 +
  70 +
  71 +
  72 +
  73 +
  74 + fd = open(fRam_path, O_RDONLY );
  75 + if(fd>0){
  76 + memset(buffs,0x00,FRAM_SIZE);
  77 + read(fd,buffs,FRAM_SIZE);
  78 + if(buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log)] != 0x9C){
  79 + close(fd);
  80 + return saveServiceDatas();
  81 + }
  82 +
  83 + qDebug() << "FRAM Read, Write Size is " << sizeof(error_log)+sizeof(use_statics_log);
  84 + memcpy((void*)err_log.datas,buffs,sizeof(error_log));
  85 + memcpy((void*)use_log.datas, (void*)(&buffs[sizeof(error_log)]),sizeof(use_statics_log));
  86 + memcpy((void*)sensor_log.datas,(void*)(&buffs[sizeof(error_log) + sizeof(use_statics_log)]),sizeof(sensor_statics_log));
  87 + close(fd);
  88 + }else{
  89 + qDebug()<<"FRAM FILE Open fail!!";
  90 + }
  91 + return true;
15 92 }
16 93  
17 94 bool servicedatas::saveServiceDatas(void){
18   - return true;
  95 + uint8_t buffs[FRAM_SIZE];
  96 + int fd;
  97 + fd = open(fRam_path, O_RDWR | O_SYNC);
  98 + if(fd>0){
  99 + memset(buffs,0x00,FRAM_SIZE);
  100 + memcpy(buffs,(void*)err_log.datas,sizeof(error_log));
  101 + memcpy((void*)(&buffs[sizeof(error_log)]),(void*)use_log.datas,sizeof(use_statics_log));
  102 + memcpy((void*)(&buffs[sizeof(error_log) + sizeof(use_statics_log)]),(void*)sensor_log.datas,sizeof(sensor_statics_log));
  103 + buffs[sizeof(error_log) + sizeof(use_statics_log) + sizeof(sensor_statics_log)] = 0x9C;
  104 + write(fd,buffs,FRAM_SIZE);
  105 + close(fd);
  106 + }else{
  107 + qDebug()<<"FRAM FILE Open fail!!";
  108 + return false;
  109 + }
  110 + return true;
19 111 }
  112 +
  113 +
... ...
app/gui/oven_control/servicedatas.h
... ... @@ -6,16 +6,53 @@
6 6  
7 7 #define STRUCT_PACK __attribute__ ((packed))
8 8  
9   -#define MAX_ERROR_TYPE_CNT 30
  9 +#define MAX_ERROR_TYPE_CNT 31
10 10  
11 11 #define MAX_STATICS_CNT 23
12 12  
  13 +#define MAX_LOG_SENSOR 16
  14 +
13 15 typedef struct _error_item{
14 16 uint16_t fired_cnt;
15 17 time_t first_fired;
16 18 time_t last_fried;
17 19 }STRUCT_PACK error_item;
18 20  
  21 +typedef union{
  22 + int16_t itemp;
  23 + uint16_t utemp;
  24 +}type_temp;
  25 +
  26 +typedef struct _sensor_log_item{
  27 + type_temp high_temp;
  28 + time_t last_high_time;
  29 +}STRUCT_PACK sensor_log_item;
  30 +
  31 +
  32 +typedef union _sensor_statics_log{
  33 + uint8_t datas[MAX_LOG_SENSOR * sizeof(sensor_log_item)];
  34 + sensor_log_item values[MAX_LOG_SENSOR];
  35 + struct{
  36 + sensor_log_item B1;
  37 + sensor_log_item B2;
  38 + sensor_log_item Reserved1;
  39 + sensor_log_item B4;
  40 + sensor_log_item B5;
  41 + sensor_log_item B3_1;
  42 + sensor_log_item B3_2;
  43 + sensor_log_item B3_3;
  44 + sensor_log_item B3_4;
  45 + sensor_log_item Reserved2; //10
  46 + sensor_log_item mbar1;
  47 + sensor_log_item mbar2;
  48 + sensor_log_item pcb;
  49 + sensor_log_item adc;
  50 + sensor_log_item convec_fan_rpm;
  51 + sensor_log_item bunner_rpm;
  52 + }items;
  53 +}STRUCT_PACK sensor_statics_log;
  54 +
  55 +
19 56  
20 57 typedef union _error_log{
21 58 uint8_t datas[MAX_ERROR_TYPE_CNT*sizeof(error_item)];
... ... @@ -51,9 +88,71 @@ typedef union _error_log{
51 88 error_item midd_motor_fail;
52 89 error_item supply_motor_fail; // Steam Generator Tank Supply Pump
53 90 error_item humidity_tamper_fail;
  91 + error_item repeat_error;
54 92 }items;
55 93 }STRUCT_PACK error_log;
56 94  
  95 +enum ERROR_ITEM_IDX{
  96 + ERROR_IDX_door=0,
  97 + ERROR_IDX_upper_fire_fail,
  98 + ERROR_IDX_upper_pan_fail,
  99 + ERROR_IDX_lower_fire_fail,
  100 + ERROR_IDX_lower_pan_fail,
  101 + ERROR_IDX_steam_fire_fail,
  102 + ERROR_IDX_steam_pan_fail,
  103 + ERROR_IDX_water_level_sensor_fail,
  104 + ERROR_IDX_water_flow_sensor_fail,
  105 + ERROR_IDX_inner_temp_high_alarm, //B1 Sensor
  106 + ERROR_IDX_inner_temp_fail,
  107 + ERROR_IDX_qunching_temp_high_alarm, //B2 Sensor
  108 + ERROR_IDX_qunching_temp_fail,
  109 + ERROR_IDX_meatprove_temp1_high_alarm, //B3 Sensor
  110 + ERROR_IDX_meatprove_temp1_fail,
  111 + ERROR_IDX_wall_temp1_high_alarm, //B4 Sensor
  112 + ERROR_IDX_wall_temp1_fail,
  113 + ERROR_IDX_steam_gen_temp_high_alram, //B5 Sensor
  114 + ERROR_IDX_steam_gen_temp_fail,
  115 + ERROR_IDX_meatprove_temp2_fail,
  116 + ERROR_IDX_meatprove_temp3_fail,
  117 + ERROR_IDX_meatprove_temp4_fail,
  118 + ERROR_IDX_pcb_temp_high_alarm, //PCB Temp
  119 + ERROR_IDX_pcb_temp_fail,
  120 + ERROR_IDX_upper_motor_fail,
  121 + ERROR_IDX_lower_motor_fail,
  122 + ERROR_IDX_small_motor_fail,
  123 + ERROR_IDX_midd_motor_fail,
  124 + ERROR_IDX_supply_motor_fail, // Steam Generator Tank Supply Pump
  125 + ERROR_IDX_humidity_tamper_fail
  126 +};
  127 +
  128 +enum USE_ITEMS_IDX{
  129 + USE_ITEM_steam_heat=0,
  130 + USE_ITEM_dry_heat,
  131 + USE_ITEM_upper_heat,
  132 + USE_ITEM_lower_heat,
  133 + USE_ITEM_cook_dry_mode,
  134 + USE_ITEM_cook_steam_mode,
  135 + USE_ITEM_cook_combi_mode,
  136 + USE_ITEM_wash_mode_nocleanser,
  137 + USE_ITEM_wash_mode_simple,
  138 + USE_ITEM_wash_mode_standard,
  139 + USE_ITEM_wash_mode_strong,
  140 + USE_ITEM_wash_mode_speed,
  141 + USE_ITEM_cooldown_mode,
  142 + USE_ITEM_door_open,
  143 + USE_ITEM_dv_open,
  144 + USE_ITEM_ssv_open,
  145 + USE_ITEM_qnv_open,
  146 + USE_ITEM_ssp_open,
  147 + USE_ITEM_snv_open,
  148 + USE_ITEM_hosereel,
  149 + USE_ITEM_hdm_open,
  150 + USE_ITEM_dp_open,
  151 + USE_ITEM_unp_open
  152 +};
  153 +
  154 +
  155 +
57 156  
58 157 typedef union _use_statics_log{
59 158 uint8_t datas[MAX_STATICS_CNT*4];
... ... @@ -89,8 +188,12 @@ class servicedatas
89 188 {
90 189 public:
91 190 servicedatas();
  191 +
  192 +
92 193 error_log err_log;
93 194 use_statics_log use_log;
  195 + sensor_statics_log sensor_log;
  196 + uint16_t m_nRepeatErrorIdx;
94 197 bool saveServiceDatas(void);
95 198 bool loadServiceDatas(void);
96 199 };
... ...
app/gui/oven_control/servicehistorymain.cpp
... ... @@ -0,0 +1,48 @@
  1 +#include "servicehistorymain.h"
  2 +#include "ui_servicehistorymain.h"
  3 +#include "historylistwindow.h"
  4 +
  5 +serviceHistoryMain::serviceHistoryMain(QWidget *parent) :
  6 + QMainWindow(parent),
  7 + ui(new Ui::serviceHistoryMain)
  8 +{
  9 + ui->setupUi(this);
  10 + connect(ui->backButton, SIGNAL(released()), this, SLOT(deleteLater()));
  11 +}
  12 +
  13 +serviceHistoryMain::~serviceHistoryMain()
  14 +{
  15 + delete ui;
  16 +}
  17 +
  18 +void serviceHistoryMain::on_btnUpperBunner_clicked()
  19 +{
  20 + historyListWindow *w = new historyListWindow(this);
  21 + w->setWindosDataSet(ERROR_HISTORY_UPPERBUNNER);
  22 + w->setWindowModality(Qt::WindowModal);
  23 + w->showFullScreen();
  24 +}
  25 +
  26 +void serviceHistoryMain::on_btnSteamBunner_clicked()
  27 +{
  28 + historyListWindow *w = new historyListWindow(this);
  29 + w->setWindosDataSet(ERROR_HISTORY_STEAMBUNNER);
  30 + w->setWindowModality(Qt::WindowModal);
  31 + w->showFullScreen();
  32 +}
  33 +
  34 +void serviceHistoryMain::on_btnLowerBunner_clicked()
  35 +{
  36 + historyListWindow *w = new historyListWindow(this);
  37 + w->setWindosDataSet(ERROR_HISTORY_LOWERBUNNER);
  38 + w->setWindowModality(Qt::WindowModal);
  39 + w->showFullScreen();
  40 +}
  41 +
  42 +void serviceHistoryMain::on_btnErrorTotal_clicked()
  43 +{
  44 + historyListWindow *w = new historyListWindow(this);
  45 + w->setWindosDataSet(ERROR_HISTORY_TOTAL);
  46 + w->setWindowModality(Qt::WindowModal);
  47 + w->showFullScreen();
  48 +}
... ...
app/gui/oven_control/servicehistorymain.h
... ... @@ -0,0 +1,31 @@
  1 +#ifndef SERVICEHISTORYMAIN_H
  2 +#define SERVICEHISTORYMAIN_H
  3 +
  4 +#include <QMainWindow>
  5 +
  6 +namespace Ui {
  7 +class serviceHistoryMain;
  8 +}
  9 +
  10 +class serviceHistoryMain : public QMainWindow
  11 +{
  12 + Q_OBJECT
  13 +
  14 +public:
  15 + explicit serviceHistoryMain(QWidget *parent = 0);
  16 + ~serviceHistoryMain();
  17 +
  18 +private slots:
  19 + void on_btnUpperBunner_clicked();
  20 +
  21 + void on_btnSteamBunner_clicked();
  22 +
  23 + void on_btnLowerBunner_clicked();
  24 +
  25 + void on_btnErrorTotal_clicked();
  26 +
  27 +private:
  28 + Ui::serviceHistoryMain *ui;
  29 +};
  30 +
  31 +#endif // SERVICEHISTORYMAIN_H
... ...
app/gui/oven_control/servicehistorymain.ui
... ... @@ -0,0 +1,357 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<ui version="4.0">
  3 + <class>serviceHistoryMain</class>
  4 + <widget class="QMainWindow" name="serviceHistoryMain">
  5 + <property name="geometry">
  6 + <rect>
  7 + <x>0</x>
  8 + <y>0</y>
  9 + <width>900</width>
  10 + <height>1600</height>
  11 + </rect>
  12 + </property>
  13 + <property name="windowTitle">
  14 + <string>MainWindow</string>
  15 + </property>
  16 + <property name="styleSheet">
  17 + <string notr="true">#centralwidget { background-image: url(:/images/background/config_service.png); }
  18 +#bottomBar { background-image: url(:/images/bottom_bar/background.png); }</string>
  19 + </property>
  20 + <widget class="QWidget" name="centralwidget">
  21 + <property name="styleSheet">
  22 + <string notr="true"/>
  23 + </property>
  24 + <widget class="QStackedWidget" name="upperStack">
  25 + <property name="geometry">
  26 + <rect>
  27 + <x>0</x>
  28 + <y>0</y>
  29 + <width>900</width>
  30 + <height>426</height>
  31 + </rect>
  32 + </property>
  33 + <widget class="QWidget" name="clockContainer">
  34 + <property name="styleSheet">
  35 + <string notr="true">#clockContainer { background-image: url(:/images/clock/background.png); }</string>
  36 + </property>
  37 + <widget class="Clock" name="clock" native="true">
  38 + <property name="geometry">
  39 + <rect>
  40 + <x>272</x>
  41 + <y>36</y>
  42 + <width>356</width>
  43 + <height>355</height>
  44 + </rect>
  45 + </property>
  46 + </widget>
  47 + </widget>
  48 + <widget class="QWidget" name="page_2"/>
  49 + </widget>
  50 + <widget class="QLabel" name="label_15">
  51 + <property name="geometry">
  52 + <rect>
  53 + <x>55</x>
  54 + <y>426</y>
  55 + <width>900</width>
  56 + <height>84</height>
  57 + </rect>
  58 + </property>
  59 + <property name="font">
  60 + <font>
  61 + <family>Malgun Gothic</family>
  62 + <pointsize>11</pointsize>
  63 + </font>
  64 + </property>
  65 + <property name="styleSheet">
  66 + <string notr="true">color: rgb(255, 255, 255);</string>
  67 + </property>
  68 + <property name="text">
  69 + <string>서비스단계(엔지니어모드) &gt; 서비스기록</string>
  70 + </property>
  71 + </widget>
  72 + <widget class="QWidget" name="bottomBar" native="true">
  73 + <property name="geometry">
  74 + <rect>
  75 + <x>0</x>
  76 + <y>1450</y>
  77 + <width>900</width>
  78 + <height>150</height>
  79 + </rect>
  80 + </property>
  81 + <widget class="QPushButton" name="backButton">
  82 + <property name="geometry">
  83 + <rect>
  84 + <x>401</x>
  85 + <y>26</y>
  86 + <width>97</width>
  87 + <height>97</height>
  88 + </rect>
  89 + </property>
  90 + <property name="sizePolicy">
  91 + <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
  92 + <horstretch>0</horstretch>
  93 + <verstretch>0</verstretch>
  94 + </sizepolicy>
  95 + </property>
  96 + <property name="styleSheet">
  97 + <string notr="true">QPushButton { border-image: url(:/images/bottom_bar/back.png); }
  98 +QPushButton:pressed { border-image: url(:/images/bottom_bar/back_ov.png); }</string>
  99 + </property>
  100 + <property name="text">
  101 + <string/>
  102 + </property>
  103 + </widget>
  104 + </widget>
  105 + <widget class="QWidget" name="gridLayoutWidget">
  106 + <property name="geometry">
  107 + <rect>
  108 + <x>40</x>
  109 + <y>545</y>
  110 + <width>821</width>
  111 + <height>66</height>
  112 + </rect>
  113 + </property>
  114 + <layout class="QGridLayout" name="gridLayout" columnstretch="67,33">
  115 + <property name="spacing">
  116 + <number>0</number>
  117 + </property>
  118 + <item row="0" column="0" colspan="2">
  119 + <widget class="QPushButton" name="button">
  120 + <property name="enabled">
  121 + <bool>false</bool>
  122 + </property>
  123 + <property name="sizePolicy">
  124 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  125 + <horstretch>0</horstretch>
  126 + <verstretch>0</verstretch>
  127 + </sizepolicy>
  128 + </property>
  129 + <property name="font">
  130 + <font>
  131 + <family>Roboto</family>
  132 + <pointsize>10</pointsize>
  133 + <weight>75</weight>
  134 + <bold>true</bold>
  135 + <underline>false</underline>
  136 + </font>
  137 + </property>
  138 + <property name="styleSheet">
  139 + <string notr="true">QPushButton { border-image: url(:/images/config/pannel.png);color: rgb(255, 255, 255); }
  140 +QPushButton:pressed { border-image: url(:/images/config/pannel_ov.png); }
  141 +QPushButton { text-align: left;}
  142 +</string>
  143 + </property>
  144 + <property name="text">
  145 + <string> 서비스기록</string>
  146 + </property>
  147 + </widget>
  148 + </item>
  149 + <item row="0" column="1">
  150 + <widget class="QLabel" name="label_17">
  151 + <property name="enabled">
  152 + <bool>true</bool>
  153 + </property>
  154 + <property name="font">
  155 + <font>
  156 + <family>Malgun Gothic</family>
  157 + <pointsize>11</pointsize>
  158 + <weight>75</weight>
  159 + <bold>true</bold>
  160 + </font>
  161 + </property>
  162 + <property name="styleSheet">
  163 + <string notr="true">color: rgb(255, 255, 255);</string>
  164 + </property>
  165 + <property name="text">
  166 + <string>EM-4</string>
  167 + </property>
  168 + <property name="alignment">
  169 + <set>Qt::AlignCenter</set>
  170 + </property>
  171 + <property name="margin">
  172 + <number>0</number>
  173 + </property>
  174 + </widget>
  175 + </item>
  176 + </layout>
  177 + </widget>
  178 + <widget class="QPushButton" name="btnUpperBunner">
  179 + <property name="geometry">
  180 + <rect>
  181 + <x>124</x>
  182 + <y>630</y>
  183 + <width>381</width>
  184 + <height>65</height>
  185 + </rect>
  186 + </property>
  187 + <property name="sizePolicy">
  188 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  189 + <horstretch>0</horstretch>
  190 + <verstretch>0</verstretch>
  191 + </sizepolicy>
  192 + </property>
  193 + <property name="font">
  194 + <font>
  195 + <family>Roboto</family>
  196 + <pointsize>10</pointsize>
  197 + <weight>75</weight>
  198 + <bold>true</bold>
  199 + <underline>false</underline>
  200 + </font>
  201 + </property>
  202 + <property name="styleSheet">
  203 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  204 +color: rgb(55, 55, 55); }
  205 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  206 +QPushButton { text-align: center;}
  207 +</string>
  208 + </property>
  209 + <property name="text">
  210 + <string>상부점화장치</string>
  211 + </property>
  212 + </widget>
  213 + <widget class="QPushButton" name="btnSteamBunner">
  214 + <property name="geometry">
  215 + <rect>
  216 + <x>124</x>
  217 + <y>717</y>
  218 + <width>381</width>
  219 + <height>65</height>
  220 + </rect>
  221 + </property>
  222 + <property name="sizePolicy">
  223 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  224 + <horstretch>0</horstretch>
  225 + <verstretch>0</verstretch>
  226 + </sizepolicy>
  227 + </property>
  228 + <property name="font">
  229 + <font>
  230 + <family>Roboto</family>
  231 + <pointsize>10</pointsize>
  232 + <weight>75</weight>
  233 + <bold>true</bold>
  234 + <underline>false</underline>
  235 + </font>
  236 + </property>
  237 + <property name="styleSheet">
  238 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  239 +color: rgb(55, 55, 55); }
  240 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  241 +QPushButton { text-align: center;}
  242 +</string>
  243 + </property>
  244 + <property name="text">
  245 + <string>스팀점화장치</string>
  246 + </property>
  247 + </widget>
  248 + <widget class="QPushButton" name="btnLowerBunner">
  249 + <property name="geometry">
  250 + <rect>
  251 + <x>124</x>
  252 + <y>802</y>
  253 + <width>381</width>
  254 + <height>65</height>
  255 + </rect>
  256 + </property>
  257 + <property name="sizePolicy">
  258 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  259 + <horstretch>0</horstretch>
  260 + <verstretch>0</verstretch>
  261 + </sizepolicy>
  262 + </property>
  263 + <property name="font">
  264 + <font>
  265 + <family>Roboto</family>
  266 + <pointsize>10</pointsize>
  267 + <weight>75</weight>
  268 + <bold>true</bold>
  269 + <underline>false</underline>
  270 + </font>
  271 + </property>
  272 + <property name="styleSheet">
  273 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  274 +color: rgb(55, 55, 55); }
  275 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  276 +QPushButton { text-align: center;}
  277 +</string>
  278 + </property>
  279 + <property name="text">
  280 + <string>하부점화장치</string>
  281 + </property>
  282 + </widget>
  283 + <widget class="QPushButton" name="btnErrorTotal">
  284 + <property name="geometry">
  285 + <rect>
  286 + <x>124</x>
  287 + <y>887</y>
  288 + <width>381</width>
  289 + <height>65</height>
  290 + </rect>
  291 + </property>
  292 + <property name="sizePolicy">
  293 + <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
  294 + <horstretch>0</horstretch>
  295 + <verstretch>0</verstretch>
  296 + </sizepolicy>
  297 + </property>
  298 + <property name="font">
  299 + <font>
  300 + <family>Roboto</family>
  301 + <pointsize>10</pointsize>
  302 + <weight>75</weight>
  303 + <bold>true</bold>
  304 + <underline>false</underline>
  305 + </font>
  306 + </property>
  307 + <property name="styleSheet">
  308 + <string notr="true">QPushButton { border-image: url(:/images/button/379_63.png);
  309 +color: rgb(55, 55, 55); }
  310 +QPushButton:pressed { border-image: url(:/images/button/379_ov_63.png); }
  311 +QPushButton { text-align: center;}
  312 +</string>
  313 + </property>
  314 + <property name="text">
  315 + <string>서비스에러기록종합</string>
  316 + </property>
  317 + </widget>
  318 + <widget class="QLabel" name="label">
  319 + <property name="geometry">
  320 + <rect>
  321 + <x>100</x>
  322 + <y>606</y>
  323 + <width>28</width>
  324 + <height>314</height>
  325 + </rect>
  326 + </property>
  327 + <property name="text">
  328 + <string/>
  329 + </property>
  330 + <property name="pixmap">
  331 + <pixmap resource="resources.qrc">:/images/config/service/service_menu_line.png</pixmap>
  332 + </property>
  333 + </widget>
  334 + <zorder>label</zorder>
  335 + <zorder>upperStack</zorder>
  336 + <zorder>label_15</zorder>
  337 + <zorder>bottomBar</zorder>
  338 + <zorder>gridLayoutWidget</zorder>
  339 + <zorder>btnUpperBunner</zorder>
  340 + <zorder>btnSteamBunner</zorder>
  341 + <zorder>btnLowerBunner</zorder>
  342 + <zorder>btnErrorTotal</zorder>
  343 + </widget>
  344 + </widget>
  345 + <customwidgets>
  346 + <customwidget>
  347 + <class>Clock</class>
  348 + <extends>QWidget</extends>
  349 + <header>clock.h</header>
  350 + <container>1</container>
  351 + </customwidget>
  352 + </customwidgets>
  353 + <resources>
  354 + <include location="resources.qrc"/>
  355 + </resources>
  356 + <connections/>
  357 +</ui>
... ...
app/gui/oven_control/udphandler.cpp
... ... @@ -13,7 +13,8 @@ typedef struct {
13 13  
14 14 UdpHandler::UdpHandler(QObject *parent) : QObject(parent)
15 15 {
16   -
  16 + bzero(&control, sizeof(control));
  17 + bzero(&state, sizeof(state));
17 18 }
18 19  
19 20 bool UdpHandler::init()
... ...