Conversion binaire vers Ascii

krabbe63 Messages postés 2 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 21 mai 2007 - 9 mai 2007 à 18:06
krabbe63 Messages postés 2 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 21 mai 2007 - 21 mai 2007 à 11:46
Bonjour tout le monde,

Alors je vous préviens d'avance, je suis étudiant en méca et assez ... léger en info !

Donc j'ai un problème pour récupérer le code Ascii d'une chaîne de caractère. A la base je reçois d'une balance une chaîne de caractère avec un 1er bit de démarrage, 8 bits de donnée et enfin 1 bit d'arrêt. Par exemple : 101100010

Donc j'utilise la fonction Mid pour récupérer les 8 bits de données puis la fonction Asc pour converter mes 8 bits du binaire au code Ascii. Le problème c'est que je n'obtiens que 48 ou 49 suivant que ma chaîne commence par un 0 ou un 1 (d'ailleurs c'est bien expliqué dans l'aide de VB2005). Je ne sais donc pas quelle fonction utiliser. Je vous met ici la trame de ce que j'ai utilisé, n'hésitez pas à corriger !

Dim k As String, mot As String, code_asc As String

 k = "1011001101"   / ca c'est la trame que je reçois de la balance

        mot = Mid(k, 2, 8)
        RichTextBox1.Text = mot & vbCrLf

        code_asc = Asc(mot)
        RichTextBox1.Text = RichTextBox1.Text & code_asc & vbCrLf

Si vous avez des idées n'hésitez pas ! ou si il y a déjà un sujet sur ce problème ... tapez moi sur les doigts !

Merci d'avance à tous,

Aurélien.

2 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 mai 2007 à 18:32
Effectivement il te manque quelques bases en communication série.

Le format de trame que tu indique est le format utiliser entre le PC et la balance.
Toi au niveau du code, ce que tu vas recevoir c'est uniquement les 8 bits de données mais sous la forme d'un seul caractère (8Bits = 1 caractère).

En réalité, tu vas recevoir une série de caractères constituant la chaine de caractère. Normalement, tu devrais lire la chaine "en clair" à la reception, niveau code tu ne dois pas avaoir je pense de conversion à faire.

Eventuellement, montre nous le code qui te sert à recevoir les données.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
Rejoignez-nous