Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Anzahl Bytes im seriellen Puffer

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
24.03.2008, 13:41 Uhr
~mh1977
Gast


Hallo,

ich will, nachdem ich meinen seriellen Port unter Linux und C++ geöffnet habe und auch schreiben kann, eine beliebige Anzahl von Bytes empfangen. Der read-Befehl will aber wissen, wieviel Zeichen er bearbeiten muss und so muss ich das vorher feststellen. Ich weiss aber nicht wie und finde auch nichts. Ich will damit in die C++ Programmierung einsteigen, doch über hardware-spezifisches mit Linux fand ich in diesem Fall nicht viel. Ich werde bei diesem Problem mit der seriellen Schnittstelle immer auf read, write und select verwiesen und dann geht es nicht weiter. Das funktioniert so weit.

Markus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
24.03.2008, 14:56 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


man kann den pufferfüllstand irgendwie abfragen, imho mit ioctl und entsprechendem parameter. hab das leider im moment nicht im kopf
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
24.03.2008, 17:17 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <termios.h>
// ...

// fd bezeichnet den Port, in num wird die Anzahl der Zeichen im Input-Buffer geschrieben
int fd, num;

// Und dann geht das so, wenn mich nicht alles täuscht.
ioctl(fd, TIOCINQ, &num);


Allerdings ist die Benutzung von ioctl generell nicht besonders portabel. Zwar existiert die Funktion auf allen mir bekannten UNIX-Systemen, aber das jeweilige Interface ist abhängig vom betroffenen Gerätetreiber, und die unterscheiden sich ziemlich drastisch.

Definiert die Hardware, mit der du da kommunizierst, kein Protokoll, das dich das im Vorraus erahnen lässt?
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: