J'ai une question si j'envoie sur le port COM un caratere par exemple "A" je recupere sur la trame sa valeur en binaire ASCII ?
A+
-----
Aujourd'hui
Publicité
02/09/2003, 14h54
#2
guerrier
Date d'inscription
juin 2003
Messages
128
LES 2 !!!
tu recupereras en binaire le code ASCII du caractere
en gros: ASCII c une table de conversion du caractere vers un nombre
ce nombre peut etre code indifferamment en binaire, en decimal (base 10), en hexa, .....
02/09/2003, 15h49
#3
Bigonoff
Date d'inscription
janvier 2003
Localisation
Belgique
Messages
959
Salut
------
Comme le dit Guerrier, tout est histoire de convention.
Tu envoies des bits, et tu reçois des bits, c'est à toi et à toi seul de savoir ce qu'ils représentent.
Donc, tu dis que tu as envoyé "A". En réalité tu n'as pas envoyé "A", tu as envoyé la représentation de A suivant le codage que tu as utilisé dans ton programme d'émission.
Si tu as envoyé, par exemple, le code ascii de "A", tu as envoyé un nombre représentant "A" dans la table de codage ASCII. Mais tu peux aussi avoir envoyé la représentation de "A" dans un autre format, existant ou de ton invention. Quelque part dans ton programme d'émission, tu as donc une instruction qui convertit "A" en une valeur numérique, "A" n'est pas envoyé "tel quel".
A l'autre bout de la chaîne, tu récupères cette valeur numérique. Si tu veux recréer ton "A", tu dois savoir ce que représente cette valeur numérique (exemple, code ascii d'un caractère). En l'absence de cette information, tu récupères simplement un nombre dont tu ignores la signification.
Rien ne t'empeche donc, à l'autre extrémité, de considérer la valeur reçue comme numérique pure, et de lui appliquer des formules mathématiques, par exemple.
Autrement dit, pour que tout le traitement reste cohérent, il faut utiliser les mêmes conventions pour celui qui émet l'information et pour celui qui la reçoit.
A+
Bigonoff
Vive l'Internet libre
02/09/2003, 19h09
#4
JP
Date d'inscription
février 2003
Localisation
Strasbourg
Messages
1 638
Ok merci,
Parce que j'envoi ce caracetere avec une fonction de C++ Builder (Writefile) et je n'arrive pas à recupéré la valeur Hex de mon "A".
Alors vous allez me dire mais envoi directement une valeur numérique mais ca ne marche pas avec cette fonction.
Moralité je sais pas si c'est mon uart qui déconne ou le caractere qui n'est pas codé en ASCII.
Et mon oscillo ... HS
Aujourd'hui
A voir en vidéo sur Futura
03/09/2003, 22h36
#5
Bigonoff
Date d'inscription
janvier 2003
Localisation
Belgique
Messages
959
Salut
-------
Writefile????
Curieux nom pour une fonction d'envoi d'un caractère sur le port série.
Je ne connais pas builder C++, tu es certain de ne pas te tromper de fonction?
A+
Bigonoff
Vive l'Internet libre
03/09/2003, 23h51
#6
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 359
Salut,
les API windows permettent l'accès aux ports à l'aide des fonctions CreateFile(), ReadFile(), and WriteFile().
J'avoue que je ne maîtrise pas l'utilisation des API, mais ce que j'ai compris, c'est qu'il faut créer un handler avec CreateFile(), vérifier que l'opération s'est bien passée avant d'utiliser WriteFile().
JP, tu devrais aller faire un tour du côté de la communauté des développeurs delphi ou C++ builder, je pense que tu trouveras ce que tu cherches, notamment de nombreux composants (gratuits) qui ont été développés pour exploiter les ports.