From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Convertir une chaine en enum?

Résolu !
Accéder à la solution

Bonjour,

 

Je voudrais savoir s'il est possible de convertir l'élément d'une chaine pour obtenir un élément de type énum...

Je suis en train de construire  une machine d'état et je voudrais indiquer l' "état suivant", j'ai un tableau qui me renvoie tout les "etats suivants"et je voudrais que au fur et à mesure de la lecture du tableau, la chaîne obtenu vienne commander l'état suivant de ma machine d'état de type enum.

 

Je ne sais pas si c'est possible de cette façon, sinon je peux très bien commander ma structure condition à l'aide de chiffre qui sont facilement convertiblent à partir d'une chaîne (en prenant pour definition START = 0, etc...) mais ce serait beaucoup moins lisible...

 

Bonne journée.

 

Cordialement.

0 Compliments
Message 1 sur 9
3 945 Visites

Bonjour,

 

Ci joint un exemple.

Bon courage.

Philippe B.
Certified Associate Developer / Dépt Moyens d'essais

www.ingenia-system.com
0 Compliments
Message 2 sur 9
3 944 Visites
Merci 🙂
0 Compliments
Message 3 sur 9
3 942 Visites

Desolé mais j'ai un petit problème lorsque je supprime la partie avec le tableau de chaine, cela fonctionne quand même...

J'ai mis un indicateur sur enum2 pour voir si il changeait au cours du temps en fonction de la consigne de la chaîne mais il reste invariant à l'état START, moi j'ai besoin de pouvoir changer la valeur  de mon enum au cours du temps.

0 Compliments
Message 4 sur 9
3 937 Visites

C'est normal q enum2 ne varie pas car il est en dehors de la boucle While. Il est tjs = START car s'est sa valeur par défaut.

Tu veux modifier ta machine à états en cours d'exécution de ton VI ? Ou tu connais ta machine à états et tu veux passer d'un état à l'autre durant ton exécution ?

Philippe B.
Certified Associate Developer / Dépt Moyens d'essais

www.ingenia-system.com
0 Compliments
Message 5 sur 9
3 935 Visites

En fait je connais tout mes etats, ils sont définis, je voudrais avec un tableau de chaînes représentant le nom de mes états pouvoir dire quel état je dois lancer, une fois que celui-ci est fini on lit la deuxieme ligne de la chaîne et cela lance un autre état, voilà l'idée...

 

En gros j'ai plusieurs etats définis et en fonction des tests que je veux faire, je lance certains états dans un certains ordre, il y aura donc des états qui ne seront pas forcément appelés en fonction de mon tableau de chaine à l'entrée, c'est pour ca que je pense que je dois modifier la valeur qui correspond à l'"état suivant" dans un état vu que mon état initiale sera toujours le même START, à chaque lecture de la chaine on lira donc l'état suivant.

0 Compliments
Message 6 sur 9
3 933 Visites
Solution
Accepté par l'auteur du sujet leo2b

Ci joint un exemple de solution.

 

Bon courage.

Philippe B.
Certified Associate Developer / Dépt Moyens d'essais

www.ingenia-system.com
Message 7 sur 9
3 928 Visites

Merci c'est exactement cela qu'il me fallait.

 

Bonne journée.

0 Compliments
Message 8 sur 9
3 925 Visites

De rien...

 

Bon courage.

Philippe B.
Certified Associate Developer / Dépt Moyens d'essais

www.ingenia-system.com
0 Compliments
Message 9 sur 9
3 919 Visites