COM port control signals

20/01/2012 - 00:04 von Jakob Hirsch | Report spam
Hallo zusammen,

für ein privates Projekt brauche ich ein paar digitale Eingànge, wofür
ich einfach die Kontroll-Leitungen des COM-Ports nutzen wollte (CTS,
DSR, DCD, RI). Allerdings kann ich offenbar nur den aktuellen Status mit
ioctl() pollen, Mechanismen wie select() gibt es dafür wohl nicht(*).
Hab ich da was übersehen oder ist das tatsàchlich so?


Grüße
Jakob


(*) Evt. ist das auch einfach eine Hardware-Beschrànkung, die sich in
der Software fortsetzt: Wenn bei Änderungen von DTR etc. kein Interrupt
erzeugt wird, bekommt der Kernel das garnicht mit und kann
dementsprechend auch niemand darüber benachrichtigen.
 

Lesen sie die antworten

#1 Anonym
20/01/2012 - 10:36 | Warnen spam
On 01/20/2012 12:04 AM, Jakob Hirsch wrote:
Hallo zusammen,

für ein privates Projekt brauche ich ein paar digitale Eingànge, wofür
ich einfach die Kontroll-Leitungen des COM-Ports nutzen wollte (CTS,
DSR, DCD, RI). Allerdings kann ich offenbar nur den aktuellen Status mit
ioctl() pollen, Mechanismen wie select() gibt es dafür wohl nicht(*).
Hab ich da was übersehen oder ist das tatsàchlich so?




Ich frage mich gerade, wieso man für die genannten Steuerleitungen so
etwas wie select() anbieten sollte.

Sofern ich das richtig sehe, reden wir hier von den Flußkontrollsignalen
einer seriellen Schnittstelle. Diese werden, sofern überhaupt, von den
Schnittstellenbausteinen verarbeitet und sind dem Betriebssystem und
aufliegenden Schichten völligegal. Ich finde es schon bemerkenswert, daß
man darauf überhaupt mit ioctl() zugreifen kann, abgesehen vielleicht
noch von RI. Aber der Rest? Das möchte man doch eigentlich der Hardware
überlassen.

Ähnliche fragen