mirror of
https://forge.apps.education.fr/blender-edutech/jumeaux-numeriques.git
synced 2024-01-27 06:56:18 +01:00
Mise en place de règles de priorité
This commit is contained in:
parent
b799039e6e
commit
9056a81e76
@ -24,7 +24,7 @@ scene = bge.logic.getCurrentScene()
|
||||
#
|
||||
# 'nom_variable_r' est la valeur réelle de la variable (valeur numérique) 'nom_variable' issue du jumelage numérique.
|
||||
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
||||
# Ce distinguo ne concerne que les entrées, les sorties réelles sont forcées par les sorties numériques et vice-versa.
|
||||
# Ce distinguo ne concerne que les entrées, car il n'y pas de lecture des "sorties réelles".
|
||||
|
||||
public_vars = {
|
||||
't' : [['System','time','a'], [], []],
|
||||
|
Binary file not shown.
@ -19,12 +19,13 @@ scene = bge.logic.getCurrentScene()
|
||||
# Configuration des variables publiques
|
||||
# 'nom_variable' :
|
||||
# - Objet 3D : [nom de l'objet 3D, propriété associée à la valeur (activate ou activated_real), type de la valeur ('d' (digital, binary), 'a', (analog) ou 'n' (numeric)), échelle (1 si ommis)]
|
||||
# - Configuration de la broche : [nom de la propriété stockant l'object broche (pyfirmata), type de broche par défaut ('d','a' ou 'p'), 'mode de la broche par défaut ('i' ou 'o')]
|
||||
# - Configuration de la broche : [nom de la propriété stockant l'object broche (pyfirmata),
|
||||
# type de broche par défaut : 'd' (digital), 'a' (analog) ou 'p' (pwm)), mode de la broche par défaut : 'i' (input) ou 'o' (output)]
|
||||
# - Configuration du graphique : ['marque', 'type de ligne', 'couleur', linewidth]] (Codification de Matplotlib)
|
||||
#
|
||||
# 'nom_variable_r' est la valeur réelle de la variable (valeur numérique) 'nom_variable' issue du jumelage numérique.
|
||||
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
||||
# Ce distinguo ne concerne que les entrées, les sorties réelles sont forcées par les sorties numériques et vice-versa.
|
||||
# Ce distinguo ne concerne que les entrées, car les sorties sont pilotées par le numérique.
|
||||
|
||||
public_vars = {
|
||||
't' : [['System','time','a'],[],[]],
|
||||
@ -44,7 +45,7 @@ public_vars = {
|
||||
'portail_x' : [['Portail','x','a'],[],['.','-','turquoise',1]],
|
||||
'portail_vitesse' : [['Portail','speed','a'],[],['.','-','darkturquoise',1]],
|
||||
'portail_pas' : [['Portail','step','a'],[],[]],
|
||||
'gyr' : [['Led','activated','d'],['pin','d','.'],['.','-','gold',1]],
|
||||
'gyr' : [['Led','activated','d'],['pin','d','o'],['.','-','gold',1]],
|
||||
'ir_emet' : [['Emetteur IR','activated','d'],['pin','d','o'],['.','-','red',1]],
|
||||
'ir_recep' : [['Recepteur IR','activated','d'],['pin','d','i'],['.','-','darkred',1]],
|
||||
'ir_recep_r' : [['Recepteur IR','activated_real','d'],[],['.','--','darkred',1]]}
|
||||
@ -370,12 +371,31 @@ def system_init ():
|
||||
|
||||
def system_reset ():
|
||||
|
||||
# Entrées à l'état initial
|
||||
objs= ['Microrupteur fdc ouvert', 'Microrupteur fdc ferme', 'Bp cote cour','Bp cote rue']
|
||||
for obj in objs:
|
||||
scene.objects[obj]['activated']=False
|
||||
scene.objects[obj]['activated_real']=False
|
||||
scene.objects['Recepteur IR']['activated'] =False
|
||||
scene.objects['Recepteur IR']['active'] =False
|
||||
scene.objects['Recepteur IR']['activated_real'] =True # Absence d'obstacle -> True, présence d'obstacle -> False
|
||||
|
||||
# Grille à l'état initial
|
||||
scene.objects['Portail']['x']=0
|
||||
scene.objects['Portail']['speed']=0
|
||||
scene.objects['Portail']['step']=0
|
||||
scene.objects['Portail'].worldPosition.x = scene.objects['Portail']['init_lx']-scene.objects['System']['init_lx']+scene.objects['System'].worldPosition.x
|
||||
scene.objects['Portail'].worldPosition.y = scene.objects['Portail']['init_ly']-scene.objects['System']['init_ly']+scene.objects['System'].worldPosition.y
|
||||
scene.objects['Portail'].worldPosition.z = scene.objects['Portail']['init_lz']-scene.objects['System']['init_lz']+scene.objects['System'].worldPosition.z
|
||||
|
||||
# Moteur à l'état initial
|
||||
scene.objects['Moteur']['open']=False
|
||||
scene.objects['Moteur']['close']=False
|
||||
scene.objects['Moteur']['alpha']=0
|
||||
scene.objects['Moteur']['speed']=0
|
||||
scene.objects['Moteur']['speed_setting']=125.6 # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s )
|
||||
scene.objects['Moteur']['step']=0
|
||||
|
||||
rres=0.001 # resolution rotation
|
||||
obj1=scene.objects['Engrenage']
|
||||
while (obj1.localOrientation.to_euler().y) > 1.1*rres :
|
||||
@ -384,37 +404,61 @@ def system_reset ():
|
||||
obj1.applyRotation((0, 0, rres), True)
|
||||
|
||||
# Gyrophare à l'état initial
|
||||
scene.objects['Led']['activated']=False
|
||||
scene.objects['Led'].setVisible(True,False)
|
||||
scene.objects['Led-on'].setVisible(False,False)
|
||||
|
||||
# Capteur barrage IR
|
||||
scene.objects['Emetteur IR']['activated'] =False
|
||||
scene.objects['Emetteur IR']['active'] =False
|
||||
scene.objects['Emetteur IR Led'].setVisible(True,False)
|
||||
scene.objects['Emetteur IR Led-on'].setVisible(False,False)
|
||||
scene.objects['Emetteur IR'].color = color_passive
|
||||
scene.objects['Recepteur IR'].color = color_passive
|
||||
|
||||
# I/O à l'état initial
|
||||
scene.objects['Led']['activated']=False
|
||||
scene.objects['Moteur']['open']=False
|
||||
scene.objects['Moteur']['close']=False
|
||||
scene.objects['Moteur']['alpha']=0
|
||||
scene.objects['Moteur']['speed']=0
|
||||
scene.objects['Moteur']['speed_setting']=125.6 # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s )
|
||||
scene.objects['Moteur']['step']=0
|
||||
scene.objects['Portail']['x']=0
|
||||
scene.objects['Portail']['speed']=0
|
||||
scene.objects['Portail']['step']=0
|
||||
scene.objects['Microrupteur fdc ouvert']['activated']=False
|
||||
scene.objects['Microrupteur fdc ouvert']['activated_real']=False
|
||||
scene.objects['Microrupteur fdc ferme']['activated']=False
|
||||
scene.objects['Microrupteur fdc ferme']['activated_real']=False
|
||||
scene.objects['Bp cote cour']['activated'] =False
|
||||
scene.objects['Bp cote cour']['activated_real'] =False
|
||||
scene.objects['Bp cote rue']['activated'] =False
|
||||
scene.objects['Bp cote rue']['activated_real'] =False
|
||||
scene.objects['Emetteur IR']['activated'] =False
|
||||
scene.objects['Emetteur IR']['activated_real'] =False
|
||||
scene.objects['Emetteur IR']['active'] =False
|
||||
scene.objects['Recepteur IR']['activated'] =False
|
||||
scene.objects['Recepteur IR']['active'] =False
|
||||
scene.objects['Recepteur IR']['activated_real'] =True # Absence d'obstacle -> True, présence d'obstacle -> False
|
||||
# Priorités activées
|
||||
objs= ['Led', 'Moteur', 'Microrupteur fdc ouvert', 'Microrupteur fdc ferme',
|
||||
'Bp cote cour','Bp cote rue', 'Emetteur IR', 'Recepteur IR']
|
||||
for obj in objs:
|
||||
scene.objects[obj]['prior']=True
|
||||
scene.objects[obj]['prior_real']=True
|
||||
|
||||
# scene.objects['Led']['activated']=False
|
||||
# scene.objects['Led']['prior']=True
|
||||
# scene.objects['Led']['prior_real']=True
|
||||
# scene.objects['Moteur']['open']=False
|
||||
# scene.objects['Moteur']['close']=False
|
||||
# scene.objects['Moteur']['prior_real']=True
|
||||
# scene.objects['Moteur']['prior_real']=True
|
||||
# scene.objects['Moteur']['alpha']=0
|
||||
# scene.objects['Moteur']['speed']=0
|
||||
# scene.objects['Moteur']['speed_setting']=125.6 # Vitesse du moteur numérique : 125.6 rad /s ( 20 tr / s )
|
||||
# scene.objects['Moteur']['step']=0
|
||||
# scene.objects['Portail']['x']=0
|
||||
# scene.objects['Portail']['speed']=0
|
||||
# scene.objects['Portail']['step']=0
|
||||
# scene.objects['Microrupteur fdc ouvert']['activated']=False
|
||||
# scene.objects['Microrupteur fdc ouvert']['activated_real']=False
|
||||
# scene.objects['Microrupteur fdc ouvert']['prior']=True
|
||||
# scene.objects['Microrupteur fdc ouvert']['prior_real']=True
|
||||
# scene.objects['Microrupteur fdc ferme']['activated']=False
|
||||
# scene.objects['Microrupteur fdc ferme']['activated_real']=False
|
||||
# scene.objects['Microrupteur fdc ferme']['prior']=True
|
||||
# scene.objects['Microrupteur fdc ferme']['prior_real']=True
|
||||
# scene.objects['Bp cote cour']['activated'] =False
|
||||
# scene.objects['Bp cote cour']['activated_real'] =False
|
||||
# scene.objects['Bp cote cour']['prior'] =True
|
||||
# scene.objects['Bp cote cour']['prior_real'] =True
|
||||
# scene.objects['Bp cote rue']['activated'] =False
|
||||
# scene.objects['Bp cote rue']['activated_real'] =False
|
||||
# scene.objects['Bp cote rue']['prior'] =True
|
||||
# scene.objects['Bp cote rue']['prior_real'] =True
|
||||
# scene.objects['Emetteur IR']['activated'] =False
|
||||
# scene.objects['Emetteur IR']['active'] =False
|
||||
# scene.objects['Emetteur IR']['prior']=True
|
||||
# scene.objects['Emetteur IR']['prior_real']=True
|
||||
# scene.objects['Recepteur IR']['activated'] =False
|
||||
# scene.objects['Recepteur IR']['prior'] =True
|
||||
# scene.objects['Recepteur IR']['active'] =False
|
||||
# scene.objects['Recepteur IR']['activated_real'] =True # Absence d'obstacle -> True, présence d'obstacle -> False
|
||||
# scene.objects['Recepteur IR']['prior_real'] =True
|
||||
|
@ -28,6 +28,14 @@ from porcou_lib import * # Bibliothèque utilisateur du portail coulissant
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
# Brochage du portail coulissant
|
||||
brochage={
|
||||
'bp_ext' : [],'bp_int' : [],
|
||||
'fdc_o' : [],'fdc_f' : [],
|
||||
'mot_o' : [],'mot_f' : [],
|
||||
'gyr' : [],
|
||||
'ir_emet' : [],'ir_recep' : []}
|
||||
|
||||
###############################################################################
|
||||
# Fonctions
|
||||
###############################################################################
|
||||
@ -47,50 +55,36 @@ def commandes():
|
||||
gyr(False)
|
||||
print ("")
|
||||
|
||||
# Données
|
||||
# daq(['mot_angle', 'mot_vitesse', 'portail_x', 'portail_vitesse'])
|
||||
reset_t()
|
||||
daq(['bp_ext', 'bp_ext_r', 'bp_int', 'bp_int_r', 'fdc_o', 'fdc_o_r', 'fdc_f', 'fdc_f_r', 'mot_o', 'mot_f', 'gyr', 'mot_angle', 'mot_vitesse', 'portail_x', 'portail_vitesse', 'ir_emet', 'ir_recep', 'ir_recep_r'])
|
||||
# daq(['bp_ext', 'bp_ext_r', 'bp_int', 'bp_int_r', 'fdc_o', 'fdc_o_r', 'fdc_f', 'fdc_f_r', 'mot_o', 'mot_f', 'gyr'])
|
||||
reset_t()
|
||||
plot(['mot_angle', 'mot_vitesse', 'portail_x', 'portail_vitesse'])
|
||||
# plot([['bp_ext', 'bp_ext_r'], ['bp_int', 'bp_int_r'], ['fdc_o', 'fdc_o_r'], ['fdc_f', 'fdc_f_r'], 'mot_o', 'mot_f', 'gyr', ['mot_angle', 'mot_vitesse', 'portail_x', 'portail_vitesse']])
|
||||
|
||||
# Jumelage
|
||||
jumeau_mode(True,True)
|
||||
|
||||
# Fermeture
|
||||
mot_digitset (1256) # Vitesse par défaut 125,6 rad /s ( 20 tr / s )
|
||||
t0,x0, a0= get('t'), get('portail_x'), get('mot_angle')
|
||||
# print ("Début fermeture : portail_x : "+str(round(x0, 3)) + " - mot_angle : " + str(round(a0, 3)))
|
||||
while fdc_f() ==False :
|
||||
gyr(True)
|
||||
mot_o(False)
|
||||
mot_f(True)
|
||||
mot_pas, mot_vitesse, portail_pas, portail_vitesse= get('mot_pas'), get('mot_vitesse'), get('portail_pas'), get('portail_vitesse')
|
||||
mot_f(False)
|
||||
gyr(False)
|
||||
t1,x1, a1= get('t'), get('portail_x'), get('mot_angle')
|
||||
# print ("Fin fermeture : portail_x : "+str(round(x1, 3)) + " - mot_angle : " + str(round(a1, 3)))
|
||||
# print ("")
|
||||
# print ("Fermeture : "+str(round(t1-t0, 3)) +" s - distance : " +str(round(x1-x0, 3))+" mm - angle : " +str(round(a1-a0, 3))+
|
||||
# " rad - portail_vitesse : " +str(round(portail_vitesse, 3))+" mm/s - moteur_vitesse : " +str(round(mot_vitesse, 3))+
|
||||
# " rad/s - portail_pas : " +str(round(portail_pas, 3))+" mm/impulsion - moteur_pas : " +str(round(mot_pas, 3))+" rad/impulsion")
|
||||
# print ("")
|
||||
|
||||
# Ouverture
|
||||
jumeau_mode(True,False)
|
||||
mot_digitset () # Vitesse par défaut 125,6 rad /s ( 20 tr / s )
|
||||
mot_digitset (2000) # Vitesse par défaut 125,6 rad /s ( 20 tr / s )
|
||||
t0,x0, a0= get('t'), get('portail_x'), get('mot_angle')
|
||||
# print ("Début ouverture : portail_x : "+str(round(x0, 3)) + " - mot_angle : " + str(round(a0, 3)))
|
||||
while fdc_o() ==False :
|
||||
gyr(True)
|
||||
mot_f(False)
|
||||
mot_o(True)
|
||||
mot_pas, mot_vitesse, portail_pas, portail_vitesse= get('mot_pas'), get('mot_vitesse'), get('portail_pas'), get('portail_vitesse')
|
||||
mot_o(False)
|
||||
gyr(False)
|
||||
t1,x1, a1= get('t'), get('portail_x'), get('mot_angle')
|
||||
# print ("Fin ouverture : portail_x : "+str(round(x1, 3)) + " - mot_angle : " + str(round(a1, 3)))
|
||||
# print ("")
|
||||
# print ("Ouverture : "+str(round(t1-t0, 3)) +" s - distance : " +str(round(x1-x0, 3))+" mm - angle : " +str(round(a1-a0, 3))+
|
||||
# " rad - portail_vitesse : " +str(round(portail_vitesse, 3))+" mm/s - moteur_vitesse : " +str(round(mot_vitesse, 3))+
|
||||
# " rad/s - portail_pas : " +str(round(portail_pas, 3))+" mm/impulsion - moteur_pas : " +str(round(mot_pas, 3))+" rad/impulsion")
|
||||
|
||||
plot([['bp_ext', 'bp_ext_r'], ['bp_int', 'bp_int_r'], ['fdc_o', 'fdc_o_r'], ['fdc_f', 'fdc_f_r'], 'mot_o', 'mot_f', 'gyr', ['mot_angle', 'mot_vitesse', 'portail_x', 'portail_vitesse']])
|
||||
|
||||
fin() # A garder
|
||||
|
||||
|
@ -19,10 +19,14 @@ system_card_description ={}
|
||||
|
||||
# Jumeau numérique
|
||||
card_twins_title="Jumeau numérique"
|
||||
card_twins_text=""" jumeau(brochage) \n -> Active le jumeau réel.\n
|
||||
'brochage' permet de faire le lien entre les \n deux jumeaux (plus de précision sur la \n page "Brochage").\n
|
||||
jumeau_stop() \n -> Désactive le jumeau réel.\n
|
||||
Avec "carte=jumeau(brochage)", on peut \n utiliser l'objet 'carte' pour communiquer \n directement avec le protocole Firmata."""
|
||||
card_twins_text=""" jumeau(brochage) -> Active le jumeau réel.\n
|
||||
"brochage" permet de faire le lien entre les \n deux jumeaux (voir la page "Brochage").\n
|
||||
jumeau_stop() -> Désactive le jumeau réel.\n
|
||||
jumeau_mode(réel, numérique) -> Définit \n les règles de priorité du jumelage :
|
||||
- réel=True | False : active | désactive \n les entrées réelles,
|
||||
- numérique=True | False : active | désactive \n les entrées numériques. """
|
||||
|
||||
# Avec "carte=jumeau(brochage)", on peut \n utiliser l'objet 'carte' pour communiquer \n directement avec le protocole Firmata.
|
||||
# jumeau_config(port, vitesse) \n -> Définit la configuration de la liaison \n série.\n
|
||||
# Si le port n'est pas spécifié, il sera \n recherché automatiquement (carte \n Arduino Uno ou Mega). \n
|
||||
# La vitesse par défaut est 115200 baud."""
|
||||
@ -108,10 +112,12 @@ system_card_description.update({"model-card" : [card_model_title, card_model_tex
|
||||
|
||||
# Firmata
|
||||
card_firmata_title="Protocole Firmata"
|
||||
card_firmata_text=""" Firmata est le protocole de \n communication entre les deux jumeaux.\n
|
||||
broche = carte.get_pin('type:numéro:mode') \n -> Créer une entrée/sortie (broche) \n - type : a (analogique) ou d (numérique) \n - mode : i (entrée) , o (sortie) ou p (pwm). \n
|
||||
broche.read() \n -> Retourne la valeur de la broche.\n
|
||||
broche.write(valeur) \n -> Écrire la valeur sur la broche."""
|
||||
card_firmata_text=""" Firmata est le protocole de communication \n entre les deux jumeaux via la liaison série.
|
||||
Lors du jumelage, il faut récupérer l'objet \n 'carte' avec "carte = jumeau(brochage)". \n
|
||||
broche = carte.get_pin('type:numéro:mode') \n -> Créer une entrée/sortie (broche) : \n - type : a (analogique) ou d (numérique), \n - mode : i (entrée) , o (sortie) ou p (pwm). \n
|
||||
valeur = broche.read() -> Lit la broche.\n
|
||||
broche.write(valeur) -> Écrire sur la broche.
|
||||
"""
|
||||
card_firmata_url=[["Protocole Firmata : pyFirmata","https://github.com/tino/pyFirmata"]]
|
||||
system_card_description.update({"firmata-card" : [card_firmata_title, card_firmata_text, card_firmata_url]})
|
||||
|
||||
|
@ -66,25 +66,28 @@ def ir_emet(order):
|
||||
|
||||
# Compte-rendu du capteur fin de course portail ouvert
|
||||
def fdc_o ():
|
||||
if scene.objects['Microrupteur fdc ouvert']['activated'] or scene.objects['Microrupteur fdc ouvert']['activated_real']:
|
||||
if scene.objects['Microrupteur fdc ouvert']['prior'] and scene.objects['Microrupteur fdc ouvert']['activated']:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
if scene.objects['Microrupteur fdc ouvert']['prior_real'] and scene.objects['Microrupteur fdc ouvert']['activated_real']:
|
||||
return True
|
||||
return False
|
||||
|
||||
# Compte-rendu du capteur fin de course portail fermé
|
||||
def fdc_f ():
|
||||
if scene.objects['Microrupteur fdc ferme']['activated'] or scene.objects['Microrupteur fdc ferme']['activated_real']:
|
||||
if scene.objects['Microrupteur fdc ferme']['prior'] and scene.objects['Microrupteur fdc ferme']['activated']:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
if scene.objects['Microrupteur fdc ferme']['prior_real'] and scene.objects['Microrupteur fdc ferme']['activated_real']:
|
||||
return True
|
||||
return False
|
||||
|
||||
# Compte-rendu du capteur barrage IR
|
||||
# Absence d'obstacle -> True, présence d'obstacle -> False
|
||||
def ir_recep ():
|
||||
if scene.objects['Recepteur IR']['activated'] or scene.objects['Recepteur IR']['activated_real']==False:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
if scene.objects['Recepteur IR']['prior'] and scene.objects['Recepteur IR']['activated']==False:
|
||||
return False
|
||||
if scene.objects['Recepteur IR']['prior_real'] and scene.objects['Recepteur IR']['activated_real']==False:
|
||||
return False
|
||||
return True
|
||||
|
||||
###############################################################################
|
||||
# Boutons poussoirs
|
||||
@ -92,17 +95,61 @@ def ir_recep ():
|
||||
|
||||
# Compte-rendu du bouton pousssoir coté rue
|
||||
def bp_ext ():
|
||||
if scene.objects['Bp cote rue']['activated'] or scene.objects['Bp cote rue']['activated_real']:
|
||||
if scene.objects['Bp cote rue']['prior'] and scene.objects['Bp cote rue']['activated']:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
if scene.objects['Bp cote rue']['prior_real'] and scene.objects['Bp cote rue']['activated_real']:
|
||||
return True
|
||||
return False
|
||||
|
||||
# Compte-rendu du bouton pousssoir coté cour
|
||||
def bp_int ():
|
||||
if scene.objects['Bp cote cour']['activated'] or scene.objects['Bp cote cour']['activated_real']:
|
||||
if scene.objects['Bp cote cour']['prior'] and scene.objects['Bp cote cour']['activated']:
|
||||
return True
|
||||
if scene.objects['Bp cote cour']['prior_real'] and scene.objects['Bp cote cour']['activated_real']:
|
||||
return True
|
||||
return False
|
||||
|
||||
###############################################################################
|
||||
# Jumelage
|
||||
###############################################################################
|
||||
|
||||
# Priorité du jumelage
|
||||
# prior et prior_real : les deux jumeaux pilotent avec une priorité à l'activation (valeur par défaut),
|
||||
# prior : uniquement le jumeau numérique est pilotant
|
||||
# prior_real : uniquement le jumeau réel est pilotant
|
||||
|
||||
def jumeau_mode (priority_real=True, priority_digital=True):
|
||||
|
||||
# Jumeau numérique
|
||||
if priority_digital:
|
||||
scene.objects['Microrupteur fdc ouvert']['prior']=True
|
||||
scene.objects['Microrupteur fdc ferme']['prior']=True
|
||||
scene.objects['Bp cote cour']['prior'] =True
|
||||
scene.objects['Bp cote rue']['prior'] =True
|
||||
scene.objects['Recepteur IR']['prior'] =True
|
||||
else:
|
||||
return False
|
||||
scene.objects['Microrupteur fdc ouvert']['prior']=False
|
||||
scene.objects['Microrupteur fdc ferme']['prior']=False
|
||||
scene.objects['Bp cote cour']['prior'] =False
|
||||
scene.objects['Bp cote rue']['prior'] =False
|
||||
scene.objects['Recepteur IR']['prior'] =False
|
||||
|
||||
# Jumeau réel
|
||||
if priority_real:
|
||||
scene.objects['Microrupteur fdc ouvert']['prior_real']=True
|
||||
scene.objects['Microrupteur fdc ferme']['prior_real']=True
|
||||
scene.objects['Bp cote cour']['prior_real'] =True
|
||||
scene.objects['Bp cote rue']['prior_real'] =True
|
||||
scene.objects['Recepteur IR']['prior_real'] =True
|
||||
else:
|
||||
scene.objects['Microrupteur fdc ouvert']['prior_real']=False
|
||||
scene.objects['Microrupteur fdc ferme']['prior_real']=False
|
||||
scene.objects['Bp cote cour']['prior_real'] =False
|
||||
scene.objects['Bp cote rue']['prior_real'] =False
|
||||
scene.objects['Recepteur IR']['prior_real'] =False
|
||||
|
||||
def broche_mode (priority_real=True, priority_digital=True):
|
||||
pass
|
||||
|
||||
###############################################################################
|
||||
# Cycle
|
||||
|
Binary file not shown.
Binary file not shown.
@ -24,7 +24,7 @@ scene = bge.logic.getCurrentScene()
|
||||
#
|
||||
# 'nom_variable_r' est la valeur réelle de la variable (valeur numérique) 'nom_variable' issue du jumelage numérique.
|
||||
# Dans ce cas, il n'y a pas configuration de broche car elle est présente sur la variable 'nom_variable'.
|
||||
# Ce distinguo ne concerne que les entrées, les sorties réelles sont forcées par les sorties numériques et vice-versa.
|
||||
# Ce distinguo ne concerne que les entrées, car il n'y pas de lecture des "sorties réelles".
|
||||
|
||||
public_vars = {
|
||||
't' : [['System','time','a'], [], []],
|
||||
|
Loading…
Reference in New Issue
Block a user