Blame view

app/gui/oven_control/ovencontroller.cpp 3.3 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
39
40
41
42
43
44
45
46
47
48
49
  }
  
  int OvenController::currentTemp()
  {
      return state.curr_heat;
  }
  
  
  int OvenController::currentHumidity()
  {
      return state.curr_humidity;
  }
  
  int OvenController::currentInterTemp()
  {
6f96c947a   김태훈   GUI 0.1.4
50
      return state.sensor6;
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)
  {
285c47121   김태훈   기능 변경
96
97
      qDebug() << "Set Core Temperature" << celsius << "+5";
      udp->set(TG_INNER_TEMP, celsius + 5);
8c2952457   김태훈   응용 프로그램 추가
98
99
100
101
  }
  
  void OvenController::setFan(int rpm)
  {
bc13b09fb   김태훈   디버깅 메시지 추가
102
      qDebug() << "Set Fan RPM" << rpm;
8c2952457   김태훈   응용 프로그램 추가
103
104
105
106
107
      udp->set(TG_CONV_RPM, rpm);
  }
  
  void OvenController::startCooking()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
108
      qDebug() << "Start Cooking";
8c2952457   김태훈   응용 프로그램 추가
109
      udp->set(TG_OVEN_MODE, 1);
366850165   김태훈   연동 시험 결과 반영
110
      udp->set(TG_TIME, 1440);
8c2952457   김태훈   응용 프로그램 추가
111
112
113
114
115
      udp->turnOn(TG_COOKING);
  }
  
  void OvenController::stopCooking()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
116
      qDebug() << "Stop Cooking";
8c2952457   김태훈   응용 프로그램 추가
117
118
119
120
121
      udp->turnOff(TG_COOKING);
  }
  
  void OvenController::startPreheating()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
122
      qDebug() << "Start Preheating";
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
123
      udp->set(TG_OVEN_MODE, 1);
99b8066f4   김태훈   V0.1.1
124
      udp->set(TG_TIME, 1440);
8c2952457   김태훈   응용 프로그램 추가
125
126
127
128
129
      udp->turnOn(TG_PREHEAT);
  }
  
  void OvenController::stopPreheating()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
130
      qDebug() << "Stop Preheating";
8c2952457   김태훈   응용 프로그램 추가
131
132
133
134
135
      udp->turnOff(TG_PREHEAT);
  }
  
  void OvenController::startCooldown()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
136
      qDebug() << "Start Cooldown";
8c2952457   김태훈   응용 프로그램 추가
137
138
139
140
141
      udp->turnOn(TG_COOLDOWN);
  }
  
  void OvenController::stopCooldown()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
142
      qDebug() << "Stop Cooldown";
8c2952457   김태훈   응용 프로그램 추가
143
144
145
146
147
      udp->turnOff(TG_COOLDOWN);
  }
  
  void OvenController::startHumidification()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
148
      qDebug() << "Start Humidification";
8c2952457   김태훈   응용 프로그램 추가
149
150
151
152
153
      udp->turnOn(TG_INNERWATER);
  }
  
  void OvenController::stopHumidification()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
154
      qDebug() << "Stop Humidification";
8c2952457   김태훈   응용 프로그램 추가
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
      udp->turnOff(TG_INNERWATER);
  }
  
  void OvenController::startWashing()
  {
  
  }
  
  void OvenController::stopWashing()
  {
  
  }
  
  void OvenController::openDamper()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
170
      qDebug() << "Open Damper";
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
171
      udp->turnOn(TG_OUTHUMIDITY);
8c2952457   김태훈   응용 프로그램 추가
172
173
174
175
  }
  
  void OvenController::closeDamper()
  {
bc13b09fb   김태훈   디버깅 메시지 추가
176
      qDebug() << "Close Damper";
6eb13ba2e   김태훈   예열 팝업 동작 보완 및 동작 ...
177
      udp->turnOff(TG_OUTHUMIDITY);
8c2952457   김태훈   응용 프로그램 추가
178
  }