Commit 29a473b4ecacdfc1b80a267e757542c88b4d1300

Authored by 김태훈
1 parent d66410abd6
Exists in master and in 2 other branches fhd, fhd-demo

청결/관리 상태 기능 뼈대 추가

app/gui/oven_control/dirtylevel.cpp
... ... @@ -6,6 +6,33 @@ namespace {
6 6 QDateTime cookStartTime;
7 7 qint64 cookingTime;
8 8 int cookingCount;
  9 +
  10 +void decountState(int level)
  11 +{
  12 + int current = DirtyLevel::state();
  13 + int target = qMax(current - level, 0);
  14 + switch (target)
  15 + {
  16 + case 0:
  17 + cookingCount = 0;
  18 + break;
  19 + case 1:
  20 + cookingCount = 1;
  21 + break;
  22 + case 2:
  23 + cookingCount = 6;
  24 + break;
  25 + case 3:
  26 + cookingCount = 11;
  27 + break;
  28 + case 4:
  29 + cookingCount = 16;
  30 + break;
  31 + case 5:
  32 + cookingCount = 21;
  33 + break;
  34 + }
  35 +}
9 36 }
10 37  
11 38  
... ... @@ -20,6 +47,33 @@ void DirtyLevel::cookEnd()
20 47 cookingTime += cookStartTime.secsTo(QDateTime::currentDateTime());
21 48 }
22 49  
  50 +void DirtyLevel::wash(int type)
  51 +{
  52 + switch (type)
  53 + {
  54 + case 1:
  55 + cookingTime = qMax(cookingTime - 2 * 3600, 0);
  56 + decountState(1);
  57 + break;
  58 + case 2:
  59 + cookingTime = qMax(cookingTime - 3 * 3600, 0);
  60 + decountState(1);
  61 + break;
  62 + case 3:
  63 + cookingTime = qMax(cookingTime - 4 * 3600, 0);
  64 + decountState(2);
  65 + break;
  66 + case 4:
  67 + cookingTime = qMax(cookingTime - 10 * 3600, 0);
  68 + decountState(2);
  69 + break;
  70 + case 5:
  71 + cookingTime = qMax(cookingTime - 2 * 3600, 0);
  72 + decountState(1);
  73 + break;
  74 + }
  75 +}
  76 +
23 77 int DirtyLevel::dirty()
24 78 {
25 79 if (cookingCount < 1)
... ... @@ -39,13 +93,13 @@ int DirtyLevel::state()
39 93 {
40 94 if (cookingCount < 1)
41 95 return 0;
42   - if (cookingCount < 4)
  96 + if (cookingCount <= 5)
43 97 return 1;
44   - if (cookingCount < 7)
  98 + if (cookingCount <= 10)
45 99 return 2;
46   - if (cookingCount < 10)
  100 + if (cookingCount <= 15)
47 101 return 3;
48   - if (cookingCount < 13)
  102 + if (cookingCount <= 20)
49 103 return 4;
50 104 return 5;
51 105 }
... ...
app/gui/oven_control/dirtylevel.h
... ... @@ -5,6 +5,7 @@
5 5 namespace DirtyLevel {
6 6 void cookStart();
7 7 void cookEnd();
  8 +void wash(int type);
8 9  
9 10 int dirty();
10 11 int state();
... ...