jumeaux-numeriques/portail_coulissant/porcou_cmd.py

124 lines
3.4 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from porcou_lib import * # Bibliothèque portail coulissant
###############################################################################
# porcou_cmd.py
# @title: Commandes du portail coulissant
###############################################################################
###############################################################################
# Instructions élémentaires pour le portail coulissant
#
# Actions (ordre = True ou False) :
# - Gyrophare : gyr(True | False)
# - Ouvrir le portail (moteur sens trigo) : mot_o(True | False)
# - Fermer le portail (moteur sens horaire) : mot_f(True | False)
# - Emetteur pour le capteur barrage IR : ir_emet(True | False)
#
# Capteurs (valeur retournée = True ou False) :
# - Capteur fin de course portail ouvert : fdc_o()
# - Capteur fin de course portail fermé : fdc_f()
# - Capteur barrage IR (absence d'obstacle) : ir_recep()
#
# Consignes du pupitre (valeur retournée = True ou False) :
# - Bouton poussoir coté rue : bp_ext()
# - Bouton poussoir coté cour : bp_int()
#
# Gestion du temps :
# - Temporisation en seconde : tempo(duree)
#
###############################################################################
# Brochage du portail coulissant
brochage={
'bp_ext' : [2,'d','i'],
'ebp_int' : [3,'d','i'],
'fdc_o' : [4,'d','i'],
'fdc_f' : [5,'d','i'],
'mot_o' : [6,'d','o'],
'mot_f' : [7,'d','o'],
'gyr' : [8,'d','o'],
'ir_emett' : [9,'d','o'],
'ir_recept' : [10,'d','i']}
###############################################################################
# Fonctions
###############################################################################
# Fermer le portail
def fermer():
print ("Fermeture")
ir_emet(True)
while fdc_f() ==False:
gyr(True)
mot_o(False)
mot_f(True)
# if ir_recep()==False or bp_int() or bp_ext() : # Ouverture en cas présence d'obstacle ou boutons
# ouvrir()
# print ("Temporisation")
# tempo(2) # Temporisation 2s
gyr(False)
mot_f(False)
ir_emet(False)
# Ouvrir le portail
def ouvrir():
print ("Ouverture")
while fdc_o() ==False:
gyr(True)
mot_f(False)
mot_o(True)
gyr(False)
mot_o(False)
###############################################################################
# Commandes
###############################################################################
def commandes():
# jumeau(brochage)
# for i in range (5):
# gyr(True)
# tempo(1)
# gyr(False)
# tempo(1)
while True :
ir_emet(True)
tempo(10) # Temporisation 2s
ir_emet(False)
tempo(10) # Temporisation 2s
# # Mise en place : Fermeture
# print ("Mise en place : Fermeture")
# fermer()
# # Fonctionnement normal
# print ("Attente")
# while True :
# # Ouverture
# if bp_int() or bp_ext() :
# ouvrir()
# print ("Temporisation")
# tempo(2) # Temporisation 2s
# # Fermeture
# fermer()
# print ("Attente")
fin() # A garder
###############################################################################
# En: External call << DONT CHANGE THIS SECTION >>
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
###############################################################################
if __name__=='start':
thread_cmd_start(commandes)
if __name__=='stop':
thread_cmd_stop()