Blame view

app/gui/oven_control/realtimesensorwindow.cpp 5.1 KB
6a965b9f1   고영탁   엔지니어 모드 2차 구현
1
2
3
  #include "realtimesensorwindow.h"
  #include "ui_realtimesensorwindow.h"
  #include "ovenstatics.h"
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
4
5
  #include "stringer.h"
  #include "QDateTime"
6a965b9f1   고영탁   엔지니어 모드 2차 구현
6
14a73498f   김태훈   소스 코드 정리
7
  RealtimeSensorWindow::RealtimeSensorWindow(QWidget *parent) :
6a965b9f1   고영탁   엔지니어 모드 2차 구현
8
      QMainWindow(parent),
14a73498f   김태훈   소스 코드 정리
9
      ui(new Ui::RealtimeSensorWindow)
6a965b9f1   고영탁   엔지니어 모드 2차 구현
10
  {
42410a75c   김태훈   오타 수정
11
      OvenStatistics* ovs = OvenStatistics::getInstance();
6a965b9f1   고영탁   엔지니어 모드 2차 구현
12
      int i = 0;
eea7d3d59   김태훈   Segmentation Faul...
13
6a965b9f1   고영탁   엔지니어 모드 2차 구현
14
      ui->setupUi(this);
eea7d3d59   김태훈   Segmentation Faul...
15
16
      ui->clockContainer->setParent(ui->upperStack);
      setAttribute(Qt::WA_DeleteOnClose);
6a965b9f1   고영탁   엔지니어 모드 2차 구현
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
      m_arrLbState[0][0] = ui->m_ctrlLbListState_1_1;
      m_arrLbState[0][1] = ui->m_ctrlLbListState_1_2;
      m_arrLbState[0][2] = ui->m_ctrlLbListState_1_3;
      m_arrLbState[0][3] = ui->m_ctrlLbListState_1_4;
      m_arrLbState[0][4] = ui->m_ctrlLbListState_1_5;
      m_arrLbState[0][5] = ui->m_ctrlLbListState_1_6;
      m_arrLbState[0][6] = ui->m_ctrlLbListState_1_7;
      m_arrLbState[0][7] = ui->m_ctrlLbListState_1_8;
      m_arrLbState[0][8] = ui->m_ctrlLbListState_1_9;
  
      m_arrLbState[1][0] = ui->m_ctrlLbListState_2_1;
      m_arrLbState[1][1] = ui->m_ctrlLbListState_2_2;
      m_arrLbState[1][2] = ui->m_ctrlLbListState_2_3;
      m_arrLbState[1][3] = ui->m_ctrlLbListState_2_4;
      m_arrLbState[1][4] = ui->m_ctrlLbListState_2_5;
      m_arrLbState[1][5] = ui->m_ctrlLbListState_2_6;
      m_arrLbState[1][6] = ui->m_ctrlLbListState_2_7;
      m_arrLbState[1][7] = ui->m_ctrlLbListState_2_8;
      m_arrLbState[1][8] = ui->m_ctrlLbListState_2_9;
  
      m_arrLbState[2][0] = ui->m_ctrlLbListState_3_1;
      m_arrLbState[2][1] = ui->m_ctrlLbListState_3_2;
      m_arrLbState[2][2] = ui->m_ctrlLbListState_3_3;
      m_arrLbState[2][3] = ui->m_ctrlLbListState_3_4;
      m_arrLbState[2][4] = ui->m_ctrlLbListState_3_5;
      m_arrLbState[2][5] = ui->m_ctrlLbListState_3_6;
      m_arrLbState[2][6] = ui->m_ctrlLbListState_3_7;
      m_arrLbState[2][7] = ui->m_ctrlLbListState_3_8;
      m_arrLbState[2][8] = ui->m_ctrlLbListState_3_9;
  
      m_arrLbState[3][0] = ui->m_ctrlLbListState_4_1;
      m_arrLbState[3][1] = ui->m_ctrlLbListState_4_2;
      m_arrLbState[3][2] = ui->m_ctrlLbListState_4_3;
      m_arrLbState[3][3] = ui->m_ctrlLbListState_4_4;
      m_arrLbState[3][4] = ui->m_ctrlLbListState_4_5;
      m_arrLbState[3][5] = ui->m_ctrlLbListState_4_6;
      m_arrLbState[3][6] = ui->m_ctrlLbListState_4_7;
      m_arrLbState[3][7] = ui->m_ctrlLbListState_4_8;
      m_arrLbState[3][8] = ui->m_ctrlLbListState_4_9;
  
      for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
14a73498f   김태훈   소스 코드 정리
58
          m_arrSensorItems[i] = &(ovs->srvdata->sensor_log.values[m_arrSensorItemIdxs[i]]);
6a965b9f1   고영탁   엔지니어 모드 2차 구현
59
60
      }
      reloadUi();
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
61
62
63
      timer = new QTimer(this);
      connect(timer, SIGNAL(timeout()),this,SLOT(oneSecTimerFired()));
      timer->start(1000); //1000ms fired
6a965b9f1   고영탁   엔지니어 모드 2차 구현
64
  }
14a73498f   김태훈   소스 코드 정리
65
  RealtimeSensorWindow::~RealtimeSensorWindow()
6a965b9f1   고영탁   엔지니어 모드 2차 구현
66
  {
6a965b9f1   고영탁   엔지니어 모드 2차 구현
67
  }
14a73498f   김태훈   소스 코드 정리
68
  void RealtimeSensorWindow::on_backButton_clicked()
6a965b9f1   고영탁   엔지니어 모드 2차 구현
69
  {
eea7d3d59   김태훈   Segmentation Faul...
70
      close();
6a965b9f1   고영탁   엔지니어 모드 2차 구현
71
72
73
74
  }
  
  uint16_t i_temp1,i_temp2;
  type_temp temp_temp;
14a73498f   김태훈   소스 코드 정리
75
  void RealtimeSensorWindow::reloadUi(void){
6a965b9f1   고영탁   엔지니어 모드 2차 구현
76
77
78
79
      char strTime[64];
      QString strTemp="";
      struct tm *timeptr;
      int i = 0;
42410a75c   김태훈   오타 수정
80
      OvenStatistics* ovs = OvenStatistics::getInstance();
6a965b9f1   고영탁   엔지니어 모드 2차 구현
81
82
83
84
85
86
87
      if(ovs!= NULL){
          for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
              i_temp1 = i;
              i_temp2 = ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]);
              temp_temp = ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]);
  
              if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 2 )
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
88
                      strTemp = Stringer::temperature(ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp/10);// strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp/10);
6a965b9f1   고영탁   엔지니어 모드 2차 구현
89
              else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1 )
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
90
91
                      strTemp = Stringer::temperature(ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).utemp);
              else  strTemp = Stringer::temperature(ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp);
6a965b9f1   고영탁   엔지니어 모드 2차 구현
92
93
94
95
96
              m_arrLbState[0][i]->setText(strTemp);
          }
  
          for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
              if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 2 )
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
97
                      strTemp = Stringer::temperature(m_arrSensorItems[i]->high_temp.itemp/10);
6a965b9f1   고영탁   엔지니어 모드 2차 구현
98
              else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1)
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
99
100
                      strTemp = Stringer::temperature(m_arrSensorItems[i]->high_temp.utemp);
              else  strTemp= Stringer::temperature(m_arrSensorItems[i]->high_temp.itemp);
6a965b9f1   고영탁   엔지니어 모드 2차 구현
101
102
103
104
              m_arrLbState[1][i]->setText(strTemp);
          }
  
          for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
105
              strTemp = Stringer::temperature(m_arrCriticalValue[i]);
6a965b9f1   고영탁   엔지니어 모드 2차 구현
106
107
108
109
110
111
              m_arrLbState[2][i]->setText(strTemp);
          }
  
  
          for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
              if(m_arrSensorItems[i]->last_high_time !=0){
00fd78596   고영탁   설정 기능 구현(엔지니어링 모드...
112
113
114
115
116
117
                  QDateTime dt_tm;
                  dt_tm.setTime_t(m_arrSensorItems[i]->last_high_time);
                  //timeptr = localtime(&(m_arrSensorItems[i]->last_high_time));
                  //strftime(strTime,64,"%y-%m-%d
  %H:%M:%S",timeptr);
                  m_arrLbState[3][i]->setText(Stringer::DateTimeString(dt_tm));
6a965b9f1   고영탁   엔지니어 모드 2차 구현
118
119
120
121
122
123
124
125
126
127
128
129
              }
              else{
                  m_arrLbState[3][i]->setText("-");
              }
          }
  
  
  
  
      }
  
  }
3f5f5d4ce   고영탁   디버깅 요청 사항 적용
130
131
132
133
  
  void RealtimeSensorWindow::oneSecTimerFired(void){
      reloadUi();
  }