8c2952457
김태훈
응용 프로그램 추가
|
1
2
3
4
5
|
#ifndef OVEN_H
#define OVEN_H
#include <QObject>
#include <QTimer>
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
6
|
#include <QTime>
|
8c2952457
김태훈
응용 프로그램 추가
|
7
|
|
dedc5eee3
김태훈
프로토콜 변경 반영
|
8
|
#include "define.h"
|
8c2952457
김태훈
응용 프로그램 추가
|
9
10
11
12
13
|
class OvenInterface : public QObject
{
Q_OBJECT
public:
|
c598b01b2
김태훈
GUI 업데이트
|
14
|
OvenInterface(QObject *parent = 0) : QObject(parent) {}
|
8c2952457
김태훈
응용 프로그램 추가
|
15
16
17
18
19
20
21
|
virtual ~OvenInterface(){}
virtual int currentTemp() = 0;
virtual int currentHumidity() = 0;
virtual int currentInterTemp() = 0;
virtual bool door() = 0;
signals:
|
c598b01b2
김태훈
GUI 업데이트
|
22
23
|
void doorOpened();
void doorClosed();
|
8c2952457
김태훈
응용 프로그램 추가
|
24
25
|
public slots:
|
dedc5eee3
김태훈
프로토콜 변경 반영
|
26
|
virtual void setMode(Define::Mode mode) = 0;
|
8c2952457
김태훈
응용 프로그램 추가
|
27
28
|
virtual void setHumidity(int percentage) = 0;
virtual void setTemp(int celsius) = 0;
|
43d009fb5
김태훈
오븐 제어 인터페이스에 시간 설...
|
29
|
virtual void setTime(int secs) = 0;
|
8c2952457
김태훈
응용 프로그램 추가
|
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
virtual void setInterTemp(int celsius) = 0;
virtual void setFan(int rpm) = 0;
virtual void startCooking() = 0;
virtual void stopCooking() = 0;
virtual void startPreheating() = 0;
virtual void stopPreheating() = 0;
virtual void startCooldown() = 0;
virtual void stopCooldown() = 0;
virtual void startHumidification() = 0;
virtual void stopHumidification() = 0;
virtual void startWashing() = 0;
virtual void stopWashing() = 0;
virtual void openDamper() = 0;
virtual void closeDamper() = 0;
};
Q_DECLARE_INTERFACE(OvenInterface, "OvenInterface")
class Oven : public QObject
{
Q_OBJECT
|
538041ab9
김태훈
소스 코드 구조 개선
|
53
|
explicit Oven(QObject *parent = 0);
|
d0cfbd177
김태훈
GUI V0.1.10 (이 버전...
|
54
|
Define::Mode mode_;
|
8c2952457
김태훈
응용 프로그램 추가
|
55
56
57
58
59
60
61
62
63
64
65
66
|
int humidity_;
int temp_;
int time_;
bool interTempEnabled_ = false;
int interTemp_;
int fan_; // 1 ~ 5
bool cooking_ = false;
bool preheating_ = false;
bool cooldown_ = false;
bool damper_ = false; // true: open, false: close
bool humidification_ = false;
bool door_ = false; // true: open, false: close
|
6eb13ba2e
김태훈
예열 팝업 동작 보완 및 동작 ...
|
67
68
69
70
|
int currentHumidity_;
int currentTemp_;
int currentInterTemp_;
|
8c2952457
김태훈
응용 프로그램 추가
|
71
|
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
bool isInterTempValid_;
QTime interTempValidTime;
bool damperRepeat;
bool damperRepeatInfinitely;
int damperRepeatRuntime;
int damperRepeatDelay;
int damperRepeatCount;
QTimer damperRepeatRuntimeTimer;
QTimer damperRepeatDelayTimer;
bool damperRepeatPaused;
bool damperRepeatPausedOnRuntime;
int damperRepeatRemainingTime;
bool humidificationRepeat;
bool humidificationRepeatInfinitely;
int humidificationRepeatRuntime;
int humidificationRepeatDelay;
int humidificationRepeatCount;
QTimer humidificationRepeatRuntimeTimer;
QTimer humidificationRepeatDelayTimer;
bool humidificationRepeatPaused;
bool humidificationRepeatPausedOnRuntime;
int humidificationRepeatRemainingTime;
|
8c2952457
김태훈
응용 프로그램 추가
|
96
97
98
99
|
bool paused_;
QTimer cookingTimer;
|
c598b01b2
김태훈
GUI 업데이트
|
100
|
QTimer damperTimer;
|
8c2952457
김태훈
응용 프로그램 추가
|
101
102
103
104
|
QTimer humidificationTimer;
QTimer interTempTimer;
OvenInterface *interface;
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
105
|
static Oven *instance;
|
8c2952457
김태훈
응용 프로그램 추가
|
106
|
public:
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
107
108
109
110
111
112
|
static Oven *getInstance() {
if (instance == 0)
instance = new Oven();
return instance;
}
|
8c2952457
김태훈
응용 프로그램 추가
|
113
|
|
d0cfbd177
김태훈
GUI V0.1.10 (이 버전...
|
114
|
Define::Mode mode() { return mode_; }
|
8c2952457
김태훈
응용 프로그램 추가
|
115
116
117
118
119
120
121
122
123
124
125
126
|
int humidity() { return humidity_; }
int temp() { return temp_; }
int time();
bool interTempEnabled() { return interTempEnabled_; }
int interTemp() { return interTemp_; }
int fan() { return fan_; }
bool cooking() { return cooking_; }
bool preheating() { return preheating_; }
bool cooldown() { return cooldown_; }
bool damper() { return damper_; }
bool humidification() { return humidification_; }
bool door() { return door_; }
|
8c2952457
김태훈
응용 프로그램 추가
|
127
|
bool paused() { return paused_; }
|
6eb13ba2e
김태훈
예열 팝업 동작 보완 및 동작 ...
|
128
129
130
|
int currentTemp() { return currentTemp_; }
int currentHumidity() { return currentHumidity_; }
int currentInterTemp() { return currentInterTemp_; }
|
8c2952457
김태훈
응용 프로그램 추가
|
131
|
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
132
|
bool isInterTempValid();
|
2bfd3a050
김태훈
환경 설정 대응
|
133
|
int msecs();
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
134
|
|
8c2952457
김태훈
응용 프로그램 추가
|
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
bool cookingStartable();
bool preheatingStartable();
bool cooldownStartable();
bool humidificationStartable();
bool damperOpenable();
int maxTemp();
int minTemp();
int maxInterTemp();
int minInterTemp();
int maxFan();
int minFan();
signals:
void changed(Oven *);
void doorOpened();
public slots:
|
d0cfbd177
김태훈
GUI V0.1.10 (이 버전...
|
154
155
|
void setMode(Define::Mode mode);
void setDefault(Define::Mode mode);
|
8c2952457
김태훈
응용 프로그램 추가
|
156
157
158
159
160
161
162
163
164
165
166
167
168
169
|
void setHumidity(int percentage);
void setTemp(int celsius);
void setTime(int secs);
void setInterTempEnabled(bool enabled);
void setInterTemp(int celsius);
void setFan(int speed);
void stop();
void startCooking();
void stopCooking();
void startPreheating();
void stopPreheating();
void startCooldown();
void stopCooldown();
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
170
|
void startHumidification(int secs = 600);
|
8c2952457
김태훈
응용 프로그램 추가
|
171
|
void stopHumidification();
|
8c2952457
김태훈
응용 프로그램 추가
|
172
|
|
6eb13ba2e
김태훈
예열 팝업 동작 보완 및 동작 ...
|
173
|
void openDamper(int secs = 300);
|
8c2952457
김태훈
응용 프로그램 추가
|
174
|
void closeDamper();
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
175
176
177
178
179
180
181
182
183
|
void repeatHumidification(int runtime, int delay, int count = 0);
void stopRepeatHumidification();
void pauseRepeatHumidification();
void resumeRepeatHumidification();
void repeatDamper(int runtime, int delay, int count = 0);
void stopRepeatDamper();
void pauseRepeatDamper();
void resumeRepeatDamper();
|
6eb13ba2e
김태훈
예열 팝업 동작 보완 및 동작 ...
|
184
185
186
|
void setCurrentHumidity(int percentage);
void setCurrentTemp(int celsius);
void setCurrentInterTemp(int celsius);
|
8c2952457
김태훈
응용 프로그램 추가
|
187
188
189
190
|
void setInterface(OvenInterface *interface);
private slots:
|
d0cfbd177
김태훈
GUI V0.1.10 (이 버전...
|
191
|
bool setMode_(Define::Mode mode);
|
8c2952457
김태훈
응용 프로그램 추가
|
192
193
194
195
196
|
bool setHumidity_(int percentage);
bool setTemp_(int celsius);
bool setInterTempEnabled_(bool enabled);
bool setInterTemp_(int celsius);
bool setFan_(int speed);
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
197
198
|
void runRepeatHumidification();
void idleRepeatHumidification();
|
8c2952457
김태훈
응용 프로그램 추가
|
199
|
|
fd8461350
김태훈
오븐 기능 추가 및 수정
|
200
201
|
void runRepeatDamper();
void idleRepeatDamper();
|
8c2952457
김태훈
응용 프로그램 추가
|
202
203
204
205
|
void onDoorOpened();
void onDoorClosed();
};
|
8c2952457
김태훈
응용 프로그램 추가
|
206
|
#endif // OVEN_H
|