Hallo zusammen,
ich möchte ein Programm mit welchem ich analoge Messwerte erfasse mithilfe eines weiteren Python Scripts über Interrupts, verursacht durch einen Taster, starten und beenden können.
Das Interrupt Script soll im Autostart liegen und somit immer aktiv sein, drücke ich nun meinen Taster, wird das Script zur Erfassung der Messdaten gestartet, drücke ich ihn erneut, so stoppt die Messung.
Hierfür habe ich mir bereits eine Interrupt Routine geschrieben welche auf positive Flanke reagiert und momentan (zur Verdeutlichung und Überprüfung) bei Betätigung des Tasters abwechselnd 1 und 2 ausgibt.
Nun würde ich gerne anstatt der Ausgabe von 1 und 2, Programm starten und Programm beenden auf den Taster legen.
Ich habe bereits ein wenig mit der Funktion subprocess herum probiert, allerdings schaffe ich es nur das Programm mithilfe des subprocess.Popen Befehls zu starten, jedoch nicht zu beenden.
Hierfür hatte ich sub.kill() benutzt.
Könnt ihr mir vielleicht ein wenig unter die Arme greifen?
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
wert = 1
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN, pull_up_down = GPIO.PUD_UP)
def measure(channel):
global wert
if wert == 1:
print("1")
wert = 0
else:
print("2")
wert = 1
GPIO.add_event_detect(17, GPIO.RISING, callback=measure, bouncetime=200)
while True:
time.sleep(1)
Alles anzeigen