Einzelnen Beitrag anzeigen

SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
313 Beiträge
 
Delphi 12 Athens
 
#4

AW: TComport - Access Violation beim wieder-öffnen

  Alt 17. Nov 2016, 10:37
Weil ich zeichenweise den Inhalt aus dem typenlosen Buffer nach Buf-Array kopiere.
Wenn ich es weglasse, bleibe ich auf der Stelle stehen und bekomme immer das selbe Zeichen.

Oder wie meinst du das?

Warum nicht einfach den Event OnRXChar und dann die Funktion Readstr nehmen? Dann kann man sich die ganze die Sache extrem vereinfachen.
Das einzige Problem ist, dass OnRXChar mehrfach feuert, wenn Daten kommen. Man muss also einen Puffer (string) z.B. als Formvariable mit den Teilstücken befüllen. Wenn das Endzeichen oder die Länge der Sendung bekannt ist, ist es auch kein Problem zu erkennen wann die Sendung fertig eingelesen ist;
Die Bytes, die eintreffen, haben kein spezielles Endzeichen.
Das Ende der Übermittlung ist ein CRC aus den zuvor eingetroffenen bytes.
Es kann aber auch sein, daß der Controller, der die Bytes sendet, spinnt und endlos unsinnige Daten liefert (dann muss man ihn stromlos setzen, um das zu beenden).


Was ich nicht verstehe ist (auch), wenn ich den Comport schließe, dann wird ja die "Datei" geschlossen, es werden auch Threads beendet und alles ist erstmal gut. Wenn ich den Comport wieder öffne, bekomme ich die Zugriffsverletzung, aber nur wenn ich zuvor Daten empfangen habe.
Kann es also sein, daß vom vorherigen Mal noch Daten herumgeistern und es deshalb knallt (wobei ich den Ort nicht finden kann)?

Die Komponente funktioniert an sich prima, bestimmt habe ich irgendwo Mist gebaut, aber ich finde es nicht
  Mit Zitat antworten Zitat