Serial Port liest Buffer nicht ganz aus

Hallo paresy,

ich muß leider schon wieder lästig sein:

kann es sein, dass bei der Serial-Port-Instanz Daten im Buffer überbleiben weil dir irendwo ein Trigger zum Auslesen verloren geht? Ich habe folgendes Problem:
Meine im Haus verteilten Stationen senden immer zusammenhängende Pakete von 14 Byte. Die kommen hundertprozentig ohne Lücken (Habs mit einem Scope nachgeprüft). Im Debug-Fenster vom Serial-Port sieht das auch gut aus. Manchmal habe ich halt pro Paket 2 Einträge in der selben Sekunde. Das ist auch ok.
Aber öfters wird nur ein Teil des Paketes eingelesen. Der Rest verbleibt scheinbar im Buffer der Schnittstelle und wird erst nach einem neuerlichen Paketempfang(neuer Anreiz zum Auslesen) von der Instanz gelesen. Interessant ist dabei, dass wieder genau 14 Byte gelesen werden (die restlichen Byte vom alten Paket und ein paar vom neuen). Das geht so weiter, bis sich das System wieder fängt und dann läuft es normal.

Könnte es sein, wenn während des Auslesens des Schnittstellenbuffer neue Daten kommen, diese nicht mitausgelesen werden und im Buffer bleiben (oder so)?

Das ganze wäre ja nicht so schlimm, aber 5 Sekunden sind eine lange Zeit, wenn du das Licht ausschaltest und darauf wartest ob die Rückmeldung kommt dass es auch wirklich aus ist.

Ich habe im Anhang einen Abzug davon gemacht und die zusammenhängenden Paketteile immer farbig gleich markiert. Bitte beachte die Zeit zwischen den Paketen.

Gruß
Erich

Ich habe ein Update am 4.11 hochgeladen, die genau an dieser Routine änderungen beinhaltet. (http://www.ipsymcon.de/forum/48592-post34.html)

Du weißt nicht zufällig, ob das Problem vorher schon vorhanden was?

Ich habe dir mal die alte DLL angehägt. Passiert der Fehler damit auch?

paresy

DefaultIO.rar (198 KB)

Schönen Nachmittag paresy,

Du weißt nicht zufällig, ob das Problem vorher schon vorhanden was?

Ich habe dir mal die alte DLL angehägt. Passiert der Fehler damit auch?

Mit der alten DLL ist es definitiv OK. Habe mehrmals hin- und hergewechselt. Mit der alten ist es OK mit der neuen NOK.

Anbei ein Abzug, wie es bei der alten aussieht zum Vergleich.Paket wird meistens auf zwei Teile eingelesen. Immer unmittelbar hintereinander ohne Pause.

Gruß
Erich

PS: Ich werde mal meiner Frau zeigen, zu welcher Uhrzeit du deine Beiträge schreibst. Die meckert nämlich immer, dass ich so spät noch vor dem Blechtrottel sitze :smiley:

Habe etwas hochgeladen. Sollte nun funktionieren.

paresy

FUNKTIONIERT

War aber ganz schön verwirrt. Habe nicht damit gerechnet, dass du 2 Updates pro Tag schaffst:eek:. Habe update geladen, deinen Post gelesen, getestet( in der Meinung, das war im ersten Update drinnen), mich geärgert weil es nicht ging und erst später nochmal ein Update eingesaugt:o

Aber jetzt funktioniert es einwandfrei.

ein großes DANKE

Erich