Ich habe eine eDIO USB Multi-Fernbedienung (einen Infrarotempfänger), die mit der ASUS PSR 2000 Web Surfing-Fernbedienung geliefert wurde.
Ich versuche, den Remote COntroller mit meinem Pi zu verbinden, damit er die von der Fernbedienung gesendeten Tastenanschläge empfängt.
Der Controller wird als HID-Gerät erkannt. Hier sind die Details aus dem Befehl lsusb -v
Bus 001 Device 007: ID 147a:e001 Formosa Industrial Computing, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x147a Formosa Industrial Computing, Inc.
idProduct 0xe001
bcdDevice 1.22
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 4
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 300mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 20
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 10
Ich kann das Zielgerät auch im dev-Ordner mit einem erstellten Ereignis anzeigen
pi@raspberrypi /dev/input/by-id $ dir
usb-Cypress_Semiconductor_eDio_USB_Multi_Remote_Controlle-event-if00
Der damit verbundene Ereignishandler lautet wie folgt, wie aus dem folgenden Befehl ersichtlich.
pi@raspberrypi /proc/bus/input $ cat devices
I: Bus=0003 Vendor=147a Product=e001 Version=0110
N: Name="Cypress Semiconductor eDio USB Multi Remote Controlle"
P: Phys=usb-bcm2708_usb-1.2/input0
S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input2
U: Uniq=
H: Handlers=event0
B: PROP=0
B: EV=1
Das Problem ist, wenn ich versuche, die Ausgabe des für das Gerät erstellten Ereignishandlers zu lesen. Der erste Tastendruck wird registriert, aber die nachfolgenden Tastenanschläge werden vom CAT-Befehl nicht angezeigt.
pi@raspberrypi /dev/input $ cat event0 | xxd
0000000: e007 9450 9476 0900 0000 0000 0000 0000 ...P.v..........
Bitte schlagen Sie mir vor, was ich tun kann, um das Gerät zum Laufen zu bringen. Durch Drücken einer beliebigen Taste nach dem ersten Tastendruck wird nichts zurückgegeben, es sei denn, das Gerät ist neu angeschlossen.
Bitte schlagen Sie vor, was getan werden muss, um das Problem zu beheben.
|xxd
? Es puffert die Ausgabe. Ich habe irw
aus dem Paket verwendet lirc
, um die von meiner Fernbedienung gesendeten Schlüsselcodes zu erhalten.