Port serie / stack overflow

hetneo Messages postés 28 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 janvier 2007 - 22 janv. 2007 à 18:26
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 - 1 févr. 2007 à 16:35
Salut les gens !



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Bon, ais un petit (gros) soucis ac StackOverflowException. Voici mon pb :


Je reçois un grand nombre d’octets (plusieurs MO) que je lis 1 à 1 sur un port COM. Le nombre important de répétitions du déclenchement de l’évènement de réception sur le port série semble lever cette exception.



 




Comment faire ?


Il ne s’agit ni d’une boucle infinie, ni d’une récursivité et il faut à tt prix que je continue à lire mes données. Alors si qq’un à une petite idée elle serait vraiment la bienvenue…



 




Ps : pour la gestion des ports COM j’utilise le composant ‘Microsoft Communications Control, v6.0’.



 





 Merci...





 





 

2 réponses

bossun Messages postés 173 Date d'inscription lundi 3 mars 2003 Statut Membre Dernière intervention 15 décembre 2010 1
23 janv. 2007 à 11:49
Comment fais-tu  pour lire les données?? un bout de code?

pour lire les données d'un port série utilise le classe SerialPort du framework2 (si tu travailles avec le .NET2)

Bossun

P.S1  C'est mieux de prendre son pied que de se prendre la tête!

/F< body>
0
survcopt Messages postés 224 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 13 mai 2022 3
1 févr. 2007 à 16:35
Dans ma fonction datareceived j'ai ce bout de code

//vide le buffer de réception



int
dataInt = 0;


byte
DataByte = 0;


while
(serialPort1.BytesToRead != 0)
{
dataInt = serialPort1.ReadByte();//recupere octet par octet


DataByte = (

byte
)(dataInt);
ReceiveByte(DataByte);
}

tu peux aussi utiliser
serialPort1.ReadExisting qui vide le buffer en 1 seule fois
serialPort1.Read




www.survey-copter.com
0
Rejoignez-nous