Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : rs232 [ Windows / ActiveX / COM ] (Xman_fr)

mercredi 5 juillet 2006 à 12:25:32 | rs232

Xman_fr

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

mercredi 5 juillet 2006 à 20:20:56 | Re : rs232

jack

Administrateur CodeS-SourceS
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

jeudi 6 juillet 2006 à 13:42:00 | Re : rs232

Xman_fr

 Merci
j'ai ça dans la documentation :
Message envoyé par l'ordinateur:
<SOH><00h><00h><CR><LF>
Message envouyé par léquipement
<SOH><BRUTE><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



vendredi 7 juillet 2006 à 13:27:56 | Re : rs232

jack

Administrateur CodeS-SourceS
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
<BRUTE>   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

vendredi 7 juillet 2006 à 13:29:32 | Re : rs232

jack

Administrateur CodeS-SourceS
Par exemple, pour la donnée <BRUTE>, si tu reçois la lettre A majuscule, la valeur est l'ASCII de "A" = 65

vendredi 7 juillet 2006 à 17:06:05 | Re : rs232

Xman_fr

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


mardi 11 juillet 2006 à 11:25:16 | Re : rs232

Xman_fr

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.



Cette discussion est classé dans : format, rs232, caractères, partie, entrain


Répondre à ce message

Sujets en rapport avec ce message

Lecture de caractères via RS232 [ par gounit ] Bonjour,Je cherche un moyen de pouvoir lire et de stocker dans une variable un caractère lu. En ce moment je travaille avec un activeX de National Ins Format d'écriture: a quoi servent les caractères & et $ pour une variable ? [ par fransoze ] Traintement d'une chaîne de caractères [ par gezy ] Hello,Alors c'est pas compliqué.Déjà je suis sous VB 2005 Express.J'ai un petit programme qui me permet de lister les fichiers d'un répértoire dans un copier une partie d'un texte [ par stuntman_91 ] salut!Alors voilà je vous explique mon problème:j'ai une chaine de caractères dont je veux copier uniquement la partie comprise entre 2 mots définis.D Limiter le nombre de caractères dans un Boite de Texte [ par chouchou270403 ] Bonjour à tous, voici mon problème. Je cherche à limiter le nombre de caractère que l'on peut encoder dans une boîte de texte ! En gros j'ai un masque [VBS] Date et Heure (format) [ par parker13 ] Bonjour, Actuellement pour obtenir la date et l'heure j'utilise la commande "NOW". Exemple de résultat : 06/03/2007 09:29:53 Autrement dit, le format datagridview format numérique [ par DJMCG ] Bonjour,Après moultes recherches, je viens solliciter votre aide et je doit bien avouer que j'ai posé cette question a bien des endroit sans succès a Porbleme de caractères avec Print dans fichier (access) [ par Daminator ] Bonjour, j'ai un petit problème avec un script vba pour accessJe créer des pages html suivant une table accessvoici le champ que je dois (entre autres Combobox : trier des dates [ par Sympa74 ] Bonjour, Je dois mettre des dates dans un combobox et je veux que les dates soient affichées dans l'ordre décroissant, c'est à dire la date la plus ré Caractères spéciaux [ par jacques13 ] Bonjour,J'aimerais présenter des résultats imprimés sur une feuille dans un cadre.Je souhaiterais ne pas dessiner ce cadre avec des Printer.Line... ma


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.