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),))