Communication rs 232

Signaler
Messages postés
22
Date d'inscription
jeudi 29 juin 2006
Statut
Membre
Dernière intervention
13 juin 2007
-
Messages postés
22
Date d'inscription
jeudi 29 juin 2006
Statut
Membre
Dernière intervention
13 juin 2007
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
22
Date d'inscription
jeudi 29 juin 2006
Statut
Membre
Dernière intervention
13 juin 2007

il n'y a pas moyen de l'envoyer en une fois dans le style Chr$("&h7E01OA...") ?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
22
Date d'inscription
jeudi 29 juin 2006
Statut
Membre
Dernière intervention
13 juin 2007

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)
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
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 #
Messages postés
22
Date d'inscription
jeudi 29 juin 2006
Statut
Membre
Dernière intervention
13 juin 2007

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