AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi FIFO Puffer der COM-Ports macht Probleme
Thema durchsuchen
Ansicht
Themen-Optionen

FIFO Puffer der COM-Ports macht Probleme

Ein Thema von christian.noeding · begonnen am 21. Feb 2007 · letzter Beitrag vom 28. Feb 2007
 
Benutzerbild von christian.noeding
christian.noeding

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

FIFO Puffer der COM-Ports macht Probleme

  Alt 21. Feb 2007, 19:25
Hallo liebe Delphi-Gemeinde,

jetzt habe ich nach etlichen Monaten wieder mal ein Problem, bei dem ich leider keine eigene Lösung finde und das einen Eintrag hier im Forum rechtfertigt . Ich bin immer noch (unter anderem) dabei an meinem PC_DIMMER Projekt zu programmieren, was bislang auch sehr reife Früchte trägt. <Werbung> Ich bin mittlerweile so weit, dass das Programm viele Funktionen aus dem professionellen Lichttechnik-Bereich beherrscht (Bühnenansicht, Musikgetriggerte Showabläufe, Pluginstruktur, etc.). http://www.pcdimmer.de </Werbung>

Problembeschreibung: Nun habe ich ein Hardwareproblem mit der seriellen Schnittstelle. Ich gebe meine Daten binär über den Comport aus und nutze dafür die Comport-Komponente von Marco Cocco (wird hier im Forum öfters verwendet). Die Daten werden mit 115,2 kBaud gesendet und es häufen sich sehr viele Daten an, da die Kanalwerte der Scheinwerfer z.T. sehr häufig aktualisiert werden. Jetzt habe ich bei einem Stresstest (viele schnelle Lauflichter parallel, etliche Kanalwertänderungen nacheinander) festgestellt, dass bei aktiviertem FIFO-Puffer der COM-Ports (egal ob intern oder per USB-2-RS232-Adapter) mein Programm nach ca. 10-20 Minuten abstürzt. Nach ewigem Fehlersuchen habe ich dann mal den FIFO-Puffer verzweifelt ausgeschaltet und nun läuft alles problemlos etliche Stunden ohne Absturz.

Endlich meine Frage:
Wie kann ich den FIFO-Puffer automatisch ausschalten, oder wenigsten Überprüfen, ob er ausgeschaltet ist und ggf. eine Warnmeldung ausgeben? Ich habe mal gesucht, aber bin hier im Forum auf nichts gestoßen und Google gibt auch nur darüber Infos, dass der FIFO-Puffer bei manchen prof. Messgeräten der Elektronik Probleme machen kann (schätze also gleiches Problem wie bei mir). Es werden wie gesagt sehr schnell viele Datenpakete gesendet (6 Bytes pro Wertänderung. Es wurden beim Test ca. 40 Kanäle geändert. Pro Sekunde passiert das ca. 4 bis 10 Mal, was irgendwas um die 10 Änderungen/s *40 Kanäle *6 Bytes *8 Bit=19200 Bit/s bedeutet. Dazu dann die Start-/Stopbits des RS232-Protokolls und dann kommt der FIFO-Puffer vermutlich nicht mehr mit -> Folge ist wahrscheinlich eine Art Zugriffsverletzung)

Ich nutze Delphi 7 und etliche Komponenten (Indy, Bass, etc.). Die Comportfunktionen sind jedoch in einem externen Plugin ausgelagert.


Zweite Frage (eher nebensächlich):
Mein Programm sucht automatisch freie Comports und wählt diese aus. Gibt es eine Möglichkeit die internen Modems von dieser Suche/Aktivierung auszuschließen? Vor allem bei Laptops mit internem Soft-Modem stürzt mein Programm nämlich immer ab, wenn der Comport des Modems ausgewählt wird (Herstellerunabhängiges Problem). Der Fehler tritt nur beim Beenden des Programmes auf.


Das Projekt ist Open-Source, sonst würde ich solche Fragen hier wahrscheinlich nicht stellen - wäre nett, wenn mir jemand unter die Arme greift


Besten Dank,
Christian!


PS (auch nebensächlich und zudem Off-Topic): falls jemand ein paar Delphi-Funktionen für ein Darstellen von Wavedaten über die BASS-DLL (oder auch anders) hat, wird herzlich um Hilfe gebeten. Ich habe zwar eine Wave-Darstellung, jedoch wird die Auflösung beim hineinzoomen nicht angepasst, sodass ich nur die Darstellung auseinanderziehe und Lücken bekomme.
Also aus: .|...||..|... wird . | . . . | | . . | . . .
Christian Nöding
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz