Ich habe einfach Enumerator mit 3 Modi LEDOn, LEDBlink, LEDOFF und ich habe einen variablen Modus, der die Modi für bestimmte Objekt verfolgt. Also zum beispiel habe ich eine led im mode led0n gestartet möchte ich zum beispiel nach 5 sekunden zum nächsten element wechseln welches ledblink dann zu ledOFF und dann durchschalten zu ledON wäre da ein einfacher weg sowas zu erreichen?Wechsel von einem Enum-Zustand zum nächsten und durch
import time
from threading import Thread
from enum import Enum
class ledController(Thread):
ledModes = Enum('ledModes', 'ledON ledBlink ledOFF')
def __init__(self, GPIOID, state=False, blinkDuration=2, mode=ledModes.ledON):
self.GPIOID = GPIOID
self.state = state
self.blinkDuration = blinkDuration
self.mode = mode
self.blinked = False
Thread.__init__(self)
def run(self):
if(self.mode == self.ledModes.ledON):
self.ledON()
if(self.mode == self.ledModes.ledBlink):
self.ledBlink()
if(self.mode == self.ledModes.ledOFF):
self.ledOFF()
time.sleep(self.blinkDuration)
self.mode.next()
def ledSwitch(self):
self.state = not self.state
print(self.ledDetails())
def ledON(self):
self.state = True
print(self.ledDetails())
def ledOFF(self):
self.state = False
print(self.ledDetails())
def ledBlink(self, duration):
self.ledON()
print(self.ledDetails())
time.sleep(self.Blinkduration)
self.ledOFF()
print(self.ledDetails())
time.sleep(self.Blinkduration)
def ledDetails(self):
return "Thread: "+self.getName()+", LED: "+str(self.GPIOID)+", State: "+str(self.state)+", Mode: "+str(self.mode.name)+", Blink duration: "+str(self.blinkDuration)
redLED = ledController(17, blinkDuration = 3)
blueLED = ledController(18, mode = ledController.ledModes.ledOFF)
redLED.setName('1')
blueLED.setName('2')
redLED.start()
blueLED.start()
redLED.join()
blueLED.join()
wie würde ich diesen Wert zuweisen, um beispiels so z.B. Modus = ledModes? Damit meine ich, ich möchte nicht immer den Zyklus von ledON starten Ich möchte, dass es was auch immer der Benutzer als erster Staat wählt – Higeath
Ich fügte eine Bearbeitung zu meiner Antwort, nur eine Idee, vielleicht kann es helfen. –