Discussions au sujet de NI LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Réception de trames RS232 et stockage sous forme de string

Solved!
Go to solution

Bonjour,

 

Je réalise l'acquisition de différents capteurs via une liaison RS232. Les trames reçues (hexadécimales) et affichée dans l'affichage "Donnée brute capteur 1" du programme "hydrogenerateur.vi" sont de la forme suivante :

 

\r\00\07\00\00\00\00\FF\00\00\n
\r\01\07\0B\1A\00\00\01\00\00\n
\r\05\b\01\BAmV\00\00\00\00\n

 

Je désire donc ensuite séparer les différentes trames en utilisant la fonction "match pattern" de Labview avec le séparateur "\" mais ça ne fonctionne pas.

En fait ça fonctionne si je copie l'affichage "Donnée brute capteur 1" du programme "hydrogenerateur.vi" dans le programme "Test sans connection.vi" composé des mêmes blocs que le premier programme sans l'acquisition RS232.

Mais ça ne fonctionne pas directement dans le programme "hydrogenerateur.vi". C'est comme-ci l'affichage "Donnée brute capteur 1" ne correspondait pas à ce qui est réellement contenu et la fonction "match pattern" ne fonctionne donc pas.

 

Avez-vous une solution à proposer?

 

Merci d'avance,

Pierre

Download All
0 Kudos
Message 1 of 3
(609 Views)
Highlighted

Bonjour,

Il faut que tu regardes les propriétés de ton affichages Chaine. Vu ce que tu écrit il est surement en mode Affihchage des code, cela veux donc dire que la chaine de valeur contenue dans le stockage ne contient pas \r mais le caractère "cariage return"

C'est pour cela que le match pattern ne trouve pas de correspondance.

La solution est de mettre le on caractère en entrée du match Pattern.

Assures toi que tout les affichages sont dans le même mode ( clic droit affichage sur une indicateur chaine)

Message 2 of 3
(474 Views)
Highlighted
Solution
Accepted by topic author pierre1325

Tout d'abord, concernant le fait que ça fonctionne dans un VI et pas dans l'autre, c'est à cause du mode d'affichage qui n'est pas le même. Si tu fais un click-droit sur le champ "Données brutes capteurs" tu verras dans le menu la possibilité d'afficher le texte de manière standard ou en mode "Code display". En mode "code display", le retour à la ligne est représenté par "\r" par exemple. Voir image1. Ensuite, la même remarque s'applique à la constante "\" de que tu recherches. Voir image 2. D'ailleurs tu remarqueras qu'en mode "code dysplay", tu ne peux pas rechercher un "\", ce qui est logique, car dans ce mode, le "\" est un élément de codage.

 

 

 

.ps.jpg

ps2.jpg

 

 

Message 3 of 3
(195 Views)