Discussions au sujet de NI LabVIEW

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

convertir une chaine de caractère en tableau 2D

Bonjour,

je vous explique mon problème, grâce à une liaison série RS232 je reçois une chaine de caractère sous la forme : M01C00 M02C00 M03C00 M04C00 M0 , cette dernière je veux la mettre dans un tableau 2D comme le suivant :

M01C00 dans la première ligne et chaque caractère et dans une colonne, et ainsi de suite , donc je veux bien savoir comment faire pour convertir une chaine de caractère en tableau 2D sur labview

cordialement,

0 Compliments
Message 1 sur 56
6 047 Visites

anas38 a écrit :

Bonjour,

je vous explique mon problème, grâce à une liaison série RS232 je reçois une chaine de caractère sous la forme : M01C00 M02C00 M03C00 M04C00 M0 , cette dernière je veux la mettre dans un tableau 2D comme le suivant :

M01C00 dans la première ligne et chaque caractère et dans une colonne, et ainsi de suite , donc je veux bien savoir comment faire pour convertir une chaine de caractère en tableau 2D sur labview

cordialement,


Bonjour : je ne trouve pas ma solution extraordinaire, mais je ne trouve pas mieux (?!) : transforme la chaîne d'entrée en tableau 1D sur transformation "espace". Puis boucle sur le tableau 1D, pour transformer la chaîne de caractère en un tableau de caractère. Je pense que nous pouvons faire mieux, à réfléchir. A+

 

string to array.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Message 2 sur 56
6 042 Visites

oui mais le problème c'est que je ne vais pas recevoir une chaine de caractère constante , donc ce sera variable en fonction des entrées connectées de mon multiplexeur , je m'explique :

M01Ccc , je vais avoir cc qui varie entre 01 à 16 et en fonction de ça je vais allumer la led correspondante par exemple si j'ai M01C01 j'allume la LED 01 si M01C02 ce sera la LED 02 et ainsi de suite.

en fait je reçois cette chaine : M01C00 M02C00 M03C00 M04C00 M0 lorsqu'aucune entrée n'est connectée aux sorties 01 02 03 04 , ce que je veux en gros c'est d'arriver à me débarasser de M0 et garder le reste, j'ai essayé la fonction rechercher une fonction mais ça ne marche pas !

0 Compliments
Message 3 sur 56
6 035 Visites

anas38 a écrit :

oui mais le problème c'est que je ne vais pas recevoir une chaine de caractère constante ,


Il faut transformer dans l'exemple la constante en contrôle

 


anas38 a écrit :

 

M01Ccc , je vais avoir cc qui varie entre 01 à 16 et en fonction de ça je vais allumer la led correspondante par exemple si j'ai M01C01 j'allume la LED 01 si M01C02 ce sera la LED 02 et ainsi de suite.


Quelque chose comme cela? tableau de valeur yy de Cyy pour les xx de Mxx.

string to array.png

banniere Luc Livre NXG Champion.png

Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion

MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group

Message 4 sur 56
6 025 Visites

voilà ce que j'ai fais en suivant ton exemple , mais j'ai un petit problème ! il m'a lu que l'état de la première sortie et pourtant j'ai fait un incrémentation de 6 avec N=6, ci-joint mon Vi

0 Compliments
Message 5 sur 56
6 016 Visites

Dans l'exemple de Luc, c'est un Tableau 1D de string qui rentre dans la boucle For,

avec indexation sur le noeud d'entrée ... pas une chaine unique.

0 Compliments
Message 6 sur 56
6 011 Visites

oui je sais , mais moi j'arrive pas à faire comme lui ça veut dire je ne peux pas convertir ma chaine de caractère en entiers et les mettre dans un tableau !

0 Compliments
Message 7 sur 56
6 008 Visites

" ...je ne peux pas convertir ma chaine de caractère en entiers ..."

 

si tu reçois une chaine de caractères avec le formatage conforme à ton explication,

soit : M01C00 M02C00 M03C00 M04C00 ... MxxCyy ... Je ne vois pas ce qui pose problème.(?)

 peux-tu être plus explicite sur le soucis rencontré ?

Message 8 sur 56
6 000 Visites

en fait j'ai un multiplexeur à 6 sorties dont chacune possède 16 entrées, et en fonction de la commande envoyée par mon multiplexeur , par exemple il m'envoie M01Cxx M02Cxx M03xx M04Cxx M05Cxx M06Cxx avec xx varie de 01 à 16 , et si par exemple on a que 2 sorties connectées il m'affiche que M01Cxx et M02Cxx . Donc moi ce que je veux c'est en fonction de ce que je reçois par exemple M01C15 je vais mettre dans un tableau M=01 et CC=15

 

0 Compliments
Message 9 sur 56
5 998 Visites

 

Donc moi ce que je veux c'est en fonction de ce que je reçois par exemple :

M01C15 je vais mettre dans un tableau M=01 et CC=15

 

Désolé, comprends pas ou est le soucis. (toutes mes excuses)

Le code proposé semble donner en sortie un résultat conforme à ce qui est recherché

 

IN : string "M01C15" ...        (ou plus généralement une suite quelconque : "MxxCyy / espace / MxxCyy / espace / .....)

OUT : numérique 01 et 15    (un Tableau 1D I32 pour les "xx", idem pour les "yy")

 

 

Bench_2.png

 

Le résultat recherché me semble conforme.

 

Bench_1.png

 

Message 10 sur 56
5 993 Visites