u4.13.04 Opérateur INFO_EXEC_ASTER#
Syntaxe#
Détail de la syntaxe
table = INFO_EXEC_ASTER(
◆ LISTE_INFO = / "TEMPS_RESTANT",
/ "UNITE_LIBRE",
/ "ETAT_UNITE",
# Si: is_in('LISTE_INFO', 'ETAT_UNITE')
◆ / UNITE = unit,
/ FICHIER = text,
◇ TITRE = text,
◇ INFO = / 1 (par défaut),
/ 2,
)
◆ : obligatoire
◇ : optionnel
⟐ : présent par défaut
& : ensemble
/ : un seul parmi
| : plusieurs choix possibles
Opérandes#
Opérande LISTE_INFO#
◊ LISTE_INFO = ‘TEMPS_RESTANT’
Permet de récupérer le temps restant au cours de l’exécution: c’est la différence entre le temps maximal alloué au calcul et la valeur du temps déjà écoulé.
◊ LISTE_INFO = ‘UNITE_LIBRE’
Renvoie le premier numéro d’unité logique disponible (par ordre décroissant à partir de 99) au moment de l’appel. Cette valeur, récupérée dans une variable python, peut ensuite être passée en argument d’une commande Aster. Les numéros d’unité logique sont gérés à partir de la commande DEFI_FICHIER [U4.12.03] et sont déposés au sein d’une structure de données interne au code qui fait le lien entre les fichiers et les numéros d’unités.
◊ LISTE_INFO = ‘ETAT_UNITE’
Renvoie suivant la présence du mot clé UNITE ou FICHIER, l’état de l’unitélogique: libre, réservée ou bien le nom de fichier associé .
Opérandes UNITE/FICHIER#
◊ UNITE
Numéro de l’unité logique dont on veut interroger l’état
◊ FICHIER
Nom du fichier dont on veut obtenir le numéro d’unité logique associé
Opérande TITRE#
◊ TITRE = titre
Titre affecté à la structure de données table associée. Pour plus de détails voir [U4.03.01].
Opérande INFO#
◊ INFO = 1
Opérande inutilisé pour le moment.
Exemple#
# On effectue une boucle de 1 à 10
for k in range(1,10):
#
# on appelle une ou plusieurs commandes (AFFE_CHAR_MECA, STAT_NON_LINE, etc.)
…
# on récupère le temps restant dans la table TAB
TAB=INFO_EXEC_ASTER(LISTE_INFO='TEMPS_RESTANT')
# on récupère la valeur du temps dans une variable python
valcpu=TAB['TEMPS_RESTANT',1] # cette instruction nécessite
# d’être en mode PAR_LOT=”NON”
# on teste cette variable python, s’il reste moins de 5 s, on sort de la boucle
if valcpu< 5.0:
break
# on détruit le concept de type table, pour pouvoir le récréer à l’itération suivante.
DETRUIRE(CONCEPT=(_F(NOM=TAB),))