mirror of
https://forge.apps.education.fr/blender-edutech/jumeaux-numeriques.git
synced 2024-01-27 06:56:18 +01:00
Mise en place du pilotage moteur par le shield moteur
This commit is contained in:
parent
7265897730
commit
a17496d7d4
@ -26,6 +26,8 @@ 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, car les sorties sont pilotées par le numérique.
|
||||
#
|
||||
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1)
|
||||
|
||||
public_vars = {
|
||||
't' : [['System','time','a'], [], []],
|
||||
@ -41,6 +43,8 @@ public_vars = {
|
||||
'ba_1_r' : [['Bp niveau 1','activated_real','d'], [], []],
|
||||
'mot_m' : [['Moteur','up','d'], ['pin_up', 'd','o'], []],
|
||||
'mot_d' : [['Moteur','down','d'], ['pin_down', 'd','o'], []],
|
||||
'mot_s' : [['Moteur','direction','d'],['pin_direction','d','o'], []],
|
||||
'mot_v' : [['Moteur','speed_real','a'],['pin_speed','p','o'], []],
|
||||
'mot_angle' : [['Moteur','alpha','a'], [], []],
|
||||
'mot_vitesse' : [['Moteur','speed','a'], [], []],
|
||||
'mot_pas' : [['Moteur','step','a'], [], []],
|
||||
@ -122,6 +126,16 @@ def get_public_vars():
|
||||
# Actionneurs
|
||||
###############################################################################
|
||||
|
||||
##
|
||||
# Pour la commande du moteur de la variante 1 version Grove , le brochage du shield moteur CC 4 x 1,2 A DRI0039 (DFROBOT) est fixe,
|
||||
# il doit respecter le tableau suivant :
|
||||
# Motor Direction(Forward/Backward) Speed Speed range
|
||||
# M1 4 LOW HIGH 3 0-255
|
||||
# M2 12 HIGH LOW 11 0-255
|
||||
# M3 8 LOW HIGH 5 0-255
|
||||
# M4 7 HIGH LOW 6 0-255
|
||||
##
|
||||
|
||||
##
|
||||
# Moteur et cabine
|
||||
##
|
||||
@ -162,6 +176,16 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
|
||||
# Version Grove
|
||||
if scene.objects['System']['variant'] == 1:
|
||||
if scene.objects['Moteur']['pin_direction'] is not None:
|
||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||
scene.objects['Moteur']['pin_direction'].write(1)
|
||||
scene.objects['Moteur']['pin_speed'].write(scene.objects['Moteur']['speed_real_setting']/255)
|
||||
|
||||
# Version AutoProg
|
||||
if scene.objects['System']['variant'] == 2:
|
||||
if scene.objects['Moteur']['pin_up'] is not None:
|
||||
if scene.objects['Moteur']['pin_down'] is not None:
|
||||
scene.objects['Moteur']['pin_down'].write(0)
|
||||
@ -187,6 +211,16 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
|
||||
# Version Grove
|
||||
if scene.objects['System']['variant'] == 1:
|
||||
if scene.objects['Moteur']['pin_direction'] is not None:
|
||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||
scene.objects['Moteur']['pin_direction'].write(0)
|
||||
scene.objects['Moteur']['pin_speed'].write(scene.objects['Moteur']['speed_real_setting']/255)
|
||||
|
||||
# Version AutoProg
|
||||
if scene.objects['System']['variant'] == 2:
|
||||
if scene.objects['Moteur']['pin_down'] is not None:
|
||||
if scene.objects['Moteur']['pin_up'] is not None:
|
||||
scene.objects['Moteur']['pin_up'].write(0)
|
||||
@ -203,12 +237,21 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
|
||||
# Version Grove
|
||||
if scene.objects['System']['variant'] == 1:
|
||||
if scene.objects['Moteur']['pin_direction'] is not None:
|
||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||
scene.objects['Moteur']['pin_direction'].write(0)
|
||||
scene.objects['Moteur']['pin_speed'].write(0)
|
||||
|
||||
# Version AutoProg
|
||||
if scene.objects['System']['variant'] == 2:
|
||||
if scene.objects['Moteur']['pin_down'] is not None:
|
||||
if scene.objects['Moteur']['pin_up'] is not None:
|
||||
scene.objects['Moteur']['pin_up'].write(0)
|
||||
scene.objects['Moteur']['pin_down'].write(0)
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Capteurs
|
||||
###############################################################################
|
||||
@ -320,6 +363,7 @@ def system_reset ():
|
||||
scene.objects['Moteur']['alpha']=0
|
||||
scene.objects['Moteur']['speed']=0
|
||||
scene.objects['Moteur']['speed_setting']=31.4 # Vitesse du moteur numérique : 31,4 rad /s ( 5 tr / s )
|
||||
scene.objects['Moteur']['speed_real_setting']=255 # Vitesse du moteur réel sur maquette Grove
|
||||
scene.objects['Moteur']['step']=0
|
||||
|
||||
# Priorités activées
|
||||
|
@ -101,6 +101,13 @@ def commandes():
|
||||
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
|
||||
###############################################################################
|
||||
|
||||
###
|
||||
# Variante 1 : Maquette Grove
|
||||
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# Variante 2 : Maquette AutoProg
|
||||
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||
###
|
||||
|
||||
def cycle():
|
||||
commandes()
|
||||
fin()
|
||||
@ -109,3 +116,5 @@ if __name__=='start':
|
||||
start(cycle)
|
||||
if __name__=='stop':
|
||||
stop()
|
||||
if __name__=='init':
|
||||
variant(1) # Variante maquette Grove
|
||||
|
@ -131,6 +131,26 @@ def reset_t ():
|
||||
def start(fct):
|
||||
twin_threading.start(threads_cmd, "commands", fct)
|
||||
|
||||
##
|
||||
# Variante
|
||||
#
|
||||
# La variante 1 appelée 'version Grove' : correspond à la maquette auto-construite basée sur des modules Grove
|
||||
# La variante 2 appelée 'version AutoProg' : correspond à la maquette de 4A technologie basée sur des modules AutoProg
|
||||
#
|
||||
# Au niveau de la commande, la différence sur entre les deux variantes est uniquement sur la commande moteur :
|
||||
# - variante 1 : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# - variante 2 : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||
#
|
||||
# Configuration des variantes du modèle 3D -> variant_dict :
|
||||
# 'nom de l'objet 3D' : liste des variantes où l'objet est présent.
|
||||
# Les objets hors dictionnaire sont présent quelque soit la variante sélectionnée.
|
||||
##
|
||||
|
||||
def variant(variant_num):
|
||||
if variant_num != scene.objects['System']['variant']:
|
||||
print ("Variante de la maquette numérique :", variant_num)
|
||||
scene.objects['System']['variant']=variant_num
|
||||
|
||||
##
|
||||
# Arrêt
|
||||
##
|
||||
|
Binary file not shown.
@ -28,8 +28,7 @@ scene = bge.logic.getCurrentScene()
|
||||
# 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, car les sorties sont pilotées par le numérique.
|
||||
#
|
||||
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1, par défaut)
|
||||
# 'mot_o' et 'mot_f' ne concernent que la maquette AutoProg (variante 2)
|
||||
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1)
|
||||
|
||||
public_vars = {
|
||||
't' : [['System','time','a'],[],[]],
|
||||
@ -122,6 +121,7 @@ def get_public_vars():
|
||||
# Actionneurs
|
||||
###############################################################################
|
||||
|
||||
##
|
||||
# Pour la commande du moteur de la variante 1 version Grove , le brochage du shield moteur CC 4 x 1,2 A DRI0039 (DFROBOT) est fixe,
|
||||
# il doit respecter le tableau suivant :
|
||||
# Motor Direction(Forward/Backward) Speed Speed range
|
||||
@ -129,6 +129,7 @@ def get_public_vars():
|
||||
# M2 12 HIGH LOW 11 0-255
|
||||
# M3 8 LOW HIGH 5 0-255
|
||||
# M4 7 HIGH LOW 6 0-255
|
||||
##
|
||||
|
||||
##
|
||||
# Moteur et portail
|
||||
|
@ -140,12 +140,15 @@ def commandes():
|
||||
###############################################################################
|
||||
# En: External call << DONT CHANGE THIS SECTION >>
|
||||
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
|
||||
#
|
||||
# Variante 1 (par défaut) : Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# Variante 2 : Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
###
|
||||
# Variante 1 : Maquette Grove
|
||||
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# Variante 2 : Maquette AutoProg
|
||||
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||
###
|
||||
|
||||
def cycle():
|
||||
commandes()
|
||||
fin()
|
||||
|
@ -148,7 +148,7 @@ def start(fct):
|
||||
##
|
||||
# Variante
|
||||
#
|
||||
# La variante 1 (par défaut) appelée 'version Grove' : correspond à la maquette auto-construite basée sur des modules Grove
|
||||
# La variante 1 appelée 'version Grove' : correspond à la maquette auto-construite basée sur des modules Grove
|
||||
# La variante 2 appelée 'version AutoProg' : correspond à la maquette de 4A technologie basée sur des modules AutoProg
|
||||
#
|
||||
# Au niveau de la commande, la différence sur entre les deux variantes est uniquement sur la commande moteur :
|
||||
@ -165,17 +165,6 @@ def variant(variant_num):
|
||||
print ("Variante de la maquette numérique :", variant_num)
|
||||
scene.objects['System']['variant']=variant_num
|
||||
|
||||
# FIXME : Affichage de la maquette Grove -> plus tards
|
||||
# variant_dict = {'Bp auto':[1], 'Bg auto':[2], 'Bg auto-on':[2]}
|
||||
# variant_list = list(variant_dict)
|
||||
# for name in variant_list:
|
||||
# if variant_num in variant_dict[name]:
|
||||
# scene.objects[name].setVisible(True,True)
|
||||
# scene.objects[name].restorePhysics()
|
||||
# else:
|
||||
# scene.objects[name].setVisible(False,True)
|
||||
# scene.objects[name].suspendPhysics()
|
||||
|
||||
##
|
||||
# Arrêt
|
||||
##
|
||||
|
Binary file not shown.
Binary file not shown.
@ -27,6 +27,8 @@ 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, car les sorties sont pilotées par le numérique.
|
||||
#
|
||||
# 'mot_s' et 'mot_v' ne concernent que la maquette Grove (variante 1 et 2)
|
||||
|
||||
public_vars = {
|
||||
't' : [['System','time','a'], [], []],
|
||||
@ -42,6 +44,8 @@ public_vars = {
|
||||
'bp_a_r' : [['Bp arret','activated_real','d'], [], []],
|
||||
'mot_m' : [['Moteur','up','d'], ['pin_up', 'd','o'], []],
|
||||
'mot_d' : [['Moteur','down','d'], ['pin_down', 'd','o'], []],
|
||||
'mot_s' : [['Moteur','direction','d'],['pin_direction','d','o'], []],
|
||||
'mot_v' : [['Moteur','speed_real','a'],['pin_speed','p','o'], []],
|
||||
'mot_angle' : [['Moteur','alpha','a'], [], []],
|
||||
'mot_vitesse' : [['Moteur','speed','a'], [], []],
|
||||
'mot_pas' : [['Moteur','step','a'], [], []],
|
||||
@ -116,6 +120,16 @@ def get_public_vars():
|
||||
# Actionneurs
|
||||
###############################################################################
|
||||
|
||||
##
|
||||
# Pour la commande du moteur des variantes 1 et 2 version Grove , le brochage du shield moteur CC 4 x 1,2 A DRI0039 (DFROBOT) est fixe,
|
||||
# il doit respecter le tableau suivant :
|
||||
# Motor Direction(Forward/Backward) Speed Speed range
|
||||
# M1 4 LOW HIGH 3 0-255
|
||||
# M2 12 HIGH LOW 11 0-255
|
||||
# M3 8 LOW HIGH 5 0-255
|
||||
# M4 7 HIGH LOW 6 0-255
|
||||
##
|
||||
|
||||
##
|
||||
# Moteur et volet
|
||||
##
|
||||
@ -210,6 +224,16 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
|
||||
# Version Grove
|
||||
if scene.objects['System']['variant'] == 1 or scene.objects['System']['variant'] == 2:
|
||||
if scene.objects['Moteur']['pin_direction'] is not None:
|
||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||
scene.objects['Moteur']['pin_direction'].write(1)
|
||||
scene.objects['Moteur']['pin_speed'].write(scene.objects['Moteur']['speed_real_setting']/255)
|
||||
|
||||
# Version AutoProg
|
||||
if scene.objects['System']['variant'] == 3:
|
||||
if scene.objects['Moteur']['pin_up'] is not None :
|
||||
if scene.objects['Moteur']['pin_down'] is not None:
|
||||
scene.objects['Moteur']['pin_down'].write(0)
|
||||
@ -305,6 +329,16 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
|
||||
# Version Grove
|
||||
if scene.objects['System']['variant'] == 1 or scene.objects['System']['variant'] == 2:
|
||||
if scene.objects['Moteur']['pin_direction'] is not None:
|
||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||
scene.objects['Moteur']['pin_direction'].write(0)
|
||||
scene.objects['Moteur']['pin_speed'].write(scene.objects['Moteur']['speed_real_setting']/255)
|
||||
|
||||
# Version AutoProg
|
||||
if scene.objects['System']['variant'] == 3:
|
||||
if scene.objects['Moteur']['pin_down'] is not None:
|
||||
if scene.objects['Moteur']['pin_up'] is not None:
|
||||
scene.objects['Moteur']['pin_up'].write(0)
|
||||
@ -340,6 +374,16 @@ def mot (cont):
|
||||
|
||||
# Modele 3D -> Arduino
|
||||
if scene.objects['System']['twins'] and obj['prior_real']:
|
||||
|
||||
# Version Grove
|
||||
if scene.objects['System']['variant'] == 1 or scene.objects['System']['variant'] == 2:
|
||||
if scene.objects['Moteur']['pin_direction'] is not None:
|
||||
if scene.objects['Moteur']['pin_speed'] is not None:
|
||||
scene.objects['Moteur']['pin_direction'].write(0)
|
||||
scene.objects['Moteur']['pin_speed'].write(0)
|
||||
|
||||
# Version AutoProg
|
||||
if scene.objects['System']['variant'] == 3:
|
||||
if scene.objects['Moteur']['pin_down'] is not None:
|
||||
if scene.objects['Moteur']['pin_up'] is not None:
|
||||
scene.objects['Moteur']['pin_up'].write(0)
|
||||
@ -457,6 +501,7 @@ def system_reset ():
|
||||
scene.objects['Moteur']['last_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']['speed_real_setting']=255 # Vitesse du moteur réel sur maquette Grove
|
||||
scene.objects['Moteur']['step']=0
|
||||
scene.objects['Axe enrouleur']['last_alpha']=scene.objects['Axe enrouleur'].worldOrientation.to_euler().x
|
||||
obj = scene.objects['Moteur']
|
||||
|
@ -11,6 +11,8 @@ from volrou_lib import * # Bibliothèque volet roulant
|
||||
# Actions (ordre = True ou False) :
|
||||
# - Monter le volet (moteur sens trigo) : mot_m(True | False)
|
||||
# - Descendre le volet (moteur sens horaire) : mot_d(True | False)
|
||||
# - Définir la vitesse du moteur jumeau numérique : mot_vitesse (vitesse) , vitesse en rad / s, si vitesse est omis la valeur par défaut est 125.6 rad /s ( 20 tr / s ))
|
||||
# - Définir la vitesse du moteur jumeau réel : mot_vitesse_r (vitesse) , vitesse de 0 à 255, la valeur par défaut est 255 (uniquement sur la maquette Grove)
|
||||
#
|
||||
# Capteurs :
|
||||
# - Capteur fin de course volet en haut : fdc_h() : valeur retournée = True ou False
|
||||
@ -28,6 +30,17 @@ from volrou_lib import * # Bibliothèque volet roulant
|
||||
#
|
||||
# Gestion du temps :
|
||||
# - Temporisation en seconde : tempo(duree)
|
||||
# - Réinitialisation de la valeur du temp (t) : reset_t()
|
||||
#
|
||||
# Acquisition de données :
|
||||
# - Retourne la valeur de la variable à l'instant : get(variable)
|
||||
# - Lancer l'enregistrement : daq([variable1, variable2, ... ])
|
||||
# - Afficher les graphiques : plot([variable1, variable2, ... ])
|
||||
|
||||
# Jumelage :
|
||||
# - Démarrer le jumelage : jumeau({brochage})
|
||||
# - Arrêter le jumelage : jumeau_stop({brochage})
|
||||
# - Définir les règles d'activation : jumeau_mode({brochage})
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
@ -136,16 +149,23 @@ def commandes():
|
||||
mot_d(False)
|
||||
presence_lum_tempo=0
|
||||
|
||||
|
||||
###############################################################################
|
||||
# En: External call << DONT CHANGE THIS SECTION >>
|
||||
# Fr: Appel externe << NE PAS MODIFIER CETTE SECTION >>
|
||||
#
|
||||
# Variante 1 : Le mode automatique s'active avec le bouton poussoir bp_auto et se désactive avec l'appui sur bp_m, bp_a ou bp_d.
|
||||
# Variante 2 : Le mode automatique s'active et se désactive avec le bouton à glissière bg_auto.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
###
|
||||
# Variante 1 : Maquette Grove + bouton auto à glissière :
|
||||
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# - Le mode automatique s'active et se désactive avec le bouton à glissière bg_auto
|
||||
# Variante 2 : Maquette Grove + bouton auto poussoir :
|
||||
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# - Le mode automatique s'active avec le bouton poussoir bp_auto et se désactive avec l'appui sur bp_m, bp_a ou bp_d.
|
||||
# Variante 3 : Maquette AutoProg + bouton auto poussoir :
|
||||
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||
# - Le mode automatique s'active avec le bouton poussoir bp_auto et se désactive avec l'appui sur bp_m, bp_a ou bp_d.
|
||||
###
|
||||
|
||||
def cycle():
|
||||
commandes()
|
||||
fin()
|
||||
@ -155,4 +175,4 @@ if __name__=='start':
|
||||
if __name__=='stop':
|
||||
stop()
|
||||
if __name__=='init':
|
||||
variant(1) # Variante 1 de la maquette 3D du volet roulant
|
||||
variant(1) # Variante maquette Grove avec bouton à glissière
|
||||
|
@ -156,10 +156,17 @@ def start(fct):
|
||||
# Variante
|
||||
#
|
||||
# Variante 0 : valeur par défaut : boutons 'bp_auto' et 'bg_auto' absents -> il faut donc définir obligatoirement la variante.
|
||||
# Variante 1 : Le mode automatique s'active avec le bouton poussoir 'bp_auto' et se désactive avec l'appui sur 'bp_m', 'bp_a' ou 'bp_d'.
|
||||
# Variante 2 : Le mode automatique s'active et se désactive avec le bouton à glissière 'bg_auto'.
|
||||
# Variante 1 : Maquette Grove + bouton auto à glissière :
|
||||
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# - Le mode automatique s'active et se désactive avec le bouton à glissière bg_auto
|
||||
# Variante 2 : Maquette Grove + bouton auto poussoir :
|
||||
# - Maquette Grove : la carte moteur est le shield moteur Arduino CC 4 x 1,2 A DRI0039 (DFROBOT)
|
||||
# - Le mode automatique s'active avec le bouton poussoir bp_auto et se désactive avec l'appui sur bp_m, bp_a ou bp_d.
|
||||
# Variante 3 : Maquette AutoProg + bouton auto poussoir :
|
||||
# - Maquette AutoProg (A4 Technologie) : la carte moteur est le module AutoProg K-AP-MMOT-KIT
|
||||
# - Le mode automatique s'active avec le bouton poussoir bp_auto et se désactive avec l'appui sur bp_m, bp_a ou bp_d.
|
||||
#
|
||||
# La variante 1 correspond à la maquette de 4A technologie.
|
||||
# La variante 3 correspond à la maquette de 4A technologie.
|
||||
#
|
||||
# Configuration des variantes du modèle 3D -> variant_dict :
|
||||
# 'nom de l'objet 3D' : liste des variantes où l'objet est présent.
|
||||
@ -170,7 +177,9 @@ def variant(variant_num):
|
||||
if variant_num != scene.objects['System']['variant']:
|
||||
print ("Variante de la maquette numérique:", variant_num)
|
||||
scene.objects['System']['variant']=variant_num
|
||||
variant_dict = {'Bp auto':[1], 'Bg auto':[2], 'Bg auto-on':[2]}
|
||||
|
||||
# Affichage des éléments spécifiques de la variante
|
||||
variant_dict = {'Bg auto':[1], 'Bg auto-on':[1], 'Bg auto':[2], 'Bg auto-on':[2], 'Bp auto':[3]}
|
||||
variant_list = list(variant_dict)
|
||||
for name in variant_list:
|
||||
if variant_num in variant_dict[name]:
|
||||
|
Loading…
Reference in New Issue
Block a user