le 05-24-2013 05:31 AM
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
le 05-24-2013 06:04 AM
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:
Cordialement
le 05-24-2013 07:27 AM
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
le 05-24-2013 12:55 PM
merci beaucoup pour ta reponse
le 05-29-2013 02:46 AM
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
Cordialement,
Olivier L. | Certified LabVIEW Developer
le 05-29-2013 02:50 AM
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.
le 05-29-2013 03:03 AM
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
le 05-29-2013 03:05 AM
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