Blame view

app/gui/oven_control/ovencontroller.cpp 3.5 KB
8c2952457   김태훈   응용 프로그램 추가
1
  #include "ovencontroller.h"
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
2
3
  OvenController::OvenController(QObject *parent, Oven *oven) : OvenInterface(parent),
      oven(oven)
8c2952457   김태훈   응용 프로그램 추가
4
  {
6f96c947a   김태훈   GUI 0.1.4
5
6
      bzero(&control, sizeof(control));
      bzero(&state, sizeof(state));
8c2952457   김태훈   응용 프로그램 추가
7
8
9
10
11
12
13
14
15
16
  }
  
  void OvenController::setUdpHandler(UdpHandler *udp)
  {
      this->udp = udp;
      connect(udp, SIGNAL(changed()), this, SLOT(onDataChanged()));
  }
  
  void OvenController::onDataChanged()
  {
d66d7f5b4   김태훈   GUI 버전 0.1.2
17
      bool opened = state.door_state != 0;
8c2952457   김태훈   응용 프로그램 추가
18
19
      udp->fillControl(control);
      udp->fillData(state);
d66d7f5b4   김태훈   GUI 버전 0.1.2
20
21
22
23
24
25
26
27
28
29
30
  
      if (opened)
      {
          if (state.door_state == 0)
              emit doorClosed();
      }
      else
      {
          if (state.door_state != 0)
              emit doorOpened();
      }
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
31
32
33
34
  
      oven->setCurrentHumidity(currentHumidity());
      oven->setCurrentTemp(currentTemp());
      oven->setCurrentInterTemp(currentInterTemp());
8c2952457   김태훈   응용 프로그램 추가
35
36
37
38
  }
  
  int OvenController::currentTemp()
  {
ee1a8b1af   김태훈   현재 온도 판별 기준 변경
39
      return state.sensor1;
8c2952457   김태훈   응용 프로그램 추가
40
41
42
43
44
45
46
47
48
49
  }
  
  
  int OvenController::currentHumidity()
  {
      return state.curr_humidity;
  }
  
  int OvenController::currentInterTemp()
  {
eeffffb47   김태훈   중심 온도 측정 기준 변경
50
      return qMin(qMin(state.sensor6, state.sensor7), qMin(state.sensor8, state.sensor9));
8c2952457   김태훈   응용 프로그램 추가
51
52
53
54
  }
  
  bool OvenController::door()
  {
d66d7f5b4   김태훈   GUI 버전 0.1.2
55
      return state.door_state != 0;
8c2952457   김태훈   응용 프로그램 추가
56
  }
dedc5eee3   김태훈   프로토콜 변경 반영
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  void OvenController::setMode(Define::Mode mode)
  {
      int m;
      switch (mode)
      {
      case Define::SteamMode:
          m = 2;
          break;
      case Define::DryMode:
          m = 0;
          break;
      case Define::CombiMode:
          m = 1;
          break;
      default:
          return;
      }
  
      qDebug() << "Set Mode" << m;
      udp->set(TG_COOK_MODE, m);
  }
8c2952457   김태훈   응용 프로그램 추가
78
79
  void OvenController::setHumidity(int percentage)
  {
bc13b09fb   김태훈   디버깅 메시지 추가
80
      qDebug() << "Set Humidity" << percentage;
8c2952457   김태훈   응용 프로그램 추가
81
82
83
84
85
      udp->set(TG_HUMIDITY, percentage);
  }
  
  void OvenController::setTemp(int celsius)
  {
bc13b09fb   김태훈   디버깅 메시지 추가
86
      qDebug() << "Set Temperature" << celsius;
8c2952457   김태훈   응용 프로그램 추가
87
88
      udp->set(TG_HEAT, celsius);
  }
43d009fb5   김태훈   오븐 제어 인터페이스에 시간 설...
89
90
  void OvenController::setTime(int secs)
  {
bc13b09fb   김태훈   디버깅 메시지 추가
91
      qDebug() << "Set Time" << secs;
43d009fb5   김태훈   오븐 제어 인터페이스에 시간 설...
92
93
      udp->set(TG_TIME, secs);
  }
8c2952457   김태훈   응용 프로그램 추가
94
95
  void OvenController::setInterTemp(int celsius)
  {
751979413   김태훈   중심 온도 기능 비활성화가 제대...
96
97
98
99
100
101
102
103
104
105
      if (celsius > 0)
      {
          qDebug() << "Set Core Temperature" << celsius << "+5";
          udp->set(TG_INNER_TEMP, celsius + 5);
      }
      else
      {
          qDebug() << "Set Core Temperature 0";
          udp->set(TG_INNER_TEMP, 0);
      }
8c2952457   김태훈   응용 프로그램 추가
106
107
108
109
  }
  
  void OvenController::setFan(int rpm)
  {
bc13b09fb   김태훈   디버깅 메시지 추가
110
      qDebug() << "Set Fan RPM" << rpm;
8c2952457   김태훈   응용 프로그램 추가
111
112
113
114
115
      udp->set(TG_CONV_RPM, rpm);
  }
  
  void OvenController::startCooking()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
116
      qDebug() << "Start Cooking";
8c2952457   김태훈   응용 프로그램 추가
117
      udp->set(TG_OVEN_MODE, 1);
366850165   김태훈   연동 시험 결과 반영
118
      udp->set(TG_TIME, 1440);
8c2952457   김태훈   응용 프로그램 추가
119
120
121
122
123
      udp->turnOn(TG_COOKING);
  }
  
  void OvenController::stopCooking()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
124
      qDebug() << "Stop Cooking";
8c2952457   김태훈   응용 프로그램 추가
125
126
127
128
129
      udp->turnOff(TG_COOKING);
  }
  
  void OvenController::startPreheating()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
130
      qDebug() << "Start Preheating";
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
131
      udp->set(TG_OVEN_MODE, 1);
99b8066f4   김태훈   V0.1.1
132
      udp->set(TG_TIME, 1440);
8c2952457   김태훈   응용 프로그램 추가
133
134
135
136
137
      udp->turnOn(TG_PREHEAT);
  }
  
  void OvenController::stopPreheating()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
138
      qDebug() << "Stop Preheating";
8c2952457   김태훈   응용 프로그램 추가
139
140
141
142
143
      udp->turnOff(TG_PREHEAT);
  }
  
  void OvenController::startCooldown()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
144
      qDebug() << "Start Cooldown";
8c2952457   김태훈   응용 프로그램 추가
145
146
147
148
149
      udp->turnOn(TG_COOLDOWN);
  }
  
  void OvenController::stopCooldown()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
150
      qDebug() << "Stop Cooldown";
8c2952457   김태훈   응용 프로그램 추가
151
152
153
154
155
      udp->turnOff(TG_COOLDOWN);
  }
  
  void OvenController::startHumidification()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
156
      qDebug() << "Start Humidification";
8c2952457   김태훈   응용 프로그램 추가
157
158
159
160
161
      udp->turnOn(TG_INNERWATER);
  }
  
  void OvenController::stopHumidification()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
162
      qDebug() << "Stop Humidification";
8c2952457   김태훈   응용 프로그램 추가
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
      udp->turnOff(TG_INNERWATER);
  }
  
  void OvenController::startWashing()
  {
  
  }
  
  void OvenController::stopWashing()
  {
  
  }
  
  void OvenController::openDamper()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
178
      qDebug() << "Open Damper";
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
179
      udp->turnOn(TG_OUTHUMIDITY);
8c2952457   김태훈   응용 프로그램 추가
180
181
182
183
  }
  
  void OvenController::closeDamper()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
184
      qDebug() << "Close Damper";
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
185
      udp->turnOff(TG_OUTHUMIDITY);
8c2952457   김태훈   응용 프로그램 추가
186
  }