le 04-27-2012 02:37 AM
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,
le 04-27-2012 03:17 AM
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+
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
04-27-2012 04:40 AM - modifié 04-27-2012 04:47 AM
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 !
le 04-27-2012 05:57 AM
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.
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
le 04-27-2012 07:32 AM
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
le 04-27-2012 07:41 AM
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.
le 04-27-2012 07:52 AM
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 !
le 04-27-2012 08:10 AM
" ...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é ?
le 04-27-2012 08:16 AM
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
04-27-2012 08:52 AM - modifié 04-27-2012 08:57 AM
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")
Le résultat recherché me semble conforme.