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