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 : Probléme avec DoEvents [ Archives Visual Basic / J'AI BESOIN D'AIDE !!!! :) ] (lbch1974)

jeudi 26 janvier 2006 à 11:02:09 | Probléme avec DoEvents

lbch1974

Salut
   Merci d'avance pour vos aides. J'est réalisé un programme en visual basic 6.0 qui reçoit les données a travers le com1 et le com2 pour cela j'est travaillé avec la procédure d'évenement  OnComm() du contrôle OnComm qui ce déclanche automatiquement des que le port série (Com1 ou Com2) reçoit des données. a l'intérieur de cette procédure j'est utilisé le syntaxe suivant : 
Do
          DoEvents
          tampon_ptb220 = tampon_ptb220 & mscPTB220.Input
 Loop Until InStr(tampon_ptb220, Chr$(13) & Chr$(10)) 
 A l'execution du programme et aprés quelque minute il envoi le message d'erreur suivant "Erreur d'execution 28 espace de pile insuffisant"
et quand je fait le débogage il me signale que l'erreur et au niveau du syntaxe DoEvents . Sachant que lorsque je met DoEvents en commentaire le SE se plante.
Merci

jeudi 26 janvier 2006 à 11:11:04 | Re : Probléme avec DoEvents

econs

Administrateur CodeS-SourceS


C'est certainement ta variable tampon_ptb220 qui explose. Elle doit contenir trop d'éléments.
tampon_ptb220 prend trop de mémoire, et au moment où DoEvents la sollicite, c'est la goutte qui fait déborder le vase.
Mais ton problème doit bien se situer sur ta boucle Do ... Loop.
Soit elle ne s'arrête jamais, soit il y a trop d'input avant de recevoir le caractère de fin.
1ère possibilité à privilégier.




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.

jeudi 26 janvier 2006 à 11:23:36 | Re : Probléme avec DoEvents

perathoner

Hello.

Elle est de quel type ta variable tampon_ptb220 ???

Pourquoi ne met tu pas un tableau d'octets à la place ??? (ex : Dim toto() as Byte)

J'imagine que t'es données reçu sur des COM1 et COM2 ont un protocole... ex protocole Modbus... donc t'es données sont encapsulées... suivant une trame que toi tu décode par la suite..pour que t'es données ais un sens. Donc en fonction de ton protocol tu devrais faire n tableau d'octets ou d'autres chose !!! je ne connais pas ton projet... à toi de voir..

@+



jeudi 26 janvier 2006 à 11:31:58 | Re : Probléme avec DoEvents

perathoner

Re..

Ou bien le pb vient du fait que ta boucle est infinie... c'est à dire que ta condition de stop n'arrive jamais...???
Moi perso j'ai eu plusieurs fois ce message et à chaque fois c't un pb de boucle infini...voilà.

@+

jeudi 26 janvier 2006 à 11:49:02 | Re : Probléme avec DoEvents

lbch1974

Merci
Mon variable tampon_ptb220 est de type string sachant qu' a l'execution du programme il ya récéption des données et le programme le traite et l'affiche dans un TextBox . Mais le message d'erreur se manifeste aprés quelque minute


jeudi 26 janvier 2006 à 12:06:09 | Re : Probléme avec DoEvents

acecel

Oui car la condition pour sortir de la boucle n'est jamais vérifiée, donc ta variable Tampon se remplit jusqu'à saturation.
De plus ta boucle fait appel sans cesse à la fonction .input de ta variable mscPTB220, et ce de manière asynchrone, c'est à dire qu'il n'attends pas que l'execution de cette fonction soit finie avant de continuer la procédure, et donc il l'appelle sans cesse, jusqu'à ce qu'il y ait trop d'appels dans la pile mémoire, et là ca plante.

Enfin je croit




jeudi 26 janvier 2006 à 12:18:44 | Re : Probléme avec DoEvents

perathoner

Re.

L'idée à mon sens, s'est qu'il faudrait que tu détermine une procédure pour déterminer quand dois tu lire ton buffer de réception, et quand ne dois tu pas lire.
ex : On part du principe que ton buufer de réception est vide.
      Quand tu vois qu'il y a des données qui viennent d'arriver, tu ne fais rien et tu attend qu'il n'y ai plus de mouvement pour aller les lire.
       Là tu regarde le nombre d'octets que tu as reçu. En fonction de ce nombre tu dimmensionne un tableau d'octets. Dans lequel tu stocke ta trame.
    Puis dans une boucle, tu décode toute ta trame...

Je sais pas si ça t'aide..??


jeudi 26 janvier 2006 à 12:30:06 | Re : Probléme avec DoEvents

lbch1974

Merci Monsieur perathoner mais je vous signale que la boucle ne s'execute pas à l'infini car sinom le prgramme ne va pas afficher la valeur suivante qui est différente de la valeur précédente.
 

jeudi 26 janvier 2006 à 13:18:57 | Re : Probléme avec DoEvents

econs

Administrateur CodeS-SourceS

"Et pourtant elle tourne" ... à l'infini

DoEvents n'a jamais fait planter quoi que ce soit. Ton message d'erreur provient bien de la pile. acecel t'a mis sur la voie dans un précédent message.

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.

jeudi 26 janvier 2006 à 13:42:53 | Re : Probléme avec DoEvents

acecel

Au lieu d'utiliser une boucle, essaye plutôt d'utiliser un timer, en définissant un intervalle qui s'accorde bien avec la vitesse de réception des données sur ton port COM.
Dès que le programme ne recoit plus de donnée, affiche la variable Tampon à l'ecran, et réinitialise là.


Car à mon avis, la boucle est "trop rapide" pour recupérer les informations sur le port COM, lui n'arrive plus à suivre, la pile mémoire se sature, et donc ca plante.





1 2

Cette discussion est classé dans : erreur, doevents, probléme, tampon, ptb220


Répondre à ce message

Sujets en rapport avec ce message

Probléme d'empaquetage et surtout de déploiement [ par energiez ] Bonjour!Tout d'abord merci a ceux qui m'aideront.J'ai créer un petit logiciel intégrant une base de données gérée grace une DAO (microsoft DAO 2.R/3.5 recordset probléme [ par philo71 ] Bonjour,je vous expose rapidement ma config, je fait une appli en vb 6 , avec sql serveur.Les requétes sont effectuées a tranvers un adodc, mon record Probléme avec les ImageList [.net] [ par Charles Racaud ] Bonjour, Problème étrange avec VB.net 2003 Tout allait bien dan Erreur 32765 [ par Yaoel ] Bonjour, j'ai une erreur quand j'ouvre un COMMON DIALOG : ( Info d'erreur : 32765 la fonction commune de dialogue a échoué au cours d'initialisation. Probléme avec Dialogue.ShowFont [ par electroremy ] Bonjour à tous !Quand je lance Dialogue.ShowFont, j'obtiens une erreur comme quoi aucune police n'est installée sur mon ordi puis un message avec un n MSDN Probléme d'affichage [ par TomIlliev ] Bonjour à Tous,J'avais demandé il y a 10 jours environ où trouver la MSDN en français.Mortalino m'a donné un adresse je l'ai téléchargée, est installé Pb avec Dégradé d'une form en vb6 [ par EXCLUSIF ] Bonjour à tous,Je chercher à faire un dégradé sur le fond de ma form principale et j'ai trouvé ce code qui me semble idéal vu la note et les commentai pb erreur 70 : permission refusée [ par taj88 ] Bonjour, voilà comme le titre l'indique j'ai un petit pb d' erreur 70ce message est mis sur la ligneSub lancer()UserForm1.CommandButton1_ClickEnd sub [Debutant] Erreur 424 [ par zenzolarticho ] Bonjour a tous, voila je suis debutant en vba, et on m'a aidé a faire un code pour réaliser ce dont j'ai besoin:Je dois comparer 2 champs qui ont des Impossible De Verrouiller tous les enregistrements Erreur 3254 [ par GigaCool ] J'ai le message suivant : " ODBC : Impossible De Verrouiller tous les enregistrements ( Erreur 3254 )" lorsque j'essaye de créer une requ^te sur une t


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,281 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é.