Bitte verzeihen Sie die Anfängerfrage. Ich habe das Wort Python erst vor 2 Wochen gehört.Versuchen Sie, mit einer Taste durch die Jobs zu wechseln
Ich versuche, ein Python 2.7 Skript zu schreiben, das zwei Jobs hat, die in AM und PM ausgeführt werden. Dies ist ein Erinnerungsprogramm, das mich jeden Tag um 9 und 21 Uhr erinnert. Es erinnert mich auch stündlich daran. Ich möchte versuchen, herauszufinden, wie ein GPIO-Tastendruck den aktuellen Job stoppt, aber den nächsten geplanten Job zulässt. Die Idee ist, dass diese zwei Jobs jeden Tag ausgeführt werden, aber ein Tastendruck sagt: "Stoppen Sie diesen Job und warten Sie auf den nächsten geplanten Job". Sobald ich das getan habe, was die Erinnerung "erinnert" hat, stoppt ein Knopfdruck das Nörgeln.
Hier ist die grundlegende Code ich mit dem Schreiben begonnen haben:
#!/usr/bin/python
import schedule
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
# GPIO 23 set up as input. It is pulled up to stop false signals
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def am_job():
print 'This is the AM job'
def pm_job():
print 'This is the PM job'
schedule.every().day.at("9:00").do(am_job)
schedule.every().day.at("10:00").do(am_job)
schedule.every().day.at("11:00").do(am_job)
schedule.every().day.at("12:00").do(am_job)
schedule.every().day.at("13:00").do(am_job)
schedule.every().day.at("21:00").do(pm_job)
schedule.every().day.at("22:00").do(pm_job)
schedule.every().day.at("23:00").do(pm_job)
# I need to figure out a way that this button press cancels the current job
# but allows the next job to continue.
# Over and over each am and pm
GPIO.add_event_detect(23, GPIO.FALLING, callback="some job name here", bouncetime=400)
try:
while True: # This currently just cycles through all the jobs
schedule.run_pending()
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
Vielen Dank für irgendwelche und alle Hilfe!