2016-04-22 2 views
-2

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!

Antwort

0

Ich entschied schließlich, dass die obige Frage nicht funktionieren würde. Stattdessen habe ich zwei verschiedene Python-Skripte (am und pm) erstellt. Ich plante dann jedes mit Cron. In jedem Skript programmierte ich einen Knopfdruck-Interrupt, der das Skript verließ. Das funktioniert super

Verwandte Themen