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
RS232 Abfrage
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: RS232 Abfrage
Haste schon mal "SerialPortTimeouts()" genutzt?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: RS232 Abfrage
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.
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.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
-
- Beiträge: 7
- Registriert: 07.01.2012 11:00
- Computerausstattung: min. 5 Stück
- Wohnort: zuhause
- Kontaktdaten:
Re: RS232 Abfrage
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
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