9146b87b4
고영탁
엔코더 작업 진행중
|
1
|
#include <QKeyEvent>
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
2
3
4
|
#include "realtimesensorwindow.h"
#include "ui_realtimesensorwindow.h"
#include "ovenstatics.h"
|
00fd78596
고영탁
설정 기능 구현(엔지니어링 모드...
|
5
6
|
#include "stringer.h"
#include "QDateTime"
|
66e60ceb5
김태훈
모든 버튼에 음향 효과 추가
|
7
|
#include "soundplayer.h"
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
8
|
|
14a73498f
김태훈
소스 코드 정리
|
9
|
RealtimeSensorWindow::RealtimeSensorWindow(QWidget *parent) :
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
10
|
QMainWindow(parent),
|
14a73498f
김태훈
소스 코드 정리
|
11
|
ui(new Ui::RealtimeSensorWindow)
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
12
|
{
|
42410a75c
김태훈
오타 수정
|
13
|
OvenStatistics* ovs = OvenStatistics::getInstance();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
14
|
int i = 0;
|
eea7d3d59
김태훈
Segmentation Faul...
|
15
|
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
16
|
ui->setupUi(this);
|
eea7d3d59
김태훈
Segmentation Faul...
|
17
18
|
ui->clockContainer->setParent(ui->upperStack);
setAttribute(Qt::WA_DeleteOnClose);
|
66e60ceb5
김태훈
모든 버튼에 음향 효과 추가
|
19
20
|
foreach (QPushButton *button, findChildren<QPushButton *>())
connect(button, &QPushButton::pressed, SoundPlayer::playClick);
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
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
58
59
60
61
|
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
김태훈
소스 코드 정리
|
62
|
m_arrSensorItems[i] = &(ovs->srvdata->sensor_log.values[m_arrSensorItemIdxs[i]]);
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
63
64
|
}
reloadUi();
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
65
66
67
|
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()),this,SLOT(oneSecTimerFired()));
timer->start(1000); //1000ms fired
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
68
|
}
|
14a73498f
김태훈
소스 코드 정리
|
69
|
RealtimeSensorWindow::~RealtimeSensorWindow()
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
70
|
{
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
71
|
}
|
14a73498f
김태훈
소스 코드 정리
|
72
|
void RealtimeSensorWindow::on_backButton_clicked()
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
73
|
{
|
eea7d3d59
김태훈
Segmentation Faul...
|
74
|
close();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
75
76
77
78
|
}
uint16_t i_temp1,i_temp2;
type_temp temp_temp;
|
14a73498f
김태훈
소스 코드 정리
|
79
|
void RealtimeSensorWindow::reloadUi(void){
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
80
81
82
83
|
char strTime[64];
QString strTemp="";
struct tm *timeptr;
int i = 0;
|
42410a75c
김태훈
오타 수정
|
84
|
OvenStatistics* ovs = OvenStatistics::getInstance();
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
85
86
87
88
89
90
91
|
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
고영탁
설정 기능 구현(엔지니어링 모드...
|
92
|
strTemp = Stringer::temperature(ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp/10);// strTemp.sprintf("%d℃",ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp/10);
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
93
|
else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1 )
|
00fd78596
고영탁
설정 기능 구현(엔지니어링 모드...
|
94
95
|
strTemp = Stringer::temperature(ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).utemp);
else strTemp = Stringer::temperature(ovs->getCurSensorValueByIdx(m_arrSensorItemIdxs[i]).itemp);
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
96
97
98
99
100
|
m_arrLbState[0][i]->setText(strTemp);
}
for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 2 )
|
00fd78596
고영탁
설정 기능 구현(엔지니어링 모드...
|
101
|
strTemp = Stringer::temperature(m_arrSensorItems[i]->high_temp.itemp/10);
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
102
|
else if(ovs->getSensorTypeByIdx(m_arrSensorItemIdxs[i]) == 1)
|
00fd78596
고영탁
설정 기능 구현(엔지니어링 모드...
|
103
104
|
strTemp = Stringer::temperature(m_arrSensorItems[i]->high_temp.utemp);
else strTemp= Stringer::temperature(m_arrSensorItems[i]->high_temp.itemp);
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
105
106
107
108
|
m_arrLbState[1][i]->setText(strTemp);
}
for(i=0;i<REALSENSOR_CONTROL_LIST_ITEM_MAX;i++){
|
00fd78596
고영탁
설정 기능 구현(엔지니어링 모드...
|
109
|
strTemp = Stringer::temperature(m_arrCriticalValue[i]);
|
6a965b9f1
고영탁
엔지니어 모드 2차 구현
|
110
111
112
113
114
115
|
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
고영탁
설정 기능 구현(엔지니어링 모드...
|
116
117
118
119
120
121
|
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차 구현
|
122
123
124
125
126
127
128
129
130
131
132
133
|
}
else{
m_arrLbState[3][i]->setText("-");
}
}
}
}
|
3f5f5d4ce
고영탁
디버깅 요청 사항 적용
|
134
135
136
137
|
void RealtimeSensorWindow::oneSecTimerFired(void){
reloadUi();
}
|
9146b87b4
고영탁
엔코더 작업 진행중
|
138
139
140
141
142
|
void RealtimeSensorWindow::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
143
|
case 0x01000032: // Turn left
|
9146b87b4
고영탁
엔코더 작업 진행중
|
144
145
146
147
|
focusPreviousChild();
break;
case 0x01000031: // Push
break;
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
148
|
case 0x01000030: // Turn right
|
9146b87b4
고영탁
엔코더 작업 진행중
|
149
150
151
152
153
154
155
156
157
|
focusNextChild();
break;
}
}
void RealtimeSensorWindow::keyReleaseEvent(QKeyEvent *event)
{
switch (event->key())
{
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
158
|
case 0x01000032: // Turn left
|
9146b87b4
고영탁
엔코더 작업 진행중
|
159
160
161
162
163
164
165
166
167
168
|
focusPreviousChild();
break;
case 0x01000031: // Push
{
QPushButton *btn = qobject_cast<QPushButton*>(focusWidget());
if(btn != NULL){
btn->click();
}
break;
}
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
169
|
case 0x01000030: // Turn right
|
9146b87b4
고영탁
엔코더 작업 진행중
|
170
171
172
173
|
focusNextChild();
break;
}
}
|
91480de3c
고영탁
센서 실시간 데이터 리셋 기능 추가
|
174
175
176
177
178
179
180
|
void RealtimeSensorWindow::on_resetButton_clicked()
{
OvenStatistics* ovs = OvenStatistics::getInstance();
ovs->resetSensorHistory();
reloadUi();
}
|