#!/usr/bin/env python
# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time
import subprocess
import shlex
import psutil

GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.IN) # GPIO 4 en entree


try:
	while True:       # boucle infini
		input_state = GPIO.input(4)  
		if input_state == True:      # si on detecte
			
			# on lance la prise de photos
			subprocess.call("sh /home/pi/alarmePI/webcampir.sh", shell=True)
			
			# on les envoi par mail dans un process en parallele et on continu
			command_line = "python /home/pi/alarmePI/pirnotify.py"
			args = shlex.split(command_line)
			p = subprocess.Popen(args)

			# on verifie si sirene.py est deja lance
			existe = False
			for p in psutil.process_iter():
				try:
					pi = p.as_dict(attrs=['pid', 'name'])
				except:
					pass
				else:
					if pi['name'] == 'sirene.py':
						existe = True
						# Pas besoin d'aller plus loin
						break
			# sinon on le lance	dans un process en parallele et on continu		
			if not existe:
					command_line = "sudo python /home/pi/alarmePI/sirene.py" 
					args = shlex.split(command_line)
					d = subprocess.Popen(args)

			time.sleep(5)  # attent 5s avant de reprendre la boucle
			
# c'est pour eviter que la sirene sonne quand controle c , pendant les test.
except KeyboardInterrupt:
    GPIO.cleanup()
    exit