Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Barcode Scanner

71 views
Skip to first unread message

Gerhard Bressler

unread,
Oct 9, 2007, 8:47:36 AM10/9/07
to
Hallo,

ich habe das Problem, das ich einen BarcodeScanner zur Eingabe verwenden
soll.
Der Scanner liefert per Bluetooth-SPP (Serial Port Profile) den fertigen
ASCII-String des Barcodes, d.h. er funktioniert NICHT als HID-Keyboard.
Mit cat /dev/rfcomm1 funktioniert das einwandfrei.

Frage: wie muss ich den X-Server konfigurieren damit ich die Eingabe aus
/dev/rfcomm1 OHNE 'kbd'-Treiber in die Applikation bekomme.
Was für eine Angabe bei Driver? Die Eingabe liegt wie gesagt bereits als
fertiger String vor.

Auszug aus xorg.conf:

Section "InputDevice"
Identifier "Intermec SR61"
Driver "kbd" <--------- PROBLEM!!!
Option "SendCoreEvents" "true"
Option "Device" "/dev/rfcomm1"
EndSection

Gibt es beim X-System so etwas wie einen raw-Treiber?

Danke fürs mitdenken
Gerhard

Linux-UserID: 280426

Jan Kandziora

unread,
Oct 9, 2007, 10:22:51 AM10/9/07
to
Gerhard Bressler schrieb:

>
> Gibt es beim X-System so etwas wie einen raw-Treiber?
>
Dann müsste dein Barcodescanner Scancodes schicken, und nicht ASCII-Zeichen.
Wenn du den Scanner so einstellen kannst, kannst du mal probieren, ob du
mit einem der Kernel-Treiber für eine RS232-Tastatur (Sun, DEC etc.) Glück
hast.

Wenn nicht, muss man einen Daemon schreiben, der auf dem seriellen Port
lauscht und mittels XSendEvent() oder XTEST-Extension Tastendrücke
simuliert. Beispiel: siehe Quellen von "xvkbd".

Mit freundlichem Gruß

Jan

Jan Kandziora

unread,
Oct 9, 2007, 10:26:29 AM10/9/07
to
Jan Kandziora schrieb:

>
> Wenn nicht, muss man einen Daemon schreiben, der auf dem seriellen Port
> lauscht und mittels XSendEvent() oder XTEST-Extension Tastendrücke
> simuliert. Beispiel: siehe Quellen von "xvkbd".
>
Ergänzung: So etwas wie

$ xvkbd -file /dev/rfcomm1

könnte dazu evtl. schon reichen.

Mit freundlichem Gruß

Jan

Gerhard Bressler

unread,
Oct 9, 2007, 11:10:36 AM10/9/07
to
Jan Kandziora schrieb:

Hallo Jan,

genau DAS habe ich gesucht. So funktionierts !

You made my day
Danke
Gerhard

Gerhard Bressler

unread,
Oct 9, 2007, 11:59:36 AM10/9/07
to
Jan Kandziora schrieb:
Hi,

jetzt muss ich nur noch xvkbd dazu überreden als daemon zu laufen.
Weil immer wenn die Bluetoothverbindung abbricht, beendet sich auch der
xvkbd. Hast du eventuell eine Idee? Mit '&' gehts auch nicht.

und nochmals danke
Gerhard

Bernd Petrovitsch

unread,
Oct 10, 2007, 4:15:13 PM10/10/07
to
On Tue, 09 Oct 2007 17:59:36 +0200, Gerhard Bressler wrote:
> Jan Kandziora schrieb:
>> Jan Kandziora schrieb:
>>> Wenn nicht, muss man einen Daemon schreiben, der auf dem seriellen
>>> Port lauscht und mittels XSendEvent() oder XTEST-Extension
>>> Tastendrücke simuliert. Beispiel: siehe Quellen von "xvkbd".
>>>
>> Ergänzung: So etwas wie
>>
>> $ xvkbd -file /dev/rfcomm1
>>
>> könnte dazu evtl. schon reichen.
[...]

> jetzt muss ich nur noch xvkbd dazu überreden als daemon zu laufen. Weil
> immer wenn die Bluetoothverbindung abbricht, beendet sich auch der
> xvkbd. Hast du eventuell eine Idee? Mit '&' gehts auch nicht.

Ich rate mal, daß beim Abbrechen der Bluetooth-Verbindung aof /dev/rfcomm1
"EOF" daherkommt. Verifizieren kann man das, indem du obiges mit "strace -
o file.log" davor startest und die Verbindung reißen läßt.
Und ziemlich gegen Ende des Files gibt es ein "read()", daß "0" liefert
(oder falls "-1", dann wäre der Wert daneben - errno - noch interessant).

Wenn du xvkbd automagisch dann wieder starten willst:
---- snip ----
while :; do xvkbd -file /dev/rfcomm1; done &
---- snip ----

Bernd
--
"What happens when you read some doc and either it doesn't answer your
question or is demonstrably wrong? In Linux, you say "Linux sucks" and
go read the code. In Windows/Oracle/etc you say "Windows sucks" and
start banging your head against the wall." - Denis Vlasenko on lkml

Gerhard Bressler

unread,
Oct 11, 2007, 6:51:01 AM10/11/07
to
Bernd Petrovitsch schrieb:

> On Tue, 09 Oct 2007 17:59:36 +0200, Gerhard Bressler wrote:
>> Jan Kandziora schrieb:
>>> Jan Kandziora schrieb:
>>>> Wenn nicht, muss man einen Daemon schreiben, der auf dem seriellen
>>>> Port lauscht und mittels XSendEvent() oder XTEST-Extension
>>>> Tastendrücke simuliert. Beispiel: siehe Quellen von "xvkbd".
>>>>
>>> Ergänzung: So etwas wie
>>>
>>> $ xvkbd -file /dev/rfcomm1
>>>
>>> könnte dazu evtl. schon reichen.
> [...]
>> jetzt muss ich nur noch xvkbd dazu überreden als daemon zu laufen. Weil
>> immer wenn die Bluetoothverbindung abbricht, beendet sich auch der
>> xvkbd. Hast du eventuell eine Idee? Mit '&' gehts auch nicht.
>
> Ich rate mal, daß beim Abbrechen der Bluetooth-Verbindung aof /dev/rfcomm1
> "EOF" daherkommt. Verifizieren kann man das, indem du obiges mit "strace -
> o file.log" davor startest und die Verbindung reißen läßt.
> Und ziemlich gegen Ende des Files gibt es ein "read()", daß "0" liefert
> (oder falls "-1", dann wäre der Wert daneben - errno - noch interessant).
>
> Wenn du xvkbd automagisch dann wieder starten willst:
> ---- snip ----
> while :; do xvkbd -file /dev/rfcomm1; done &
> ---- snip ----
>
> Bernd
Hallo Bernd,

ja das war genau das was ich dann auch gemacht habe. Und zum Schluss ist
das script in Autostart von KDE gekommen und jetzt baut sich die
verbindung wieder automatisch auf.
Anm.: vor dem done hab ich noch ein sleep 3 eingebaut, ein bisschen
Pause tut gut ;-)

thx
Gerhard

0 new messages