IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tcl/Tk Discussion :

Conversion binaire -> string


Sujet :

Tcl/Tk

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 39
    Points : 25
    Points
    25
    Par défaut Conversion binaire -> string
    Bonjour,

    Je débute avec TCL/TK et j'aurais en fait plusieurs questions...

    Je souhaite récupérer les données de la liaison série, ce qui fonctionne.
    Cependant, je ne souhaiterais afficher que les données dont le bit de poids fort est à 1.
    Je pensais qu'un simple masque suffirait; cependant, il semblerait qu'il faille que je convertisse ma donnée récupérée par le port série en binaire, ce que j'ai fait.
    Ensuite, je dois supprimer ce bit de poid fort; pour cela, j'ai fait un ou exclusif toujours sur ma valeur en binaire, et maintenant j'aimerais afficher ma donnée mais cette fois j'aimerais afficher les caractères et non pas la valeur binaire...

    Voilà donc mes questions sont :
    - dois-je obligatoirement convertir mon caractère en binaire pour faire mon masque ?
    - Si oui, comment puis je reconvertir de binaire en string, j'ai pas trouvé...

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Points : 44
    Points
    44
    Par défaut Conversion binaire vers string:
    - dois je obligatoirement convertir mon caractère en binaire pour faire mon masque?
    Réponse: Non, on peut faire un masque sur une valeur hexadécimale que on extrait assez directement du flux RS232.

    - Si oui, comment puis je reconvertir de binaire en string, j'ai pas trouvé...
    Réponse: Comme la précédente réponse est non, on peut transformer la valeur hexadécimal(sans le bit de poids fort) en un caractère avec la fonction "Format".

    Voici un code fonctionnel pour faire le travail de conversion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    proc convert { vc } {
    	if {[expr $vc & 0x80] > 0 } {
    		set car [format "%c" [expr $vc & 0x7F]]
    		return $car
    		} else {
    		return ""
    		}
    	}
    #appel de la fonction
    set keysym [convert 0xCA]
    La valeur à convertir est "0XCA"
    La fonction de conversion est "convert", elle retourne le caractère dans la variable "keysym".

    J'espère avoir répondu à votre question.
    Salutations.

    Pour info: http://bidelec.hebergratuit.com/index.php

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 39
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    Merci pour la réponse j'ai pas encore essayé mais je mis met de suite!

    Petite question car les choses ne sont pas très claire dans ma tête...

    Qu'elle est le format des données que je reçois par mon port série si il y est envoyé des caractères?

    Lorsque que je reçois mes données et que je les affiches directement dans ma console j'ai bien des caractères qui s'affiche, pas des hexadecimales...

    Je sais pas si ma question est très claire vue que c'est un peu flou dans ma tête!!

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 39
    Points : 25
    Points
    25
    Par défaut
    Re,

    Bon j'ai essayé et donc en faite je reçois apparement directement des caractères de mon port série puisqu'il me jète avec cette fonction. (il aime pas trop le & logique entre un char et un hexa)

    J'ai voulu faire une conversion de mon char en hexa mais là aussi ça coince... je ne doit pas utilisé la bonne fonction de conversion j'ai pas l'impression qu'il le voit comme un hexa mais plutot comme des caractères quand la valeur est par exemple EF...
    J'utilise la fonction "binary scan $vc H* vcHexa"

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 29
    Points : 44
    Points
    44
    Par défaut Conversion binaire->string
    Bonjour lilly91

    Sur mon site http://bidelec.hebertgratuit.com/index.php, vous trouverez un exemple de code dans le dossier "RS232 pour PC" qui permet d'afficher en ASCII et en Hexadécimal ce qui arrive sur le port RS232 d'un PC. Je ne me souviens plus du détail du script TCL TK. Vous pouvez copier, modifier ou extraire tout ou partie du code(pas de droit d'auteur). Pour passer un char en hexa, on peut utiliser la fonction "set v-hexa [format "0x%02x" $car]"
    En espérant que vous trouverez votre bonheur, sincères salutations.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 39
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup je penses qu'il y a plein de choses qui vont pouvoir m'aider!!

Discussions similaires

  1. [Débutant] Conversion d'un String en Int
    Par chleuh dans le forum Langage
    Réponses: 9
    Dernier message: 30/12/2004, 13h33
  2. [C#] Conversion d'un string en byte[] et inversement
    Par david71 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/12/2004, 15h10
  3. Réponses: 2
    Dernier message: 21/06/2004, 15h55
  4. Conversion binaire -> hexadecimal
    Par barthelv dans le forum C
    Réponses: 2
    Dernier message: 06/08/2003, 10h40
  5. Conversion binaire -> ASCII
    Par will13013 dans le forum C
    Réponses: 8
    Dernier message: 08/01/2003, 04h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo