12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #!/usr/bin/env python
-
- import uasyncio as asyncio
- from lcd import LCD
- from state_scan import StateScan
- from state_connect import StateConnect
- from state_select import StateSelect
- from state_heat import StateHeat
- from state_wait_temp import StateWaitTemp
- from state_wait_time import StateWaitTime
- from state_pump import StatePump
-
- class States:
- def __init__(self):
- self.states = []
- self.current = None
-
- def add(self, s):
- self.states.append(s)
-
- def run(self):
- if self.current == None:
- self.current = 0
- self.states[self.current].enter()
-
- next = asyncio.run(self.states[self.current].draw())
- if next >= 0:
- print("switch to {}".format(next))
- val = self.states[self.current].exit()
- self.current = next
- self.states[self.current].enter(val)
-
- if True:#__name__ == "__main__":
- lcd = LCD()
- lcd.brightness(1.0)
-
- states = States()
-
- # 0 - Scan
- scan = StateScan(lcd)
- states.add(scan)
-
- # 1 - Connect
- conn = StateConnect(lcd, True)
- states.add(conn)
-
- # 2 - Select
- select = StateSelect(lcd)
- states.add(select)
-
- # 3 - Heater On
- heatOn = StateHeat(lcd, True)
- states.add(heatOn)
-
- # 4 - Heater Off
- heatOff = StateHeat(lcd, False)
- states.add(heatOff)
-
- # 5 - Disconnect
- disconn = StateConnect(lcd, False)
- states.add(disconn)
-
- # 6 - Wait for temperature
- waitTemp = StateWaitTemp(lcd)
- states.add(waitTemp)
-
- # 7 - Wait for time
- waitTime = StateWaitTime(lcd)
- states.add(waitTime)
-
- # 8 - Pump
- pump = StatePump(lcd)
- states.add(pump)
-
- while True:
- states.run()
|