Xman_fr
Messages postés39Date d'inscriptionmercredi 25 mai 2005StatutMembreDernière intervention14 septembre 2007
-
5 juil. 2006 à 12:25
Xman_fr
Messages postés39Date d'inscriptionmercredi 25 mai 2005StatutMembreDernière intervention14 septembre 2007
-
11 juil. 2006 à 11:25
je suis entrain de developer un programme pour capturer un signale a partir d'un port série .
j'ai utiliser MSCOMM mano je suis entrain de savoir la trame d'envoie
qui peux m'expliquer cette partie svp :
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
les caractères de communication indique (entre<>) représentent les codes ASCII correspodants. dans certains cas , le code est écrit en format hexadécimal (format 0x...). les messages courts de demande et de réponse sont representés sous format ASCII et hexadécimale.
pour les caractères spéciaux, la liste est la suivante :
représentation valeur héxadicimale
<NULL>0x00
<SOH>0x01
<CR>0x0D
<LF>0x0A
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
qui peux m'éxplique cette partie svp
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 juil. 2006 à 20:20
Salut
Le format des données n'est qu'une histoire de représentation.Que tu envoies/reçoives un <NULL> Chr$(0) Code ascii 0 = &h0 ou un "A" = Chr$(65) = Code ascii 65 = &h41, de toute façon, c'est un caratcère.
Hexa = Hex(Byte)
Byte = Val("&h" & Hexa)
Caractère = Chr(Byte)
Byte = Asc(Caractère)
Tout ceci représente la même chose.
Quelquefois, ce Byte (0 à 255) représente une série de 16 Bit (0 ou 1) et chaque Bit a une signification dans le dialogue.
Utilise les masques numériques (And Or) pour retrouver l'état d'un Bit ou les fonctions mathématiques (2^n où n est le n° du Bit de 0 à 15) pour fabriquer un Byte.
Regarde parmi les sources de conversion de "base" (genre calculette) pour appronfondir.
Ce qu'il faut que tu trouves, c'est la structure de la trame que tu lis. Elle dépend du protocole utilisé.
Il n'y a que toi qui puisse le savoir. Voir documentation de l'appareil avec lequel tu dialogues.
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'accro
Xman_fr
Messages postés39Date d'inscriptionmercredi 25 mai 2005StatutMembreDernière intervention14 septembre 2007 6 juil. 2006 à 13:42
Merci
j'ai ça dans la documentation :
Message envoyé par l'ordinateur:
<SOH><00h><00h><CR><LF>
Message envouyé par léquipement
<SOH>
<TARE><NET><STAT><CKSM><CR><LF>
mais l'orseque je j'ai tapper dans le programme :
mscomm1.Output =<SOH><00h><00h><CR><LF>
j'ai obtenu aucun evénement dans MScomm1
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 7 juil. 2006 à 13:27
Re
mscomm1.Output =<SOH><00h><00h><CR><LF>
n'est pas correct, VB6 n'a pas pu l'accepter en temps quye syntaxe.
Soit il manque des guillemets, soit tu as envoyé des Bytes
Ca devrait ressembler à ça :
mscomm1.Output = Chr$(1) & Chr$(0) & Chr$(0) & Chr$(13) & Chr$(10)
En ce qui concerne la réponse, tu recevras une chaine dont chaque caractère correspond aux items que tu listes :
<SOH> 1
Byte représentant la masse brute, de 0 à 255
<TARE> Byte représentant la Tare, de 0 à 255
<NET> Byte représentant la masse Net, de 0 à 255
<STAT> Aucune idée, peut-être "Status" | l'état de ta balance
<CKSM> Byte représentant le CheckSum des données qui viennent d'être envoyée
<CR> 13
<LF> 10
Pour dissossier chaque Byte, il suffit de faire une boucle For-Next et lire chaque Byte|Caratère
En général, un Checksum est un XOR de tous les bytes précédents
C'est une info qu'envoie la balance.
Il faudrait que tu fasses aussi un calcul de Checksum à la réception.
Si celui que tu as calculé et celui que tu as reçu sont identiques, c'est que la qualité des signaux est correcte
Sinon, il a pu y avoir un parasite qui a faussé les valeurs transmises.
Tu peux donc ne pas en tenir compte, mais dans ce cas, tu risques de récupérer des valeurs farfelues
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'accro
Xman_fr
Messages postés39Date d'inscriptionmercredi 25 mai 2005StatutMembreDernière intervention14 septembre 2007 7 juil. 2006 à 17:06
mais comment je peux savoir que
<SOH> = chr$(1)
<00h> = chr$(0)
<CR> = chr$(0)
<LF> = chr$(0)
si il y a un cours pour ça d'une par et d'autre par je veux savoir la valeur de <01h> svp et Merci beaucoup
Xman_fr
Messages postés39Date d'inscriptionmercredi 25 mai 2005StatutMembreDernière intervention14 septembre 2007 11 juil. 2006 à 11:25
et j'ai trouver que dans le Cyber (apparaeil avec laquelle faire laconnecion) il y a plusieur protocole de communication .
il y a un protocole simple et prot.P1 et prot.t1 et Eplo3 et Eplo etendu .
quell'est le protocole que je vais l'utiliser ?
car pour chaque protocole il y a un trame speciale pour la communicationavec l'ordinteur.