Einzelnen Beitrag anzeigen

Benutzerbild von christian.noeding
christian.noeding

Registriert seit: 26. Mai 2005
Ort: Knw.-Remsfeld
119 Beiträge
 
Delphi XE2 Professional
 
#4

Re: FIFO Puffer der COM-Ports macht Probleme

  Alt 28. Feb 2007, 18:21
Hallo und danke für die Antwort

Zitat:
Das der FIFO Puffer schuld ist, wage ich zu bezweifeln, eher wird das ein Seiteneffekt sein
Nun, nachdem ich den Puffer komplett deaktiviert hatte trat der Fehler nicht mehr auf. Ich sende die Daten wirklich sehr schnell hintereinander, sodass teilweise die Schnittstelle nicht hinterherkommen kann.

Zitat:
zuerst mal, verwendest du Hard/Softwareprotokoll?
Was meinst du genau damit? Ich verwende die Schnittstelle Unidirektional ohne Handshaking. Hardware-/ und Software-Flowcontrol sind beide aus, 8 Datenbits, 1 Stopbit, keine Parität bei 115,2kBaud.

Zitat:
Haste mal ein Fehlerlog erstellt?
Eigentlich sollten alle Fehler von MadExcept abgefangen werden, welches in mein Projekt eingebunden ist. Der Absturz ist hier wirklich als "Absturz" zu sehen, da die komplette Anwendung mit allen Fenstern schalgartig verschwindet (da ich das Fehlerprotokollieren von Microsoft ausgeschaltet habe, kommt keine "Problembericht senden" Mitteilung). Die Anwendung hat keine Möglichkeit auf irgendwas zu reagieren. Wie kann ich den Fehler in der IDE nachstellen? Ich kann ja leider nicht genau bestimmen, wo er auftritt, da die Senderoutinen 99% der Zeit gut funktionieren.

Zitat:
die Komponente verwendet ja vermutlich Thread, ist bei dir alles Threadsafe?
Die Komponenten verwendet denke ich keine Threads. Jedenfalls steht im Sourcecode des TComport-Treibers non multithreaded serial I/O. Habe auch sonst keinen Hinweis auf Threads festgestellt. Meine Anwendung nutzt auf jedenfall einige Threads, jedoch sollten diese nicht für den Absturz verantwortlich sein - habe versucht darauf zu achten, dass die Threads sich nicht beißen und Daten schön in globale Variablen kommen.


Das Problem ist aber nachweislich behoben, wenn der FIFO-Puffer deaktiviert ist, also würde mir als Workaround da eine Detektierung des FIFO-Status weiterhelfen.


Aber vielleicht fällt dir ja noch was ein
Danke schonmal - ciao!
Christian Nöding
  Mit Zitat antworten Zitat