瀏覽代碼

add graphical progress bar

Thomas Buck 1 年之前
父節點
當前提交
ef9356325d

+ 5
- 0
python-test/state_connect.py 查看文件

62
                     return 2 # selection
62
                     return 2 # selection
63
                 else:
63
                 else:
64
                     return 0 # scan
64
                     return 0 # scan
65
+            else:
66
+                if self.state == False:
67
+                    self.lcd.text("Disconnecting...", 0, 100, self.lcd.white)
68
+                else:
69
+                    self.lcd.text("Connecting...", 0, 100, self.lcd.white)
65
 
70
 
66
         self.lcd.show()
71
         self.lcd.show()
67
         return -1 # stay in this state
72
         return -1 # stay in this state

+ 5
- 0
python-test/state_heat.py 查看文件

56
                     return 5 # disconnect
56
                     return 5 # disconnect
57
                 else:
57
                 else:
58
                     return 6 # wait for temperature
58
                     return 6 # wait for temperature
59
+            else:
60
+                if self.state == False:
61
+                    self.lcd.text("Turning heater off...", 0, 100, self.lcd.white)
62
+                else:
63
+                    self.lcd.text("Turning heater on...", 0, 100, self.lcd.white)
59
 
64
 
60
         self.lcd.show()
65
         self.lcd.show()
61
         return -1 # stay in this state
66
         return -1 # stay in this state

+ 6
- 1
python-test/state_pump.py 查看文件

58
 
58
 
59
         async with self.lock:
59
         async with self.lock:
60
             if self.start != None:
60
             if self.start != None:
61
-                draw_graph(self.lcd, 0.0, time.time() - self.start, self.duration)
61
+                now = time.time()
62
+                if now - self.start <= self.duration:
63
+                    draw_graph(self.lcd, 0.0, now - self.start, self.duration)
64
+                else:
65
+                    self.lcd.text("Turning off pump...", 0, 100, self.lcd.white)
62
             else:
66
             else:
63
                 self.lcd.text("Turning on pump...", 0, 100, self.lcd.white)
67
                 self.lcd.text("Turning on pump...", 0, 100, self.lcd.white)
68
+
64
             if self.done:
69
             if self.done:
65
                 if self.value[2] >= (len(workflow["steps"]) - 1):
70
                 if self.value[2] >= (len(workflow["steps"]) - 1):
66
                     # TODO notify
71
                     # TODO notify

+ 16
- 3
python-test/state_wait_temp.py 查看文件

4
 from poll import set_target_temp, get_current_temp
4
 from poll import set_target_temp, get_current_temp
5
 
5
 
6
 def draw_graph(lcd, min, val, max):
6
 def draw_graph(lcd, min, val, max):
7
-    # TODO
8
-    lcd.text("{} -> {} -> {}".format(min, val, max), 0, 100, lcd.white)
7
+    if max == min:
8
+        lcd.text("{} -> {} -> {}".format(min, val, max), 0, 100, lcd.white)
9
+        return
10
+
11
+    w = lcd.width - 10
12
+    ratio = (val - min) / (max - min)
13
+    wfull = int(w * ratio)
14
+    wempty = w - wfull
15
+    lcd.rect(4, 100, wfull + 1, 50, lcd.green, True)
16
+    lcd.rect(4 + wfull, 100, wempty + 2, 50, lcd.green, False)
17
+    lcd.text("{}".format(val), int(lcd.width / 2), 125, lcd.white)
9
 
18
 
10
 class StateWaitTemp:
19
 class StateWaitTemp:
11
     def __init__(self, lcd):
20
     def __init__(self, lcd):
64
             return 4 # heat off
73
             return 4 # heat off
65
 
74
 
66
         async with self.lock:
75
         async with self.lock:
67
-            draw_graph(self.lcd, self.min, self.temp, self.max)
76
+            if self.temp == 0.0:
77
+                self.lcd.text("Setting temperature...", 0, 100, self.lcd.white)
78
+            else:
79
+                draw_graph(self.lcd, self.min, self.temp, self.max)
80
+
68
             if self.temp >= self.max:
81
             if self.temp >= self.max:
69
                 print("switch, {} >= {}".format(self.temp, self.max))
82
                 print("switch, {} >= {}".format(self.temp, self.max))
70
                 return 7 # wait for time
83
                 return 7 # wait for time

+ 1
- 0
python-test/state_wait_time.py 查看文件

32
 
32
 
33
         now = time.time()
33
         now = time.time()
34
         draw_graph(self.lcd, 0.0, now - self.start, self.end - self.start)
34
         draw_graph(self.lcd, 0.0, now - self.start, self.end - self.start)
35
+
35
         if now >= self.end:
36
         if now >= self.end:
36
             print("switch, {} >= {}".format(now, self.end))
37
             print("switch, {} >= {}".format(now, self.end))
37
             return 8 # pump
38
             return 8 # pump

Loading…
取消
儲存