Screens cleanup
This commit is contained in:
parent
08610f2c70
commit
ed30bf42d9
12
Button.py
12
Button.py
@ -2,22 +2,20 @@ import machine
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
class Button():
|
class Button():
|
||||||
def __init__(self,pin,onPushDown = None, onPushUp = None,onClick = None,onHold = None,clickTime=300,debounceTimeMs = 50,inputMode = machine.Pin.IN,inverted = False):
|
def __init__(self,pin,onPushDown = None, onPushUp = None,clickTime=300,debounceTimeMs = 50,inputMode = machine.Pin.IN,inverted = False):
|
||||||
self.pin = machine.Pin(pin,inputMode)
|
self.pin = machine.Pin(pin,inputMode)
|
||||||
self.debounceTimestamp = -debounceTimeMs
|
self.debounceTimestamp = -debounceTimeMs
|
||||||
self.debounceTimeMs = int(debounceTimeMs)
|
self.debounceTimeMs = int(debounceTimeMs)
|
||||||
self.clickTime = clickTime
|
self.clickTime = clickTime
|
||||||
self.pushDownTimeStamp = -clickTime
|
self.pushDownTimeStamp = -clickTime
|
||||||
self.setCallbacks(onPushDown,onPushUp,onClick,onHold)
|
self.setCallbacks(onPushDown,onPushUp)
|
||||||
self.pin.irq(trigger=machine.Pin.IRQ_RISING|machine.Pin.IRQ_FALLING , handler=self._IRQ)
|
self.pin.irq(trigger=machine.Pin.IRQ_RISING|machine.Pin.IRQ_FALLING , handler=self._IRQ)
|
||||||
self.value = self.pin.value()
|
self.value = self.pin.value()
|
||||||
self.inverted = inverted
|
self.inverted = inverted
|
||||||
|
|
||||||
def setCallbacks(self,onPushDown = None, onPushUp = None,onClick = None,onHold = None):
|
def setCallbacks(self,onPushDown = None, onPushUp = None):
|
||||||
self.onPushDown = onPushDown
|
self.onPushDown = onPushDown
|
||||||
self.onPushUp = onPushUp
|
self.onPushUp = onPushUp
|
||||||
self.onClick = onClick
|
|
||||||
self.onHold = onHold
|
|
||||||
|
|
||||||
def _IRQ(self,p):
|
def _IRQ(self,p):
|
||||||
new_value = self.pin.value()
|
new_value = self.pin.value()
|
||||||
@ -28,9 +26,7 @@ class Button():
|
|||||||
self.debounceTimestamp = time_ms
|
self.debounceTimestamp = time_ms
|
||||||
if (new_value ^ self.inverted):
|
if (new_value ^ self.inverted):
|
||||||
if (self.onPushUp != None):
|
if (self.onPushUp != None):
|
||||||
self.onPushUp()
|
self.onPushUp(time_ms-self.pushDownTimeStamp)
|
||||||
if (self.onClick != None and (self.pushDownTimeStamp + self.clickTime > time_ms)):
|
|
||||||
self.onClick()
|
|
||||||
else:
|
else:
|
||||||
if (self.onPushDown != None):
|
if (self.onPushDown != None):
|
||||||
self.onPushDown()
|
self.onPushDown()
|
||||||
|
28
Buzzer.py
28
Buzzer.py
@ -11,20 +11,23 @@ a = 440 #Hz
|
|||||||
b = 493 #Hz
|
b = 493 #Hz
|
||||||
C = 523 #Hz
|
C = 523 #Hz
|
||||||
|
|
||||||
|
# Sounds
|
||||||
# (Duration,Freq)
|
# (Duration,Freq)
|
||||||
# If Last Duration is None play endlessly
|
# If Last Duration is None play last Freq times (negative = infinite)
|
||||||
# 0: Silent
|
|
||||||
# 1: BeepBeep
|
BEEP = ((100,1100),)
|
||||||
# 2: Alle Meine Entchen
|
BEEPBEEP = ((700,1000),(100,None),(600,1000))
|
||||||
SOUNDS = [((0,None),),\
|
|
||||||
((700,1000),(100,None),(600,1000)),\
|
# 0: BEEEEP BEEEEP BEEEEEP
|
||||||
|
# 1: Alle Meine Entchen
|
||||||
|
ALARMTONES = (((300,1200),(100,None),(200,1200),(300,None),(None,10)),
|
||||||
((400,c),(100,None),(400,d),(100,None),(400,e),(100,None),(400,f),(100,None),\
|
((400,c),(100,None),(400,d),(100,None),(400,e),(100,None),(400,f),(100,None),\
|
||||||
(900,g),(100,None),(900,g),(100,None),(400,a),(100,None),(400,a),(100,None),\
|
(900,g),(100,None),(900,g),(100,None),(400,a),(100,None),(400,a),(100,None),\
|
||||||
(400,a),(100,None),(400,a),(100,None),(1900,g),(100,None),(400,a),(100,None),\
|
(400,a),(100,None),(400,a),(100,None),(1900,g),(100,None),(400,a),(100,None),\
|
||||||
(400,a),(100,None),(400,a),(100,None),(400,a),(100,None),(1900,g),(100,None),\
|
(400,a),(100,None),(400,a),(100,None),(400,a),(100,None),(1900,g),(100,None),\
|
||||||
(400,f),(100,None),(400,f),(100,None),(400,f),(100,None),(400,f),(100,None),\
|
(400,f),(100,None),(400,f),(100,None),(400,f),(100,None),(400,f),(100,None),\
|
||||||
(900,e),(100,None),(900,e),(100,None),(400,d),(100,None),(400,d),(100,None),\
|
(900,e),(100,None),(900,e),(100,None),(400,d),(100,None),(400,d),(100,None),\
|
||||||
(400,d),(100,None),(400,d),(100,None),(2000,c))]#,(None,None)
|
(400,d),(100,None),(400,d),(100,None),(2000,c)),)
|
||||||
|
|
||||||
class Buzzer():
|
class Buzzer():
|
||||||
def __init__(self,pin,duty = 100):
|
def __init__(self,pin,duty = 100):
|
||||||
@ -42,13 +45,20 @@ class Buzzer():
|
|||||||
self._pwm.duty(0)
|
self._pwm.duty(0)
|
||||||
else:
|
else:
|
||||||
self.newSound = False
|
self.newSound = False
|
||||||
|
timesPlayed = 0
|
||||||
|
print("Play sound!")
|
||||||
for i in range(len(self.sound)):
|
for i in range(len(self.sound)):
|
||||||
s = self.sound[i]
|
s = self.sound[i]
|
||||||
if s[0] == None:
|
if s[0] == None:
|
||||||
|
if s[1]-timesPlayed == 0:
|
||||||
|
break
|
||||||
|
else:
|
||||||
i = 0
|
i = 0
|
||||||
|
timesPlayed += 1
|
||||||
if (s[1] != None):
|
if (s[1] != None):
|
||||||
self._pwm.freq(s[1])
|
#self._pwm.freq(s[1])
|
||||||
self._pwm.duty(self.duty)
|
#self._pwm.duty(self.duty)
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
self._pwm.duty(0)
|
self._pwm.duty(0)
|
||||||
await asyncio.sleep_ms(s[0])
|
await asyncio.sleep_ms(s[0])
|
||||||
|
224
Screens.py
224
Screens.py
@ -4,127 +4,155 @@ import Buzzer
|
|||||||
import Settings
|
import Settings
|
||||||
import Hardware as HW
|
import Hardware as HW
|
||||||
|
|
||||||
|
class InitHandsScreen():
|
||||||
|
def __await__(self):
|
||||||
|
self.running = True
|
||||||
|
self.mode=0 # 0: Minutes, 1: Hours
|
||||||
|
HW.housingLEDs.fill((0,0,0))
|
||||||
|
HW.stepperminu.rotateTo(0)
|
||||||
|
HW.stepperhour.rotateTo(0)
|
||||||
|
HW.leds[1].flash(0.7)
|
||||||
|
for number,button in enumerate(HW.buttons):
|
||||||
|
button.setCallbacks(\
|
||||||
|
onPushDown=lambda i=number:self.onButtonPressed(i),\
|
||||||
|
onPushUp=lambda pushDownTime,button=number:self.onButtonReleased(button,pushDownTime))
|
||||||
|
# Wait for the Hands to move up
|
||||||
|
while not HW.stepperhour.isAtTarget() or not HW.stepperminu.isAtTarget():
|
||||||
|
await asyncio.sleep_ms(200)
|
||||||
|
HW.housingLEDs.upper((50,50,50))
|
||||||
|
|
||||||
|
while self.running:
|
||||||
|
await asyncio.sleep_ms(200)
|
||||||
|
HW.housingLEDs.fill((0,0,0))
|
||||||
|
self.cleanup()
|
||||||
|
|
||||||
|
__iter__ = __await__ # https://github.com/micropython/micropython/issues/2678
|
||||||
|
def finish(self):
|
||||||
|
self.running = False
|
||||||
|
for b in HW.buttons:
|
||||||
|
b.setCallbacks()#Clear Callbacks
|
||||||
|
for l in HW.leds:
|
||||||
|
l.off()
|
||||||
|
def __init__(self):
|
||||||
|
self.running = False
|
||||||
|
|
||||||
|
def onButtonPressed(self,button):
|
||||||
|
if button == 1:
|
||||||
|
HW.leds[button].on(overwriteFlashing=False)
|
||||||
|
else:
|
||||||
|
HW.leds[button].on()
|
||||||
|
if self.mode == 0:
|
||||||
|
HW.stepperminu.rotateTo(direction=(1 if button == 0 else -1))
|
||||||
|
elif self.mode == 1:
|
||||||
|
HW.stepperhour.rotateTo(direction=(1 if button == 0 else -1))
|
||||||
|
|
||||||
|
def onButtonReleased(self,button,time):
|
||||||
|
HW.leds[button].off(overwriteFlashing=(button!=1))
|
||||||
|
if button == 1:
|
||||||
|
self.mode+=1
|
||||||
|
if self.mode == 2:
|
||||||
|
self.finish()
|
||||||
|
else:
|
||||||
|
if self.mode == 0:
|
||||||
|
HW.stepperminu.stop()
|
||||||
|
else:
|
||||||
|
HW.stepperhour.stop()
|
||||||
|
|
||||||
|
def cleanup(self):
|
||||||
|
HW.stepperhour.reset() # Set the new Zero
|
||||||
|
HW.stepperminu.reset()
|
||||||
|
|
||||||
class ClockScreen():
|
class ClockScreen():
|
||||||
|
def __await__(self):
|
||||||
|
self.running = True
|
||||||
|
self.init()
|
||||||
|
while self.running:
|
||||||
|
await asyncio.sleep_ms(200)
|
||||||
|
HW.housingLEDs.fill((0,0,0))
|
||||||
|
self.cleanup()
|
||||||
|
__iter__ = __await__ # https://github.com/micropython/micropython/issues/2678
|
||||||
|
def finish(self):
|
||||||
|
self.running = False
|
||||||
|
for b in HW.buttons:
|
||||||
|
b.setCallbacks()#Clear Callbacks
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.running = False
|
||||||
|
self.light = False
|
||||||
|
self.clock = StepperClock.StepperClock()
|
||||||
|
|
||||||
COLORS = ((255,0,0),(255,0,127),(127,0,255),(0,0,255),(0,127,255),(0,255,127),(0,255,0),(127,255,0),(255,127,0))
|
COLORS = ((255,0,0),(255,0,127),(127,0,255),(0,0,255),(0,127,255),(0,255,127),(0,255,0),(127,255,0),(255,127,0))
|
||||||
BRIGHTNESS = (5,10,50,100,160,255)
|
BRIGHTNESS = (5,10,50,100,160,255)
|
||||||
|
|
||||||
def __init__(self):
|
def onButtonPressed(self,button):
|
||||||
self.clock = StepperClock.StepperClock()
|
|
||||||
self.running = False
|
|
||||||
self.light = False
|
|
||||||
|
|
||||||
def stopIfAllPressed(self,button):
|
|
||||||
HW.leds[button].on()
|
HW.leds[button].on()
|
||||||
for b in HW.buttons:
|
|
||||||
if not b.isPushed():
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
self.running = False
|
|
||||||
|
|
||||||
def onClicked(self,button):
|
def onButtonReleased(self,button,pushDownTime):
|
||||||
|
print("Clock press",pushDownTime)
|
||||||
|
HW.leds[button].off()
|
||||||
if button == 0:
|
if button == 0:
|
||||||
Settings.selectedBrightness=(Settings.selectedBrightness+1)%len(ClockScreen.BRIGHTNESS)
|
Settings.selectedBrightness=(Settings.selectedBrightness+1)%len(ClockScreen.BRIGHTNESS)
|
||||||
elif button == 1:
|
elif button == 1:
|
||||||
|
if pushDownTime > 1100:
|
||||||
|
self.finish()
|
||||||
|
return
|
||||||
self.light = not self.light
|
self.light = not self.light
|
||||||
elif button == 2:
|
elif button == 2:
|
||||||
Settings.selectedColor=(Settings.selectedColor+1)%len(ClockScreen.COLORS)
|
Settings.selectedColor=(Settings.selectedColor+1)%len(ClockScreen.COLORS)
|
||||||
HW.housingLEDs.fill([int(c/255*ClockScreen.BRIGHTNESS[Settings.selectedBrightness]) for c in ClockScreen.COLORS[Settings.selectedColor]] if self.light else (0,0,0))
|
HW.housingLEDs.fill([int(c/255*ClockScreen.BRIGHTNESS[Settings.selectedBrightness]) for c in ClockScreen.COLORS[Settings.selectedColor]] if self.light else (0,0,0))
|
||||||
|
|
||||||
def __await__(self):
|
|
||||||
|
def init(self):
|
||||||
HW.housingLEDs.fill([int(c/255*ClockScreen.BRIGHTNESS[Settings.selectedBrightness]) for c in ClockScreen.COLORS[Settings.selectedColor]] if self.light else (0,0,0))
|
HW.housingLEDs.fill([int(c/255*ClockScreen.BRIGHTNESS[Settings.selectedBrightness]) for c in ClockScreen.COLORS[Settings.selectedColor]] if self.light else (0,0,0))
|
||||||
for i,b in enumerate(HW.buttons):
|
for i,b in enumerate(HW.buttons):
|
||||||
b.setCallbacks(onPushDown=lambda i=i:self.stopIfAllPressed(i),onPushUp=lambda i=i:HW.leds[i].off(),onClick=lambda i=i:self.onClicked(i))
|
b.setCallbacks(onPushDown=lambda i=i:self.onButtonPressed(i),onPushUp=lambda pushDownTime,button=i:self.onButtonReleased(button,pushDownTime))
|
||||||
self.running = True
|
|
||||||
self.clock.start()
|
self.clock.start()
|
||||||
while self.running:
|
|
||||||
await asyncio.sleep_ms(200)
|
def cleanup(self):
|
||||||
self.clock.stop()
|
self.clock.stop()
|
||||||
__iter__ = __await__ # https://github.com/micropython/micropython/issues/2678
|
|
||||||
|
|
||||||
class SettingsScreen():
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
self.running = False
|
|
||||||
|
|
||||||
def onButtonPressed(self,button):
|
|
||||||
HW.leds[button].on(overwriteFlashing=False)
|
|
||||||
for b in HW.buttons:
|
|
||||||
if not b.isPushed():
|
|
||||||
break
|
|
||||||
else:
|
|
||||||
self.running = False
|
|
||||||
return
|
|
||||||
if not HW.buttons[1].isPushed():
|
|
||||||
if button == 0 :
|
|
||||||
if self.mode == 0:
|
|
||||||
HW.stepperminu.rotateTo(direction=1)
|
|
||||||
if self.mode == 1:
|
|
||||||
HW.stepperhour.rotateTo(direction=1)
|
|
||||||
elif button == 2:
|
|
||||||
if self.mode == 0:
|
|
||||||
HW.stepperminu.rotateTo(direction=-1)
|
|
||||||
if self.mode == 1:
|
|
||||||
HW.stepperhour.rotateTo(direction=-1)
|
|
||||||
|
|
||||||
def onButtonReleased(self,button):
|
|
||||||
if not self.running:
|
|
||||||
return
|
|
||||||
HW.leds[button].off(overwriteFlashing=False)
|
|
||||||
if button == 0:#left
|
|
||||||
if self.mode == 0 or self.mode == 1:
|
|
||||||
HW.stepperminu.stop()
|
|
||||||
HW.stepperhour.stop()
|
|
||||||
if self.mode == 3:
|
|
||||||
Settings.selectedSound =(Settings.selectedSound -1) % len(Buzzer.SOUNDS)
|
|
||||||
HW.buzzer.playSound(Buzzer.SOUNDS[Settings.selectedSound ])
|
|
||||||
elif button == 2:#right
|
|
||||||
if self.mode == 0 or self.mode == 1:
|
|
||||||
HW.stepperminu.stop()
|
|
||||||
HW.stepperhour.stop()
|
|
||||||
if self.mode == 3:
|
|
||||||
Settings.selectedSound =(Settings.selectedSound +1) % len(Buzzer.SOUNDS)
|
|
||||||
HW.buzzer.playSound(Buzzer.SOUNDS[Settings.selectedSound ])
|
|
||||||
elif button == 1: #middle
|
|
||||||
self.mode=(self.mode+1)%4
|
|
||||||
if self.mode == 3:
|
|
||||||
HW.buzzer.playSound(Buzzer.SOUNDS[Settings.selectedSound ])
|
|
||||||
else:
|
|
||||||
HW.buzzer.stop()
|
|
||||||
|
|
||||||
if self.mode == 2:
|
|
||||||
HW.leds[0].flash(0.7)
|
|
||||||
HW.leds[1].flash(0.7)
|
|
||||||
HW.leds[2].flash(0.7)
|
|
||||||
else:
|
|
||||||
HW.leds[0].off()
|
|
||||||
HW.leds[1].off()
|
|
||||||
HW.leds[2].off()
|
|
||||||
|
|
||||||
if self.mode == 0 or self.mode == 1:
|
|
||||||
HW.housingLEDs.upper((50,50,50))
|
|
||||||
else:
|
|
||||||
HW.housingLEDs.clear()
|
|
||||||
|
|
||||||
|
class RingtoneSettingsScreen():
|
||||||
def __await__(self):
|
def __await__(self):
|
||||||
self.mode = 0
|
self.running = True
|
||||||
HW.stepperminu.rotateTo(0)
|
for i,b in enumerate(HW.buttons):
|
||||||
|
b.setCallbacks(onPushDown=lambda i=i:self.onButtonPressed(i),onPushUp=lambda pushDownTime,button=i:self.onButtonReleased(button,pushDownTime))
|
||||||
|
# Turn LEDs Red and play the selected Sound and turn the minute-hand to the selected sound
|
||||||
|
HW.housingLEDs.fill((200,0,0))
|
||||||
|
HW.buzzer.playSound(HW.Buzzer.ALARMTONES[Settings.selectedSound])
|
||||||
|
HW.stepperminu.rotateTo(-Settings.selectedSound/12)
|
||||||
HW.stepperhour.rotateTo(0)
|
HW.stepperhour.rotateTo(0)
|
||||||
HW.housingLEDs.clear()
|
|
||||||
while not HW.stepperhour.isAtTarget() or not HW.stepperminu.isAtTarget():
|
while not HW.stepperhour.isAtTarget() or not HW.stepperminu.isAtTarget():
|
||||||
await asyncio.sleep_ms(200)
|
await asyncio.sleep_ms(200)
|
||||||
HW.housingLEDs.upper((50,50,50))
|
|
||||||
for led in HW.leds:
|
|
||||||
led.off()
|
|
||||||
for i,b in enumerate(HW.buttons):
|
|
||||||
b.setCallbacks(onPushDown=lambda i=i:self.onButtonPressed(i),onPushUp=lambda i=i:self.onButtonReleased(i))
|
|
||||||
self.running = True
|
|
||||||
while self.running:
|
while self.running:
|
||||||
await asyncio.sleep_ms(200)
|
await asyncio.sleep_ms(200)
|
||||||
for led in HW.leds:
|
HW.housingLEDs.fill((0,0,0))
|
||||||
led.off()
|
self.cleanup()
|
||||||
HW.housingLEDs.clear()
|
|
||||||
HW.stepperhour.reset()
|
|
||||||
HW.stepperminu.reset()
|
|
||||||
HW.buzzer.stop()
|
|
||||||
Settings.save()
|
|
||||||
__iter__ = __await__ # https://github.com/micropython/micropython/issues/2678
|
__iter__ = __await__ # https://github.com/micropython/micropython/issues/2678
|
||||||
|
def __init__(self):
|
||||||
|
self.running = False
|
||||||
|
def finish(self):
|
||||||
|
self.running = False
|
||||||
|
for b in HW.buttons:
|
||||||
|
b.setCallbacks()#Clear Callbacks
|
||||||
|
|
||||||
|
|
||||||
|
def onButtonPressed(self,button):
|
||||||
|
HW.leds[button].on()
|
||||||
|
|
||||||
|
def onButtonReleased(self,button,pushDownTime):
|
||||||
|
print("Ring Select push down",pushDownTime)
|
||||||
|
HW.leds[button].off()
|
||||||
|
if button == 1:
|
||||||
|
if pushDownTime > 1100:
|
||||||
|
Settings.save()
|
||||||
|
self.finish()
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
if pushDownTime < 500:
|
||||||
|
Settings.selectedSound=(Settings.selectedSound+ (1 if button == 2 else -1))%len(Buzzer.ALARMTONES)
|
||||||
|
HW.stepperminu.rotateTo(-Settings.selectedSound/12)
|
||||||
|
HW.buzzer.playSound(HW.Buzzer.ALARMTONES[Settings.selectedSound])
|
||||||
|
|
||||||
|
def cleanup(self):
|
||||||
|
HW.housingLEDs.fill((0,0,0))
|
||||||
|
HW.buzzer.stop()
|
@ -60,6 +60,7 @@ class Stepper:
|
|||||||
self._rotTarget = self.stepnum
|
self._rotTarget = self.stepnum
|
||||||
|
|
||||||
async def _update_async(self):
|
async def _update_async(self):
|
||||||
|
print("update")
|
||||||
while(True):
|
while(True):
|
||||||
await asyncio.sleep_ms(self.stepDurationMs)
|
await asyncio.sleep_ms(self.stepDurationMs)
|
||||||
if not self.isAtTarget():
|
if not self.isAtTarget():
|
||||||
|
13
boot.py
13
boot.py
@ -5,11 +5,12 @@ webrepl.start()
|
|||||||
sta_if = network.WLAN(network.STA_IF)
|
sta_if = network.WLAN(network.STA_IF)
|
||||||
sta_if.active(True)
|
sta_if.active(True)
|
||||||
|
|
||||||
availableNetworkSSIDs = [s[0].decode() for s in sta_if.scan()]
|
if sta_if.status() != network.STAT_GOT_IP:
|
||||||
print(availableNetworkSSIDs)
|
availableNetworkSSIDs = [s[0].decode() for s in sta_if.scan()]
|
||||||
#load wifi credentials from file
|
print(availableNetworkSSIDs)
|
||||||
with open("wifi-credentials","r") as f:
|
#load wifi credentials from file
|
||||||
while True:
|
with open("wifi-credentials","r") as f:
|
||||||
|
while sta_if.status() != network.STAT_GOT_IP:
|
||||||
ssid = f.readline()
|
ssid = f.readline()
|
||||||
password = f.readline()#
|
password = f.readline()#
|
||||||
if not ssid or not password:
|
if not ssid or not password:
|
||||||
@ -17,4 +18,6 @@ with open("wifi-credentials","r") as f:
|
|||||||
ssid = ssid.replace("\n","")
|
ssid = ssid.replace("\n","")
|
||||||
password = password.replace("\n","")
|
password = password.replace("\n","")
|
||||||
if ssid in availableNetworkSSIDs:
|
if ssid in availableNetworkSSIDs:
|
||||||
|
print("Connecting to",ssid)
|
||||||
sta_if.connect(ssid,password)
|
sta_if.connect(ssid,password)
|
||||||
|
break
|
15
main.py
15
main.py
@ -6,15 +6,18 @@ import Screens
|
|||||||
#Async
|
#Async
|
||||||
loop = asyncio.get_event_loop()
|
loop = asyncio.get_event_loop()
|
||||||
|
|
||||||
modus = 0
|
|
||||||
screens = (Screens.ClockScreen(),\
|
|
||||||
Screens.SettingsScreen())
|
|
||||||
async def run_screens():
|
async def run_screens():
|
||||||
global modus,screens
|
InitScreen = Screens.InitHandsScreen()
|
||||||
|
await InitScreen
|
||||||
|
|
||||||
|
modus = 0
|
||||||
|
screens = (Screens.ClockScreen(),\
|
||||||
|
Screens.RingtoneSettingsScreen())
|
||||||
while True:
|
while True:
|
||||||
await screens[modus%len(screens)]
|
HW.buzzer.playSound(HW.Buzzer.BEEP)
|
||||||
|
await screens[modus]
|
||||||
for b in HW.buttons:
|
for b in HW.buttons:
|
||||||
b.setCallbacks()#Clear Callbacks
|
b.setCallbacks()#Clear Callbacks
|
||||||
modus += 1
|
modus = (modus+1)%len(screens)
|
||||||
|
|
||||||
loop.run_until_complete(run_screens())
|
loop.run_until_complete(run_screens())
|
Loading…
x
Reference in New Issue
Block a user