Hallo zusammen,
ich verwende in Qt 5.xx den Seriell Com Port zusammen mit einem DeLock
USB-Seriell Wandler auf Windows 7.
Da ich abstraktionsseitig eher von der Registerebene komme, bin ich
nicht ganz im klaren, wie mit COM-Port Treibern umzugehen ist; bzw. weiß
nicht mal, ob die einem Standard folgen, was ich aber vermute.
>Zur Sache:
Die Kette müsste ja sein UsbPort->Betriebsystem->Treiber->Applikation
Wann meldet ein USB-Seriell Wandler einer Applikation sinngemäß "Data
available"?
A) Immer dann, wenn etwas im Buffer des Treibers ist?
B) Immer dann wenn etwas im Buffer des Treibers ist, das mit ASCII NULL
abgeschlossen ist
C) Konfigurierbar
Versteht mich nicht falsch, meine Kommunikation läuft, aber ich würde
sie gerne optimieren.
viele Grüße!
AFAIK ist option A der default, ob es konfigurierbare Varianten gibt weiß ich nicht.
Der USB-Seriell-Wandler ist hier nicht relevant. Du programmierst eine serielle Schnittstelle. Daß die nicht mit einer 8250 am ISA-Bus aufgebaut ist, sondern in einem USB-Baustein enthalten ist, ist nicht weiter relevant, denn die Schnittstelle, die Du anfasst, ist die Schnittstelle, die das Betriebssystem (hier: Windows) Dir zur Verfügung stellt. Deiner Anwendung meldet nicht der USB-Adapter, sondern das Betriebssystem, daß Daten verfügbar sind. Und das ist unabhängig von der verwendeten Hardware, ob ISA-Bus mit 8250, ob PCI-Karte, ob USB-Seriell-Bridge oder ob Ethernet-Deviceserver, dank entsprechender Treiber werden alle auf die gleiche Art und Weise angesprochen. Stichwörter "Win32 serial port programming". QT wiederum dürfte eigene Abstraktionsmechanismen enthalten, um betriebssytemunabhängig Funktionen zur Verfügung zu stellen. Stichwörter "QT serial port programming".
USB-to-Serial bedeutet in der Regel, auf der Hardwareseite hast du ein UART, mit Rx, Tx, Handshake, und auf der PC Seite eine serielle Schnittstelle. Auf der PC Seite kannst du mit Openfile() und so oder mit einer Serialport library arbeiten. Ich empfehle Letzeres. Was dazwischen ist, ist nett zu wissen, aber nicht noetig zu wissen.
:
Bearbeitet durch User
Oh D. schrieb: > Auf der PC Seite kannst du mit Openfile() und so oder mit > einer Serialport library arbeiten. Das heisst aber CreateFile()^^ Und wenn das keine echte RS232 ist sondern USB/VCP, dann ist das RS, TS und so weiter auch egal.
Pit schrieb: > Das heisst aber CreateFile()^^ Das ist nicht wirklich relevant, OpenFile ist nur eine veraltete Alternative zu CreateFile, auch ohne die Störzeichen. Ist Deine Tastatur kaputt? > dann ist das RS, TS und so weiter auch egal. Was magst Du damit meinen? Handshakeleitungen? Woher kommt nur der Irrglaube, daß die bei USB-Seriell-Bridges nicht vorhanden wären?
Rufus Τ. F. schrieb: > Ist Deine Tastatur > kaputt? Ja, die ist schon uralt. Ich hab mich aber seit Jahren dran gewöhnt und bleib dabei. Rufus Τ. F. schrieb: > Was magst Du damit meinen? Handshakeleitungen? Woher kommt nur der > Irrglaube, daß die bei USB-Seriell-Bridges nicht vorhanden wären? Das sagt ja keiner. Allerdings sind die Leitungen eher altbacken. Wer sowas noch braucht, um seine Geräte anzusteuern, der nimmt eine echte RS232 Schnittstelle (siehe TO). Wer sich bereits (Schnittstellentechnisch) in der Modernen befindet und USB verwendet, der kann getrost auf die RS-, TS- und sonstwelche Leitungen verzichten.
Pit schrieb: > Allerdings sind die Leitungen eher altbacken. Befreit von Ahnung und Wissen schreibt sich so etwas am einfachsten.
>
Allerdings sind die Leitungen eher altbacken. Wer sowas noch braucht, um
seine Geräte anzusteuern, der nimmt eine echte RS232 Schnittstelle
(siehe TO).
Wer sich bereits (Schnittstellentechnisch) in der Modernen befindet und
USB verwendet, der kann getrost auf die RS-, TS- und sonstwelche
Leitungen verzichten.
USB To Serial ist eine richtge serielle Schnittstelle. Es gibt keine
Andere, mehr. Ob man die Handshakeleitungen verwendet, oder nicht ist
eine Sache des Geraetes auf der anderen Seite. Dieses kann aus irgend
einer Zeit stammen. man kann die Handshake Leitungen auch fuer anderes
wie Start-Stop verwenden.
Pit schrieb: > Wer sich bereits (Schnittstellentechnisch) in der Modernen befindet und > USB verwendet, der kann getrost auf die RS-, TS- und sonstwelche > Leitungen verzichten. Nö. Windoof kann ohne bei höheren Baudraten schon mal Daten verlieren, selbst wenn die Puffer im USB2Serial Chip hunderte Bytes groß sind. Man muss die CPU nur genügend auslasten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.