cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 19 janv. 2009 à 00:23
Concernant l'envoi de données, ta technique est bonne.
Tu y gagnerait en efficacité en entrant tes codes héxa (ou décimaux puisque ce sont les mêmes) dans un tableau de Byte, et je pense que tu peux envoyer le tableau d'un seul coup :
MSComm1.Output = monTableauDeByte
ou
MSComm1.Output = monTableauDeByte()
A tester
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 19 janv. 2009 à 00:26
De plus, comme dit dans l'aide (que tu dois connaitre par coeur depuis le temps que je t'en parle), il semble qu'il faille envoyer une variable de type Variant dans un Output et pas directement les données.
Exemple http://forums.devx.com/archive/index.php/t-62183.html
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 17 janv. 2009 à 00:00
Salut
"je ne sait pas si c'est le tableau de gauche ou de droite que je doit envoyer"
bah c'est pas nous qui allons pouvoir te le dire !
et une fois affiché, on ne distingue pas de tableau gauche ou droite.
Et tu peux nous dire comment tu pratiques l'envoi ?
Dois-tu envoyer les chiffres ou les codes ?
Si tu dois envoyer un caractère, tu as trois possibilités :
- Envoyer le chiffre sous forme d'un texte
.Output "1"
- Envoyer le chiffre sous forme décimale (*)
.Output Chr(1)
- Envoyer le chiffre sous forme héxadécimale (*)
.Output Chr(Val("&h1"))
(*) valeurs entre 0 et 255 (0 à FF) maxi
Ces deux dernières méthodes sont identiques
Par contre, la première envoie le code ascii du caractère "1", pas le code ascii n° 1.
Alors à toi de savoir quoi envoyer.
Dans les deux dernières solutions, il te faudra rentrer ces valeurs dans un tableau de Byte puis les envoyer sur le port COM un a un, avec une boucle For-Next par exemple.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
NHenry
Messages postés15156Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 septembre 2024159 17 janv. 2009 à 22:30
Bonjour,
Comment tu as eu ces données ?
C'est pour communiquer avec quel équipement ?
Apparemment, tu as un début de trame avec un 0x01 "i" et une fin avec 0x03. Un CRC 16 sur les 4 derniers caractères, avec un séparateur "&&". Les données envoyées sont déjà de l'hexa apparemment.
Je ne pourrais pas t'en dire plus sans avoir plus d'info de ta part.
petiflamand
Messages postés674Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention26 mai 20131 17 janv. 2009 à 22:58
Salut ,
Les données sont envoyé dans le cadre de mon travaille , c' est un system informatique de station service qui communique avec un tls-2 de veeder-root un system de jaugeage de citerne, qui donne ce qui reste dans la cuve , la temperature, si il y a de l'eau ect......
J'ai placé aspycom entre notre pc et ce controleur de jauge et c'est leresultat de la communication.
Je doit encore tester sur site.
NHenry
Messages postés15156Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 septembre 2024159 18 janv. 2009 à 15:16
Bonjour,
Comprend-tu à quoi servent les 2 parties de ta capture ?
Ensuite, pour les ".", ça sert à signaler des caractère non imprimables, il faut faire, par exemple, Chr$(1) pour le caractère 0x01.
petiflamand
Messages postés674Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention26 mai 20131 18 janv. 2009 à 15:41
Re,
Voici ce que je fait
MSComm1.Output = Chr(Val("&H" & Tablo(i)))
Et tablo(i) est les caractere hexa qie je doit envoyer
Mais je doit tester demain dans une station
On verra demain
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 19 janv. 2009 à 00:19
Re
Mais pourquoi veux-tu renvoyer à la jauge une trame qu'elle ta envoyée ?
C'est ça que je n'arrive pas à comprendre.
Si tu dois mettre ton PC à la place du système, il faut envoyer la question, pas la réponse, puis écouter la réponse et la décrypter.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
petiflamand
Messages postés674Date d'inscriptionsamedi 31 mai 2003StatutMembreDernière intervention26 mai 20131 19 janv. 2009 à 06:33
RE,
Non je n'envoie pas la question au pc de la station,
ici a la maison je n'ai pas de controleur de jauge, seulement un simulateur de la société qui les vend et qui mes sert a les tester sur place.
Donc mon programme attend l'envoie de la question du simulateur , quand il a reçus la question le prog envoi vers le simu les données comme si c'était le controleur de jauge.
pc de la station = question --> controleur de jauge
controleur de jauge = réponse --> vers pc station
a la maisonsimulateur sur laptop pc station question vers mon pc(controleur de jauge)mon pc controleur de jauge envoi de la reponse --> laptop(simulateur pc)