evenements:obc2012:dikogeek
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédente | Prochaine révisionLes deux révisions suivantes | ||
obc2012:dikogeek [2013/05/02 14:47] – [Technique] florianh | obc2012:dikogeek [2013/05/03 16:40] – [Interaction homme/machine] florianh | ||
---|---|---|---|
Ligne 100: | Ligne 100: | ||
* C'est par ici | * C'est par ici | ||
+ | |||
+ | ===== Code source ===== | ||
+ | < | ||
+ | # | ||
+ | # -*-coding: | ||
+ | |||
+ | #Import des librairies nécessaires | ||
+ | import os | ||
+ | import subprocess, signal | ||
+ | import RPi.GPIO as GPIO | ||
+ | GPIO.setmode(GPIO.BCM) | ||
+ | from subprocess import Popen, PIPE | ||
+ | |||
+ | # | ||
+ | GPIO.setup(23, | ||
+ | GPIO.setup(17, | ||
+ | |||
+ | #Création d'une fonction de rappel (gestion des execptions) | ||
+ | def my_callback(channel): | ||
+ | |||
+ | print (" | ||
+ | #Lancement d'un sous process pour récuperer la liste des processes en cours | ||
+ | p = subprocess.Popen([' | ||
+ | out, err = p.communicate() | ||
+ | |||
+ | #Listing des process | ||
+ | for line in out.splitlines(): | ||
+ | #On recherche si le lecteur video est en route | ||
+ | if ' | ||
+ | pid = int(line.split(None, | ||
+ | #On Kill le process | ||
+ | os.kill(pid, | ||
+ | #Lencement d'un sous process pour lancer le clip | ||
+ | p = subprocess.Popen([' | ||
+ | ocess.PIPE, | ||
+ | #Vérifie si le process se termine naturellement | ||
+ | retcode = p.wait() | ||
+ | |||
+ | #Si le process c'est terminé naturellement, | ||
+ | if retcode is not None: | ||
+ | print " | ||
+ | os.system(" | ||
+ | | ||
+ | def my_callback2(channel): | ||
+ | print (" | ||
+ | p = subprocess.Popen([' | ||
+ | out, err = p.communicate() | ||
+ | |||
+ | for line in out.splitlines(): | ||
+ | if ' | ||
+ | pid = int(line.split(None, | ||
+ | | ||
+ | p = subprocess.Popen([' | ||
+ | rocess.PIPE, | ||
+ | retcode = p.wait() | ||
+ | |||
+ | if retcode is not None: | ||
+ | print " | ||
+ | os.system(" | ||
+ | |||
+ | |||
+ | # | ||
+ | GPIO.add_event_detect(17, | ||
+ | GPIO.add_event_detect(23, | ||
+ | |||
+ | #Permet de bloquer le programme pour éviter qu'il se termine tout seul | ||
+ | raw_input("> | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
evenements/obc2012/dikogeek.txt · Dernière modification : 2024/04/26 14:48 de 127.0.0.1