Discussions au sujet de NI LabVIEW

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

convertir un nombre en un caractere

bonjour

 

je travail actuellement sous labview pour effectuer une IHM de controle.

 

mon probleme est que je n'arrives pas à envoyer un nombre en hexadecimal sur le port série.

 

je m'explique quand je prend un nombre 50 et que je le convertie en hexadecimal il s'achiffe 32 (lecaractere  que je veus obtenir) mais quant je l'envois par le port série je receptione 3332.

 

j'ai egalement remarquer que lorsque je fais changer le format d'affichage et que je le met en hexadecimal mon caractere est 3332.

 

je voudrais savoir comment faire pour convertir 50(valeur numerique) en 32 (format hexadecimal)

 

 

cordialement Dahan jeremy

0 Compliments
Message 1 sur 8
7 035 Visites

Bonjour,

 

il y a une fonction LabVIEW de la palette de conversion des chaines de caracteres qui réalise cette fonction. Elle se nomme "convert number to hexadecimal string" (Fonctions -> String -> String/Number Conversion).

 

En snippet:

 

hex string.png

 

Cordialement

______________
Florian Abry
Inside Sales Engineer, NI Germany
0 Compliments
Message 2 sur 8
7 032 Visites

Bonjour

 

Attention au format de votre nombre.

Vous envoyer des octets, donc votre nombre sous LV doit etre un U8.

Si vous avez 3332, vous utilisez surement un U16 (ou I16), donc deux caraéctères

 

Salutations

EricC

Ingénieur d'Application / Développeur LabVIEW Certifié (CLD)
Application Engineer / LabVIEW Certified Developer (CLD)
Message 3 sur 8
7 024 Visites

merci beaucoup pour ta reponse

 

0 Compliments
Message 4 sur 8
7 012 Visites

Bonjour,

 

Je crains que les réponses précédentes ne correspondent pas à ton besoin.

 

@Naity : la conversion en chaine Hexa, donnera une chaine avec la valeur 32, mais la valeur hexa envoyée sur le port série sera la chaine au format hexa, soit à nouveau 3332.

 

Ce qu'il faut, c'est une conversion de la donnée brute au format chaine, et non pas uen interprétation en chaine de la donnée.

Pour cela il faut utiliser la fonction "adapter le type" que tu trouveras dans la palette Numerique>>Manipulations de données

convert Hexa.png

 

Cordialement,

 

Olivier L. | Certified LabVIEW Developer


Message 5 sur 8
6 973 Visites

Effectivement, je me suis fourvoyé. Au temps pour moi. 

 

J'ai lu la question un peut trop vite et avais compris que le but était d'avoir une chaine de caracteres representant un nombre hexa. Apres relecture je confirme que votre suggestion est la plus appropriée pour résoudre le problème.

______________
Florian Abry
Inside Sales Engineer, NI Germany
0 Compliments
Message 6 sur 8
6 971 Visites

Y'a pas de mal 😉

J'ai eu tellement souvent besoin de faire cette conversion de données brutes pour de la com que je me suis cassé les dents dessus plus d'une fois avant de me rappeler de la bonne méthode pour le faire, et que ça devienne automatique!

 

@jerem2626:

En plus, pour refaire la conversion inverse, il suffit d'utiliser la même fonction mais de changer l'entrée "type" (qui n'est pas cablée sur mon exemple, mais qui est une chaine par défaut). Tu peux même directement convertir une chaine (avec plusieurs caractères) en tableau de U8 pour récupérer plusieurs données d'un coup

Olivier L. | Certified LabVIEW Developer


0 Compliments
Message 7 sur 8
6 967 Visites

Une autre solution, si tu pars d'un tableau d'octets, est de convertir ce tableau en chaine, et inversement, à partir des fonctions "chaine en tableau d'octet" et "tableau d'octet en chaine" de la palette chaine

Olivier L. | Certified LabVIEW Developer


0 Compliments
Message 8 sur 8
6 965 Visites