Documentation contextualisée par rapport à la variante de la maquette numérique et réelle

This commit is contained in:
Philippe Roy 2024-01-26 05:07:47 +01:00
parent a6af5b269e
commit c80d766878
8 changed files with 89 additions and 45 deletions

View File

@ -42,25 +42,32 @@ card_pin_text_grove=""" Le brochage est un dictionnaire d'association \n des obj
Les objets numériques sont : 'ba_0', 'ba_1', \n 'pc_0', 'pc_1', 'voy_0' et 'voy_1'.
Pour le moteur (maquette Grove) : 'mot_s' \n (sens, 0 ou 1) et 'mot_v' (vitesse, 0 à 255)."""
card_pin_text_autoprog=""" Le brochage est un dictionnaire qui permet \n d'associer les objets 3D du jumeau \n numérique aux broches du jumeau réel,
card_pin_text_autoprog=""" Le brochage est un dictionnaire d'association \n des objets numériques aux broches réelles.
brochage = { nom:[type, broche, mode] } :
- nom : nom de l'objet 3D,
- type : a (analogique) ou d (binaire),
- broche : numéro de la broche de carte,
- mode : i (entrée), o (sortie) ou p (pwm).
Par exemple : brochage = { 'ba_0':['d',2,'i'] }.\n
Les objets numériques du jumeau sont : \n 'ba_0', 'ba_1', 'pc_0', 'pc_1', 'mot_m', \n 'mot_d', 'voy_0' et 'voy_1'."""
Les objets numériques sont : 'ba_0', 'ba_1', \n 'pc_0', 'pc_1', 'voy_0' et 'voy_1'.
Pour le moteur (maquette AutoProg) : \n 'mot_m' et 'mot_d'."""
card_pin_url=[]
system_card_description.update({"pin-card" : [card_pin_title, [card_pin_text_grove, card_pin_text_autoprog] , card_pin_url]}) # Deux descriptions
# Données
card_data_title="Accès aux données"
card_data_text=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('ba_0').\n
card_data_text_grove=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('ba_0').\n
Entrées/sorties : 'ba_0', 'ba_1', 'pc_0', 'pc_1', \n 'mot_m', 'mot_d', 'voy_0' et 'voy_1'.\n
Variables réels (si il y a jumelage) : 'ba_0_r', \n 'ba_1_r', 'pc_0_r', 'pc_1_r', 'mot_v', 'mot_s' \n et 'mot_vitesse_r'.\n
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'cabine_z'."""
card_data_text_autoprog=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('ba_0').\n
Entrées/sorties : 'ba_0', 'ba_1', 'pc_0', 'pc_1', \n 'mot_m', 'mot_d', 'voy_0' et 'voy_1'.\n
Variables réels (si il y a jumelage) : 'ba_0_r', \n 'ba_1_r', 'pc_0_r', 'pc_1_r'.\n
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'cabine_z'."""
card_data_url=[]
system_card_description.update({"data-card" : [card_data_title, card_data_text, card_data_url]})
system_card_description.update({"data-card" : [card_data_title, [card_data_text_grove, card_data_text_autoprog], card_data_url]}) # Deux descriptions
# Monitoring
card_daq_title="Acquisition de données"
@ -77,15 +84,22 @@ system_card_description.update({"daq-card" : [card_daq_title, card_daq_text, car
# Ouvrir et fermer
card_movement_title="Monter et descendre"
card_movement_text=""" mot_m(True | False) -> Monter la cabine.
card_movement_text_grove=""" mot_m(True | False) -> Monter la cabine.
mot_d(True | False) -> Descendre la cabine. \n
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255).
Si 'vitesse' est ommis, elle sera réinitialisée.\n
pc_0() -> Capteur présence cabine niveau 0.\n Retourne True si la cabine est au niveau 0.
pc_1() -> Capteur présence cabine niveau 1.\n Retourne True si la cabine est au niveau 1."""
card_movement_text_autoprog=""" mot_m(True | False) -> Monter la cabine.
mot_d(True | False) -> Descendre la cabine. \n
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255) (maquette Grove).
Si 'vitesse' est ommis, elle sera réinitialisée.\n
pc_0() -> Capteur présence cabine niveau 0.\n Retourne True si la cabine est au niveau 0.
pc_1() -> Capteur présence cabine niveau 1.\n Retourne True si la cabine est au niveau 1."""
card_movement_url=[]
system_card_description.update({"movement-card" : [card_movement_title, card_movement_text, card_movement_url]})
system_card_description.update({"movement-card" : [card_movement_title, [card_movement_text_grove, card_movement_text_autoprog], card_movement_url]})
# Pupitre
card_board_title="Pupitre"

View File

@ -152,8 +152,11 @@ def start(fct):
##
def variant(variant_num):
var_txt = [
"variante 1 : maquette Grove",
"variante 2 : maquette AutoProg"]
if variant_num != scene.objects['System']['variant']:
print ("Variante de la maquette numérique :", variant_num)
print ("Variante des maquettes numérique et réelle :", var_txt[variant_num-1])
scene.objects['System']['variant']=variant_num
##

View File

@ -64,13 +64,18 @@ system_card_description.update({"pin-card" : [card_pin_title, [card_pin_text_gro
# Données
card_data_title="Accès aux données"
card_data_text=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_ext').\n
Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', \n 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et
'ir_recep'. Maquette Grove (en +) : 'mot_s' \n (sens, 0 ou 1) et 'mot_v' (vitesse, 0-255). \n
Entrées réels (si il y a jumelage) : 'bp_ext_r', \n 'bp_int_r', 'fdc_o_r', 'fdc_f_r', 'ir_recep_r'.
card_data_text_grove=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_ext').\n
Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', \n 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et \n 'ir_recep'.
Entrées réels (si il y a jumelage) : 'bp_ext_r', \n 'bp_int_r', 'fdc_o_r', 'fdc_f_r', 'ir_recep_r', \n 'mot_v', 'mot_s' et 'mot_vitesse_r'.\n
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'portail_x', 'portail_vitesse'."""
card_data_text_autoprog=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_ext').\n
Entrées/sorties : 'bp_ext', 'bp_int', 'fdc_o', \n 'fdc_f', 'mot_o', 'mot_f', 'gyr', 'ir_emet' et \n 'ir_recep'.\n
Entrées réels (si il y a jumelage) : 'bp_ext_r', \n 'bp_int_r', 'fdc_o_r', 'fdc_f_r', 'ir_recep_r'.\n
Autres variables : 't' (temps), 'mot_angle', \n 'mot_vitesse', 'portail_x', 'portail_vitesse'."""
card_data_url=[]
system_card_description.update({"data-card" : [card_data_title, card_data_text, card_data_url]})
system_card_description.update({"data-card" : [card_data_title, [card_data_text_grove, card_data_text_autoprog], card_data_url]}) # Deux descriptions
# Monitoring
card_daq_title="Acquisition de données"
@ -87,19 +92,26 @@ system_card_description.update({"daq-card" : [card_daq_title, card_daq_text, car
# Ouvrir et fermer
card_movement_title="Ouvrir et fermer"
card_movement_text=""" mot_o(True | False) -> Ouvrir le portail.
card_movement_text_grove=""" mot_o(True | False) -> Ouvrir le portail.
mot_f(True | False) -> Fermer le portail.\n
fdc_o() \n -> Capteur fin de course portail ouvert.
fdc_f() \n -> Capteur fin de course portail fermé.\n
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255).
Si 'vitesse' est ommis, elle sera réinitialisée."""
card_movement_text_autoprog=""" mot_o(True | False) -> Ouvrir le portail.
mot_f(True | False) -> Fermer le portail.\n
fdc_o() \n -> Capteur fin de course portail ouvert.
fdc_f() \n -> Capteur fin de course portail fermé.\n
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255) (maquette Grove).
Si 'vitesse' est ommis, elle sera réinitialisée."""
# fdc_o() \n -> Capteur fin de course portail ouvert.\n Retourne True si le portail est ouvert. \n
# fdc_f() \n -> Capteur fin de course portail fermé.\n Retourne True si le portail est fermé.\n
card_movement_url=[]
system_card_description.update({"movement-card" : [card_movement_title, card_movement_text, card_movement_url]})
system_card_description.update({"movement-card" : [card_movement_title, [card_movement_text_grove, card_movement_text_autoprog], card_movement_url]})
# Capteurs
card_sensor_title="Capteur"
@ -162,15 +174,3 @@ def get_system_card():
def get_system_card_description():
return system_card_description
# # Mise en place de la variante
# print ("aa")
# print (scene.objects['System']['script'])
# print ("bb")
# # runpy.run_path(scene.objects['System']['script'], run_name='init')
# # if scene.objects['System']['variant'] ==2:
# # system_card_description.update({"pin-card" : [card_pin_title, card_pin_text_autoprog, card_pin_url]})
# # else:
# # system_card_description.update({"pin-card" : [card_pin_title, card_pin_text_grove, card_pin_url]})
# return system_card_description

View File

@ -160,8 +160,12 @@ def start(fct):
##
def variant(variant_num):
var_txt = [
"variante 1 : maquette Grove",
"variante 2 : maquette AutoProg"]
if variant_num != scene.objects['System']['variant']:
print ("Variante de la maquette numérique :", variant_num)
print ("Variante des maquettes numérique et réelle :", var_txt[variant_num-1])
scene.objects['System']['variant']=variant_num
##

View File

@ -1,7 +1,7 @@
<data>
<screen>
<width>1590</width>
<height>895</height>
<width>1568</width>
<height>882</height>
<quality>4</quality>
</screen>
<plot>

Binary file not shown.

View File

@ -31,7 +31,6 @@ system_card_description.update({"twins-card" : [card_twins_title, card_twins_tex
# Brochage
card_pin_title="Brochage"
card_pin_text_grove_bg_auto=""" Le brochage est un dictionnaire d'association \n des objets numériques aux broches réelles.
brochage = { nom:[type, broche, mode] } :
- nom : nom de l'objet 3D,
@ -63,12 +62,23 @@ system_card_description.update({"pin-card" : [card_pin_title, [card_pin_text_gro
# Données
card_data_title="Accès aux données"
card_data_text=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bp_auto', \n 'bg_auto', 'voy_auto', 'lum'.\n
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', \n 'bp_auto_r', 'bg_auto_r', 'lum_r'.\n
card_data_text_grove_bg_auto=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bg_auto', \n 'voy_auto', 'lum'.\n
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', 'lum_r', \n 'bg_auto_r', 'mot_v', 'mot_s', 'mot_vitesse_r'.\n
Autres : 't' (temps), 'mot_angle', 'mot_vitesse'."""
card_data_text_grove_bp_auto=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bp_auto', \n 'voy_auto', 'lum'.\n
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', 'lum_r', \n 'bp_auto_r', 'mot_v', 'mot_s', 'mot_vitesse_r'.\n
Autres : 't' (temps), 'mot_angle', 'mot_vitesse'."""
card_data_text_autoprog=""" get(variable) \n -> Retourne la valeur de la variable à \n l'instant t. Par exemple : val = get('bp_m').\n
Entrées/sorties : 'bp_m', 'bp_a', 'bp_d', \n 'mot_m', 'mot_d', 'fdc_h', 'fdc_b', 'bp_auto', \n 'voy_auto', 'lum'.\n
Variables réels (si il y a jumelage) : 'bp_m_r', \n 'bp_a_r', 'bp_d_r', 'fdc_h_r', 'fdc_b_r', \n 'bp_auto_r', 'lum_r'.\n
Autres : 't' (temps), 'mot_angle', 'mot_vitesse'."""
card_data_url=[]
system_card_description.update({"data-card" : [card_data_title, card_data_text, card_data_url]})
system_card_description.update({"data-card" : [card_data_title, [card_data_text_grove_bg_auto, card_data_text_grove_bp_auto, card_data_text_autoprog], card_data_url]})
# Monitoring
card_daq_title="Acquisition de données"
@ -85,15 +95,23 @@ system_card_description.update({"daq-card" : [card_daq_title, card_daq_text, car
# Monter et descendre
card_movement_title="Monter et descendre"
card_movement_text=""" mot_m(True | False) -> Monter le volet.
card_movement_text_grove=""" mot_m(True | False) -> Monter le volet.
mot_d(True | False) -> Descendre le volet. \n
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255) (maquette Grove).
mot_vitesse_r(vitesse) -> Change la vitesse \n du moteur réel (0-255).
Si 'vitesse' est ommis, elle sera réinitialisée.\n
fdc_h() \n -> Capteur fin de course volet en haut.
fdc_b() \n -> Capteur fin de course volet en bas."""
card_movement_text_autoprog=""" mot_m(True | False) -> Monter le volet.
mot_d(True | False) -> Descendre le volet. \n
mot_vitesse(vitesse) -> Change la vitesse \n du moteur numérique en rad/s.
Si 'vitesse' est ommis, elle sera réinitialisée.\n
fdc_h() \n -> Capteur fin de course volet en haut.
fdc_b() \n -> Capteur fin de course volet en bas."""
card_movement_url=[]
system_card_description.update({"movement-card" : [card_movement_title, card_movement_text, card_movement_url]})
system_card_description.update({"movement-card" : [card_movement_title, [card_movement_text_grove, card_movement_text_grove, card_movement_text_autoprog], card_movement_url]}) # 2 descriptions
# Capteurs
card_sensor_title="Capteur"

View File

@ -179,12 +179,17 @@ def start(fct):
##
def variant(variant_num):
var_txt = [
"variante 1 : maquette Grove + bouton auto à glissière",
"variante 2 : maquette Grove + bouton auto poussoir",
"variante 3 : maquette AutoProg + bouton auto poussoir"]
if variant_num != scene.objects['System']['variant']:
print ("Variante de la maquette numérique:", variant_num)
print ("Variante des maquettes numérique et réelle :", var_txt[variant_num-1])
scene.objects['System']['variant']=variant_num
# Affichage des éléments spécifiques de la variante
variant_dict = {'Bg auto':[1,2], 'Bg auto-on':[1,2], 'Bp auto':[3]}
variant_dict = {'Bg auto':[1], 'Bg auto-on':[1], 'Bp auto':[2,3]}
variant_list = list(variant_dict)
for name in variant_list:
if variant_num in variant_dict[name]: