Communication rs 232

bobbysv Messages postés 22 Date d'inscription jeudi 29 juin 2006 Statut Membre Dernière intervention 13 juin 2007 - 28 oct. 2006 à 18:31
bobbysv Messages postés 22 Date d'inscription jeudi 29 juin 2006 Statut Membre Dernière intervention 13 juin 2007 - 28 oct. 2006 à 20:54
Bonjour!


j'ai un petit soucis! je voudrais faire de la communication rs232 mais je n'arrive pas a faire ce que je veux.


j'ai un fichier excel contenant un 20aines de trames de type 7E.01.0A....
et je doit envoyer ces trame au travers de mon port rs 232 mais la fonction comm.output ne m'envoie pas cette info convenablement... elle l'interprete en ASCII ce qui fait qu'a l'arrivée, le module de reception n'arive pas a lire l'adresse de destination (si c'est a lui que s'adresse cette trame)
est-ce que quelqu'un aurai une idée ou existe-t-il une autre fonction de communication.

PS: j'effectu ce travail sous vb6
      ma seule autre alternative serai de faire du .NET et de refaire une DLL en C pour pouvoir utiliser en vb, mais ca m'embete de faire ca... encore du boulot pour se former.

merci des reponses

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 oct. 2006 à 18:37
Comment fais-tu pour envoyer ta trame ??????

Ca devrai etre du style comm.output = Chr$("&h7E") & Chr$("&h01") & Chr$("&H0A") & ........

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
bobbysv Messages postés 22 Date d'inscription jeudi 29 juin 2006 Statut Membre Dernière intervention 13 juin 2007
28 oct. 2006 à 19:45
il n'y a pas moyen de l'envoyer en une fois dans le style Chr$("&h7E01OA...") ?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 oct. 2006 à 20:16
Non, il faut que tu construise ta trame au format string.

Je ne sais pas comment sont faites tes trames mais tu peux etre faire une boucle en t'inspirant de ce code :

Dim strTrame As String
Dim element() As String

element = Split (TaLigneExcel,".")
strTrame = ""

For i= 0 to UBound (element)
strTrame = strTrame & Chr$(element(i))
next

comm.Output strTrame

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
bobbysv Messages postés 22 Date d'inscription jeudi 29 juin 2006 Statut Membre Dernière intervention 13 juin 2007
28 oct. 2006 à 20:33
element = Split (TaLigneExcel,".")

que vient faire le "." (a quoi sert-il?)
ce que tu entend par "TaLigneExcel" c'est la ligne 1 par exemple... et ca sous entend que chaque bits de ma trame doit etre dans une cellule excel de cette ligne
cad pour la ligne 1:  A1 =7E, B1=01, C1=0A,...

(dsl de poser tant de questions, je ne suis pas sur ma machine, et j'ai pas VB pour tester)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 oct. 2006 à 20:46
J'ai considéré qu'après avoir lu ta trame dans excel, tu l'avait dans la variable TaTrameExcel avec chaque octet est séparé par un "." (comme tu indiquais dans ton exemple). Evidement ce n'est qu'un exemple, et si ta trame n'est pas comme ça, moncode n'est plus bon.

Le Split(TaLigneExcel,".") permet de découper ta trame selon l'élément séparateur "." et de créer un tableau avec une case par élément.

Evidemant dans mon code, il n'y a pas la lecture de la trame dans Excel (je considère que c'est bon, ce n'est pas l'objet de la question). Mais on peut supposer chacune des trames est contenue dans une seule cellule (sous la forme donc "7E.01.0A...."). Mon code ne code qu'une trame, pour les 20 il faudra faire une boucle incluant la lecture, le codage et l'envoi de la trame.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
bobbysv Messages postés 22 Date d'inscription jeudi 29 juin 2006 Statut Membre Dernière intervention 13 juin 2007
28 oct. 2006 à 20:54
OK... en fait le split permet d'oter le "." et de ranger mes bits dans un tableau!
dans mon exemple, j'ai mis les points pour separer les bits. Dans la realité la trame est d'un seul tenant.
enfin, merci beaucoup je pense avoir compris le mecanisme.
Je branche mon matos demain et je teste le tout!
merci
0
Rejoignez-nous