URGENT pb d'affichage recption port com

cliclic1234 Messages postés 19 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 5 septembre 2005 - 27 mars 2005 à 21:49
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 28 mars 2005 à 04:40
je n'ariive pas afficher ce que je recois de mon port serie
la chaine que je recois ' 12120kg 02' est variable en fonction du poids

si je veut l'afficher dans un champ label il ne m'affiche que "g 02"
comment faire pour avoir l'integralite de ma chaine
ci dessous le code que j'utilise
Merci d'avance de votre aide

Private Sub MSComm1_OnComm()
Dim Tampon As String


Select Case MSComm1.CommEvent
Case comEvReceive
Tampon = (MSComm1.Input)
chaine = Tampon + MSComm1.Input
Call Traitement(Tampon) 'traitement données
Case comEvSend


Case comEvEOF
End Select


End Sub


Private Sub Traitement(chaine As String)



'cette procédure sert à traiter l’information reçue dans le tampon
Text2.SelStart = Len(Text2.Text)
Text2.SelText = chaine
Text1.Text = chaine
Label1.Caption = chaine

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 mars 2005 à 04:40
-1- Je ne sais pas ce que tu fais avec ton
Tampon = (MSComm1.Input)
chaine = Tampon + MSComm1.Input
Du coup, les données reçues apparaissent deux fois.
Les données sont vidées après l'utilisation de MSComm1.Input, donc le chaine = Tampon + MSComm1.Input ne sert à rien
... d'autant plus que tu ne t'en sers pas ensuite !

-2- Quand OnComm se déclenche, c'est que de nouvelles données viennent d'arriver.
Par contre, rien ne dit qu'il n'y en aura pas d'autre par la suite.
Donc, il faut mémoriser les infos qui arrivent au fur et à mesure (regarde dans l'aide le dimensionnement de variables en Static) et ne traiter ta chaine que lorsque tu es sûr d'avoir tout reçu (Timer de 2 sec ou détection comEvEOF si applicable)

-3- Ton code est très brouillon, tu ne déclares pas tes variables : le "chaine =" dans le MSComm1_OnComm ne sert strictement à rien.
Apprends à dimensionner tes variables en Public, en Private, ou en Dim dans tes Sub ... et tu comprendras quel devient leurs étendues (tout le projet, toute ta feuille ou seulement ta sub)
Pour t'obliger à déclarer toutes tes variables (ce que je te conseille pour éviter des bugs et prises de tête interminable), ajoute "Option Explicit" en tête de toutes tes pages de codes (voir menu Outils, Options, onglet Editeur, ligne "Déclaration des variables obligatoire")

-4- Il doit bien y avoir des sources sur vbfrance qui lisent des ports COM : charges-en qques unes et tu verras comment ils font

Vala
Jack
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Rejoignez-nous