Tastatur auslesen

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

    ich habe folgendes Problem...
    Ich habe einen Barcodescanner per USB an meinem Raspi angeschlossen der wie eine Tastatur funktioniert. D.h. der Scanner simuliert Tasteneingaben wenn ein Barcode gescannt wurde.
    Mein Problem ist , dass ich eine per USB angeschl. Tastatur nicht mit einem im Hintergrund (Prozess (Java) ) laufende Anwendung auslesen kann. Das Programm ist in JAVA geschrieben.
    Welche Möglichkeiten gibt es da?

    für Ideen oder Lösungen bin ich sehr dankbar.

    Roßmann

  • Erst mal: wie eine Tastatur bedeutet: die Eingabe geht in das Feld mit dem Fokus. Also kein Java-Problem.
    Einfacher ginge es, wenn der Scanner seriell angeschlossen wäre. Je nach Scanner genügt schon ein Kabel.
    Ansonsten kann Java auch die USB-Schnittstelle auslesen, eine entsprechende Bibliothek vorausgesetzt.


  • Erst mal: wie eine Tastatur bedeutet: die Eingabe geht in das Feld mit dem Fokus. Also kein Java-Problem.


    Stimmt wenn es sich hier um ein GUI Programm handeln würde.
    Es ist aber nur ein Programm ohne GUI !


    Einfacher ginge es, wenn der Scanner seriell angeschlossen wäre. Je nach Scanner genügt schon ein Kabel.


    Finde ich auch :) aber leider geht es hier nicht.


    Ansonsten kann Java auch die USB-Schnittstelle auslesen, eine entsprechende Bibliothek vorausgesetzt.


    Das wäre eine tolle Lösung aber da fängt mein Problem an. :-/

    Roßmann

  • Tach auch,

    das ist kein Fehler, das liegt in der Natur der Sache.
    Ein "daemon" ist - im Unterschied zu einem Hingergrund-Prozess ( Stichwort & ) ein Prozess (-verbund), der autonom aber unsichtbar arbeitet. Er hat aus diesem Grund weder eine zugeordnete Tastatur, noch einen zugeordneten Bildschirm für Fehler- und andere Ausgaben (das würde für einen Daemon auch keinen Sinn machen).

    Du kannst mal versuchen, ob es funktioniert, wenn Du so was wie:

    Zitat


    stdin = fopen("/dev/USBxx");

    machst.
    Ansonsten wirst Du um das Handling von /dev/USBxx nicht drumherum kommen, wirst selbst pollen und Daten lesen müssen.
    Allerdings gibt es hier noch ein Problem: Du musst irgendwann das Gerät zum Zugrff öffnen und beim Abstecken wieder schliessen müssen, sonst bleibt das Gerät blockiert.

    cu,
    -ds-

  • Hallo

    Danke für die wirklich guten Informationen!
    Es wird noch ein bisschen dauern für eine Lösung, aber die Antworten haben mich auf den richtigen Weg gebracht.

    Sigmar Roßmann

Jetzt mitmachen!

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