Seite 1 von 1

RS232 Abfrage

Verfasst: 12.07.2012 20:36
von svenulm31
Hallo zusammen,
ich hab ein kleines Problem mit der RS 232 Abfrage. Am 232 Anschluss sitzt eine Maschiene die auf Anfrage mit unterschiedlich langen Antworten reagiert.
Mit Delay (4000); warten bis Daten anstehen 40000 funktioniert es fast immer nur wenn die Maschine mehr Daten Überträgt fehlt mir der Rest.
Die Warteschleife weiter erhöhen wäre möglich aber das muss besser laufen.
Ich möchte die Schnittstelle abfragen ob Daten rein kommen und wenn 2 sec. lang nichts auf RX passiert kann der cash ausgelesen und gespeichert werden.
Bislang hab ich aber nichts gefunden wie ich RX abfragen kann. Die Übertragung erfolgt ohne Flussteuerung. 8N1 @ 19200
Habt Ihr eine Idee ?
Gruß Sven

Re: RS232 Abfrage

Verfasst: 12.07.2012 20:53
von ts-soft
Haste schon mal "SerialPortTimeouts()" genutzt?

Re: RS232 Abfrage

Verfasst: 12.07.2012 22:29
von HeX0R
Mach einfach einen Timer, der alle 2 Sekunden via AvailableSerialPortInput() überprüft, ob Daten anstehen.
Die Anzahl, die die Funktion zurückgibt dann jeweils auslesen und in einen großen Puffer schreiben.
So lange, bis AvailableSerialPortInput() = 0 zurück gibt und dann deinen Puffer auswerten.

Re: RS232 Abfrage

Verfasst: 14.07.2012 08:37
von svenulm31
Ah ... Danke schon mal !
mit Timeout wird das nix. Aber Hexor Vorschlag mit nem Timer die die Puffergröße abzufragen ist goldig.
Also einfach alle 2 sec. die AvailableSerialPortInput abfragen und vergleichen mit dem letzten Wert. Wenn sich nicht ändert Puffer auslesen leeren und nächste Anfrage los schicken.

Danke Gruß Sven