Forum: Programmieren allgemein
Delphi
by himitsu,
13. Jun 2022
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...
Forum: Programmieren allgemein
Delphi
by himitsu,
10. Jun 2022
macht TComPort auch nicht ... es liefert garkeine Zeichen. (es sagt, gerade war was reingekommen und x Zeichen sind aktuell im Puffer)
OnRxChar liefert quasi 1 bis x Zeichen, je nach dem, wieviel bereits im Buffer gelandet ist und noch nicht abgeholt wurde, z.B. mit ReadStr.
Forum: Programmieren allgemein
Delphi
by himitsu,
10. Jun 2022
Du brauchst so oder so eine Ende-Erkennung, bzw. ob es (mindestens) genug Daten sind.
erstmal irgendwie alles mitschneiden
(Sender as TComPort).ReadStr(Received, Count);
FResponse := FResponse + Received;
oder eben Binär als ByteArray oder Stream lesen+speichern
bezüglich des Timers mußt du ihn im Event beenden und neu starten, damit die Zeit erst nach dem letzten Empfang, im...
Forum: Programmieren allgemein
Delphi
by himitsu,
10. Jun 2022
Warum nicht die Daten auslesen, merken und wenn genug verarbeiten? (siehe #3)
Kommt das Event in einem Thread an? (glaub schon)
wenn ja, dann TThread.Synchronize oder besser TThread.Queue