Sorry, das ich jetzt nochmal ein neuen Thread aufmache, aber ich glaub in meinem alten hab ich mein Problem falsch dargestellt.
Also zuerst einmal die Info, dass ich unter Linux programmiere.
Ich lese Daten über die serielle Schnittstelle ein mittels getchar.
Jetzt ist es aber so, das getchar ja solange wartet bis ein weiteres Zeichen kommt, d.h ich sitze wenn kein Zeichen kommt in meiner Lese-while-Schleife endlos fest.
Jetzt möchte ich das Problem anders angehen und den Port ständig überprüfen, ob ein oder mehrere Zeichen im Inputbuffer liegen.
Wenn dort Zeichen sind, dann soll er meine While-Schleife ausführen und die Zeichen lesen,
Falls jedoch keine Zeichen anliegen, soll er nach einem eingestellten Timerwert es wieder versuchen und wieder den Port überprüfen ob Zeichen anliegen.
Meine Frage wäre also, wie ich dauerhaft und wiederholend die Serielle Schnittstelle auf angekommene Zeichen überprüfen kann?
Hab auch schon die ganzen POSIX Befehle durchgeschaut und eine Variante mit FIONREAD (returns the number of bytes in the input buffer) probiert, aber da kommt dann ständig der Fehler, dass er FIONREAD nicht kennt, obwohl ich die erforderlichen Headerfiles eingebunden habe.
Dann habe ich gelesen, dass die FIONREAD Funktion für die aktuelle POSIX Version nichtmehr verfügbar ist.
Stimmt das?
Gruß
Huemler
Also zuerst einmal die Info, dass ich unter Linux programmiere.
Ich lese Daten über die serielle Schnittstelle ein mittels getchar.
Jetzt ist es aber so, das getchar ja solange wartet bis ein weiteres Zeichen kommt, d.h ich sitze wenn kein Zeichen kommt in meiner Lese-while-Schleife endlos fest.
Jetzt möchte ich das Problem anders angehen und den Port ständig überprüfen, ob ein oder mehrere Zeichen im Inputbuffer liegen.
Wenn dort Zeichen sind, dann soll er meine While-Schleife ausführen und die Zeichen lesen,
Falls jedoch keine Zeichen anliegen, soll er nach einem eingestellten Timerwert es wieder versuchen und wieder den Port überprüfen ob Zeichen anliegen.
Meine Frage wäre also, wie ich dauerhaft und wiederholend die Serielle Schnittstelle auf angekommene Zeichen überprüfen kann?
Hab auch schon die ganzen POSIX Befehle durchgeschaut und eine Variante mit FIONREAD (returns the number of bytes in the input buffer) probiert, aber da kommt dann ständig der Fehler, dass er FIONREAD nicht kennt, obwohl ich die erforderlichen Headerfiles eingebunden habe.
Dann habe ich gelesen, dass die FIONREAD Funktion für die aktuelle POSIX Version nichtmehr verfügbar ist.
Stimmt das?
Gruß
Huemler
Zuletzt bearbeitet: