Problème de liaison RS232

Résolu
Signaler
Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009
-
Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009
-
Voila je vous expose mon problème :
Je suis étudiant en BTS electronique et en ce moment nous sommes sur un projet de panneau d'affichage à message variable créé avec des matrices à LEDS 5*8. Dans la composition des groupes, je suis délégué à la création de l'interface graphique VB qui permettra d'envoyer les messages au panneau d'affichage, grace à une connection RS232. Le programme analyse une image noir et blanc de 90px par 32px et stock dans un tableau les états des diodes (0-> Allumées ; 1-> Eteintes). L'afficheurs est divisé en 360 colonnes (4 fois 90 colones de 7 leds). Le problème est que le composant MSCOMM de Visual Basic 6 envoye le code ASCII de chaque caractères compris dans ma variable à envoyer alors que ce que je dois envoyer sont des bits correspondants à l'état des diodes des afficheurs. La variable à envoyer est donc un octect (8bits) contenant les états des leds d'une colonne.
J'aurais donc voulu savoir si quelqu'un pouvais me dire comment envoyer du binaire ou de l'hexa, soit en utilisant le composant MSCOM (ce qui me parait impossible, mais bon on sais jamais), soit en utilisant un API ou une DLL quelconque permettant l'envoie de ces 8 bits, ou une autre méthode ... La seule contrainte étant que la liaison doit se faire par RS232 (COM).J'espère que quelqu'un à la solution ...
En attendant ... merci

Matt_18

La prog c'est mon dada !

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
Salut
Si tu avais un peu lu les sources qui parlent de RS ou encore les multiples questions du forum sur MSComm à propos des envois autres que Ascii, tu saurais que :Un code ascii 1 byte 8 bits
Pour ranger 8 bits dans un entier (révise tes cours d'infos), il suffit d'élever 2 à la puissance du rang du bit :
Exemple : Pour activer les bits de rang 1, 3 et 7 d'un octet :
monByte = 2^(1-1) + 2^(3-1) + 2^(7-1)
Les -1 sont là car les bits se numérotent de 0 à 7 (et pas de 1 à 8)

Une fois que tu auras ton Byte, il suffira de l'envoyer dans le buffer de la RS, éventuellement sous forme Ascii :
Chaine_à_envoyer = Chr(monByte)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
13
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
7 juillet 2009

Merci beaucoup ...

La prog c'est mon dada !