Blame view

app/gui/oven_control/dirtylevel.cpp 3.12 KB
8e11aab8d   김태훈   파일 위치 변경
1
2
3
  #include "dirtylevel.h"
  
  #include <QDateTime>
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
4
  #include "ovenstatics.h"
8e11aab8d   김태훈   파일 위치 변경
5
6
  namespace {
  QDateTime cookStartTime;
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
7
  bool cookStarted = false;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
  
  void setCookingTime(qint64 t)
  {
      OvenStatistics::getInstance()->setTotalCookingTime(t, false);
  }
  
  void addCookingTime(qint64 t)
  {
      OvenStatistics::getInstance()->addTotalCookingTime(t, false);
  }
  
  qint64 getCookingTime()
  {
      return OvenStatistics::getInstance()->loadTotalCookingTime();
  }
  
  void setCookingCount(int c)
  {
      OvenStatistics::getInstance()->setTotalCookingCount(c, false);
  }
  
  void addCookingCount(int c)
  {
      OvenStatistics::getInstance()->addTotalCookingCount(c, false);
  }
  
  int getCookingCount()
  {
      return OvenStatistics::getInstance()->loadTotalCookingCount();
  }
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
38
39
40
41
42
43
44
45
  
  void decountState(int level)
  {
      int current = DirtyLevel::state();
      int target = qMax(current - level, 0);
      switch (target)
      {
      case 0:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
46
          setCookingCount(0);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
47
48
          break;
      case 1:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
49
          setCookingCount(1);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
50
51
          break;
      case 2:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
52
          setCookingCount(6);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
53
54
          break;
      case 3:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
55
          setCookingCount(11);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
56
57
          break;
      case 4:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
58
          setCookingCount(16);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
59
60
          break;
      case 5:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
61
          setCookingCount(21);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
62
63
64
          break;
      }
  }
8e11aab8d   김태훈   파일 위치 변경
65
66
67
68
69
  }
  
  
  void DirtyLevel::cookStart()
  {
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
70
      cookStarted = true;
093c536e0   김태훈   컴파일 오류 수정
71
      cookStartTime = QDateTime::currentDateTime();
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
72
      ::addCookingCount(1);
8e11aab8d   김태훈   파일 위치 변경
73
74
75
76
  }
  
  void DirtyLevel::cookEnd()
  {
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
77
78
      if (cookStarted)
      {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
79
80
81
          cookStarted = false;
  
          ::addCookingTime(cookStartTime.secsTo(QDateTime::currentDateTime()));
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
82
      }
8e11aab8d   김태훈   파일 위치 변경
83
  }
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
84
85
  void DirtyLevel::wash(int type)
  {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
86
      qint64 cookingTime = ::getCookingTime();
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
87
88
89
      switch (type)
      {
      case 1:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
90
          cookingTime = qMax(cookingTime - 2 * 3600, (qint64) 0);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
91
92
93
          decountState(1);
          break;
      case 2:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
94
          cookingTime = qMax(cookingTime - 3 * 3600, (qint64) 0);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
95
96
97
          decountState(1);
          break;
      case 3:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
98
          cookingTime = qMax(cookingTime - 4 * 3600, (qint64) 0);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
99
100
101
          decountState(2);
          break;
      case 4:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
102
          cookingTime = qMax(cookingTime - 10 * 3600, (qint64) 0);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
103
104
105
          decountState(2);
          break;
      case 5:
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
106
          cookingTime = qMax(cookingTime - 2 * 3600, (qint64) 0);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
107
108
109
          decountState(1);
          break;
      }
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
110
      ::setCookingTime(cookingTime);
29a473b4e   김태훈   청결/관리 상태 기능 뼈대 추가
111
  }
8e11aab8d   김태훈   파일 위치 변경
112
113
  int DirtyLevel::dirty()
  {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
114
      if (::getCookingCount() < 1)
8e11aab8d   김태훈   파일 위치 변경
115
          return 0;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
116
117
118
  
      qint64 cookingTime = ::getCookingTime();
      if (cookingTime < 1 * 3600)
8e11aab8d   김태훈   파일 위치 변경
119
          return 1;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
120
      if (cookingTime < 3 * 3600)
8e11aab8d   김태훈   파일 위치 변경
121
          return 2;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
122
      if (cookingTime < 5 * 3600)
8e11aab8d   김태훈   파일 위치 변경
123
          return 3;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
124
      if (cookingTime < 7 * 3600)
8e11aab8d   김태훈   파일 위치 변경
125
126
127
128
129
130
          return 4;
      return 5;
  }
  
  int DirtyLevel::state()
  {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
131
132
      int cookingCount = ::getCookingCount();
      if (cookingCount < 1)
8e11aab8d   김태훈   파일 위치 변경
133
          return 0;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
134
      if (cookingCount <= 5)
8e11aab8d   김태훈   파일 위치 변경
135
          return 1;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
136
      if (cookingCount <= 10)
8e11aab8d   김태훈   파일 위치 변경
137
          return 2;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
138
      if (cookingCount <= 15)
8e11aab8d   김태훈   파일 위치 변경
139
          return 3;
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
140
      if (cookingCount <= 20)
8e11aab8d   김태훈   파일 위치 변경
141
142
143
          return 4;
      return 5;
  }
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
144
145
146
  
  void DirtyLevel::setCookingTime(qint64 secs)
  {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
147
      ::setCookingTime(secs);
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
148
149
150
151
  }
  
  int DirtyLevel::cookingTime()
  {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
152
      return ::getCookingTime();
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
153
154
155
156
  }
  
  int DirtyLevel::cookingCount()
  {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
157
      return ::getCookingCount();
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
158
159
160
161
  }
  
  void DirtyLevel::setCookingCount(int count)
  {
b53c48f6a   김태훈   세척 관련 관리 자료를 저장하지...
162
      ::setCookingCount(count);
f4f894f09   김태훈   청결/관리 상태 저장 값 Get...
163
  }