Browse Source

add graphical progress bar

Thomas Buck 1 year ago
parent
commit
ef9356325d

+ 5
- 0
python-test/state_connect.py View File

@@ -62,6 +62,11 @@ class StateConnect:
62 62
                     return 2 # selection
63 63
                 else:
64 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 71
         self.lcd.show()
67 72
         return -1 # stay in this state

+ 5
- 0
python-test/state_heat.py View File

@@ -56,6 +56,11 @@ class StateHeat:
56 56
                     return 5 # disconnect
57 57
                 else:
58 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 65
         self.lcd.show()
61 66
         return -1 # stay in this state

+ 6
- 1
python-test/state_pump.py View File

@@ -58,9 +58,14 @@ class StatePump:
58 58
 
59 59
         async with self.lock:
60 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 66
             else:
63 67
                 self.lcd.text("Turning on pump...", 0, 100, self.lcd.white)
68
+
64 69
             if self.done:
65 70
                 if self.value[2] >= (len(workflow["steps"]) - 1):
66 71
                     # TODO notify

+ 16
- 3
python-test/state_wait_temp.py View File

@@ -4,8 +4,17 @@ import uasyncio as asyncio
4 4
 from poll import set_target_temp, get_current_temp
5 5
 
6 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 19
 class StateWaitTemp:
11 20
     def __init__(self, lcd):
@@ -64,7 +73,11 @@ class StateWaitTemp:
64 73
             return 4 # heat off
65 74
 
66 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 81
             if self.temp >= self.max:
69 82
                 print("switch, {} >= {}".format(self.temp, self.max))
70 83
                 return 7 # wait for time

+ 1
- 0
python-test/state_wait_time.py View File

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

Loading…
Cancel
Save