Forum: PC-Programmierung Status der seriellen Schnittstelle auslesen in Linux


von Florian S. (fuxreid)


Lesenswert?

Hallo Leute,

ich brauche Eure Hilfe!

Programmiersprache ist c++, OS: Ubuntu 11.10, Programmierumbegung: 
Eclipse 3.7.0

Ich möchte Informationen, die über die serielle Schnittstelle kommen 
(immer 9 Byte lang) auslesen, was auch super klappt:

char buffer[9];
ifstream serialPort;
serialPort.close();
serialPort.open("/dev/ttyS1", ios::in);
serialPort.getline(buffer, 9);

Weiter möchte ich feststellen, wie lange/oft diese Inforamtion gesendet 
wird. Leider bleibt das Programm immer bei der .read(..) oder 
.getline(..) Funktion "stecken", wenn keine Informationen mehr gesendet 
werden.

Gibt es eine Funktion die schaut ob gerade Daten kommen oder nicht? Oder 
eine andere Möglichkeit?
Kann mit jemand weiterhelfen???

Danke auf jeden Fall für Euer Bemühen!!

MfG
Flo

von Nico S. (Gast)


Lesenswert?

Schau dich mal nach Non-Blocking I/O um. In dem Zusammenhang könnten dir 
select() und poll() helfen.

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
Noch kein Account? Hier anmelden.