Habe eine Waage mit serieller Schnittstelle, die kontinuierlich die Wäge-Ergebnisse als CR-LF terminierten ASCII-String ausgibt über die serielle RS232 Schnittstelle.
Kann dies mit einem USB-Serial-Konverter unter Linux mit der SynaSer-Unit perfekt auslesen.
Nun muss ich aber (leider, seufz ) dies unter Windows 10 zum laufen bekommen. Ist für ein Unternehmen, und der Packtisch in der Versandabteilung hat eine Windows-10 Arbeitsstation.
Mit dem Hyperterminal (vom alten Windows XP - läuft auch unter Windows 10) sehe ich die Wäge-Ergebnisse. D.h. die Schnittstelle (gibt sich als COM3 aus) funktioniert.
Doch die SynaSer Funktionen versagen kläglich. Ich mache dies in einem Timer (alles getestet, von 250 bis 5000 ms):
Code: Alles auswählen
IF SerialPort.CanRead (50)
THEN Memo1.Lines.Add ('Gelesen: "' + SerialPort.RecvString (50) + '" RecvString ' + IntToStr (SerialPort.LastError) + ' ' + SerialPort.LastErrorDesc)
ELSE Memo1.Lines.Add ('keine Daten');
funktioniert unter Linux perfekt, Unter Windows-10 bekomme ich immer "Timeout", egal ob ich hier 50 ms oder 5000 ms (=5 sekunden) eingebe.
Ganz komisch: bei Werten über 100 hängt sich das ganze ...ding auf, und so alle 2-3 Minuten kommt "Timeout". Aber niemals "keine Daten", d.h. die Funktion CanRead liefert true, aber RecvString liefert nix oder hängt sich auf.
Hat jemand von Euch eine Idee? oder gibt es einen Workaround speziell für Windows ? Oder sollte ich eine andere Komponente verwenden, z.B. LazSerial ?
Vielen Dank für Eure Hilfe