cliclic1234
Messages postés19Date d'inscriptionvendredi 18 mars 2005StatutMembreDernière intervention 5 septembre 2005
-
27 mars 2005 à 21:49
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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 linformation reçue dans le tampon
Text2.SelStart = Len(Text2.Text)
Text2.SelText = chaine
Text1.Text = chaine
Label1.Caption = chaine
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)