Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Martin Eckel <martin.eckel@xxxxxxxxxxx>
- Date: Sun, 23 Aug 2009 13:24:11 +0200
Peter Götz schrieb:
"So 90.0000" hört sich aber nicht nach einer wirklich
exakt definierten Datenmenge an, die im Zusammenhang
Ich habs halt nicht im Kopf, die Anzahl ist auf jeden Fall immer gleich
... und genau das dürfte die Ursache für Dein Problem
sein. Polling auf den Datenpuffer des SerialPort-
Objektes ist eher ein Lotteriespiel.
Warum? Wenn der Buffer groß genug ist, um ALLE Daten aufzunehmen, darf doch auch ein Polling in keinem Fall schiefgehen.
Vor allem nicht in Abhängigkeit der Daten (und dabei bleibe ich).
.BaudRate3000000 (nicht wundern, ist ein spezieller USB/Seriell
Adapter)
Was ist das denn konkret für ein Adapter (Hersteller/Typ)?
Je nach Leitungslänge und Leitungsgüte dürften dabei
mit hoher Wahrscheinlichkeit reichlich Datenübertraguns-
fehler anfallen.
Die Länge der seriellen Datenleitungen beträgt nur wenige mm, vom USB/Seriell Wandler zum Microcontroller.
Es könnte tatsächlich sein, daß in Abhängigkeit der Daten hier Übertragungsfehler auftreten (ich hab mal so eine Sauerrei gehabt, das bei einem 5 Meter USB-Kabel die Übertragung komplett hängen blieb, wenn die Daten alle um Null waren). Ich kann gerne mal die Datenrate senken und vergleichen, das wäre tatsächlich noch eine Idee.
Dennoch bekomme ich über API immer die richtige Anzahl an Daten (und dabei bleibe ich auch).
Warum arbeitest Du nicht mit einer für die V24 / RS232
angepassten, deutlich niedrigeren Übertragungsgeschwindigkeit?
Deine Datenmenge von ca. 90.000 Byte ist ja nicht wirklich
sehr gross.
Es können später auch noch mehr Daten werden. Auf 1500000 müßte ich aber gehen können.
Was alles nichts daran ändert, daß irgendwo ein Unterschied
zwischen NET und API ist.
Ich denke mal, Du vergleichst da Äpfel mit Birnen.
Warum?
Fakt ist: Mit NET-Handling gehen unter bestimmten Umständen Daten verloren, mit anderen Daten passiert das nicht.
Fakt ist: Mit API-Handling kommen immer alle Daten an.
Da bleibt bei mir immer noch ein sehr großes Fragezeichen.
In jedem Fall würde ich Dir dringend empfehlen, die für das
Serialport-Objekt vorgesehene Ereignissteuerung via
DataReceived zu nutzen.
Kann ich gerne mal versuchen. Und ich werde mir einen Serial-Port-Sniffer installieren.
Gruß,
Martin
.
- Follow-Ups:
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Joachim Fuchs
- Re: Problem mit serieller Schnittstelle - Datenverlust
- References:
- Problem mit serieller Schnittstelle - Datenverlust
- From: Martin Eckel
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Armin Zingler
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Martin Eckel
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Peter Götz
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Martin Eckel
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Peter Götz
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Martin Eckel
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Peter Götz
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Martin Eckel
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Peter Götz
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Martin Eckel
- Re: Problem mit serieller Schnittstelle - Datenverlust
- From: Peter Götz
- Problem mit serieller Schnittstelle - Datenverlust
- Prev by Date: COM-Klassenfactory Fehler 80040154
- Next by Date: Re: Problem mit serieller Schnittstelle - Datenverlust
- Previous by thread: Re: Problem mit serieller Schnittstelle - Datenverlust
- Next by thread: Re: Problem mit serieller Schnittstelle - Datenverlust
- Index(es):
Relevant Pages
|