2012-04-09 10 views
1

Mein Entwicklungsziel ist ein Linux-Computer mit zwei physischen seriellen Ports, die sich unter/dev/ttyS0 und/dev/ttyS1 befinden. Ich erwarte auch, dass/dev/ttyS2 und/dev/ttyS3 definiert werden.Ermitteln, dass ein serieller Port existiert, Linux C/C++

Die Verwendung von stty -f/dev/ttyS0 und S1 meldet die Konfiguration der zwei seriellen Schnittstellen und meldet etwas, das "nicht existiert" für S2 und S3.

Die Hardware-Designer sprechen davon, USB zu Serial-Ports auf der Hauptplatine zu bieten. Sie sind DB9-Anschlüsse auf der Außenseite und nur Schaltkreise - keine USB-Anschlüsse auf der Innenseite. Die Anzahl der USB-zu-Seriell-Verbindungen ist nicht garantiert und ich weiß genug, um "viele" anstelle von einem zu entwerfen.

Also, bei der Einrichtung meiner Port-Server-Daemon muss ich in der Lage zu bestimmen, welche ttyS und welche ttyUSB sind "real" und welche nicht. Wird es jemals placebierde ttyUSBs geben? Was wäre, wenn man "unplugged" wäre (sagen wir, es war tatsächlich ein echter USB-Koppler auf der Innenseite des PCs)?

Gibt es einen besseren Ansatz als popen() ing sty und seine Ausgabe zu untersuchen, um den Status der seriellen Ports zu bestimmen? Gibt es eine C API für stty?

Danke!

Antwort

Verwandte Themen