Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#13

AW: Tcomport on RXChar Problem

  Alt 13. Jun 2022, 10:52
Wenn garnichts geht, dann kannst du es auch selbst machen ... am Besten in einem Thread, falls zwischen zwei Empfängen zu viel Zeit vergeht und der Haupthtread dann immer wieder etwas hängt.


CreateFile+ReadFile, wobei man ReadFile+Overlapped auch im Hauptthread asynchron nutzen könnte (ohne hängen)
oder TFileStream, bzw. THandleStream+CreateFile und Stream.Read***
oder Assign+Read (das alte Pascalzeugs)
oder ...

und als Dateiname z.B. 'COM1' bis 'COM9'
so lange im Windows als Standard bereits die richtige Config (Baud, StopBits, Parität usw.) eingestellt ist, mußt du im Programm nichts weiter machen.
wenn doch nicht, dann MSDN-Library durchsuchenSetCommState nach dem CreateFile -> https://docs.microsoft.com/de-de/win...tions-resource


also im Thread die "Datei" (Gerät) öffnen
ein oder mehere Byte auslesen (read) ... es wird ohne Overlapped bestimmt gewartet, bis diese x Bytes da und gelesen sind (darum im Thread)
eventuell die Bytes in einer Variable (TBytes bzw. TArray<Byte>) zwischenspeichern
und dann via Synchronize oder Queue in den Haupthtead damit (oder wenn möglich auch direkt im Thread verarbeiten und das Ergebnis in den Hauptthread)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (13. Jun 2022 um 10:55 Uhr)
  Mit Zitat antworten Zitat