Tastatur-Buffer(?) auslesen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich habe eine Frage bezüglich des Auslesens von Tastatureingaben unter C.

    Konkret bin ich dabei ein ferngesteuertes Fahrzeug zu basteln, das vom Rasp gesteuert wird. Es soll (dank Sensoren) zu Teilen autonom agieren, jedoch auch mit einer Wireless-Tastatur ferngesteuert werden können. Dazu zählt dann Lenken, Befehle und das Beenden des Programmes. Ich brauche jetzt eine unter Debian eine gut zu findenen, oder aber schon vorhandene Funktion, mit der ich folgendes Problem lösen kann:

    Pseudocode:

    [...]

    hauptschleife
    {

    steuer_autonom();
    blabla;

    ließ_tastaturbuffer();
    a= letztes zeichen, das eigeneben wurde;
    wenn a="w" ...
    wenn a="a" ...
    wenn a="s" ...
    wenn a="d" ...
    [...] pfeiltasten etc etc etc [...]
    lösche tastaturbuffer

    [rest des programmes]

    }


    Ich bin mir aber nichtmal sicher, ob das "Tastaturbuffer" heißt. Gemeint ist: Wenn seit der letzten Abfrage 20x "a" und dann einmal "s" gedrückt wurden, soll mir das Programm "s" ausgeben und anschließend alles löschen.
    Das Programm soll (und das ist jetzt wichtig) NICHT auf "Enter" warten, oder auf irgendeine Tastatureingabe. Wenn es keine gab, dann läuft das Programm einfach weiter (sonst fällt ja in diesem Moment die Steuerung aus!).

    Bedenkt bei euren Antworten bitte, dass ich weiß Gott kein c-Cräck bin ^^ Das wäre super ;)

    Gibt es so etwas? Lässt sich so etwas "einfach" umsetzten?
    Für Antworten wäre ich super dankbar!
    MfG

    Lego

  • whhaat? ;)
    Nur um mein Wissensstand einzuordnen: c-Einsteiger!
    Hast du zufällig einen Link, wo ich sinnvoll schmökern kann? Wenn ich
    bei google suche, kommt immer soviel Müll, den ich aber erst mühsam
    als solchen identifizieren muss (-.-)
    Danke ;)

  • Stichwort google:

    Suchbergriff "pthreads" (hier) oder man pthreads
    bzw.
    Suchbegriffe "unbuffered raw termio" (hier) oder man termios.

    Vielleicht solltest Du aber Dein "Einsteiger-" Projekt lieber Deinen skills anpassen und Dich dann langsam vortasten um Frust zu verhindern?

    cu,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!